Repository navigation
release: v0.9.2 - #7
Conversation
- Recognize a link followed by a lone pass code line as a paired share. - Record missing and wrong pass codes as separate scan reasons. - Show failed scans in red instead of "scanning"; press Enter on a share waiting for a pass code to type it and scan again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
| return ( | ||
| <Box marginLeft={2} borderStyle="round" {...theme.enabled ? { borderColor: "cyan" } : {}} flexDirection="column" paddingX={2} width={Math.min(width, 76)} height={PASS_CODE_LINES}> | ||
| <Text {...theme.paint("active")} bold wrap="truncate-end">{text.title(share)}</Text> | ||
| <Text><Text {...theme.paint("muted")}>{text.label}</Text><Text {...theme.paint("strong")}>{draft}</Text><Text {...theme.paint("key")}>▏</Text></Text> |
There was a problem hiding this comment.
WARNING: PassCodeBox input row lacks wrap="truncate-end", so a long draft wraps and pushes the message row out of the fixed-height box
Nothing caps the draft length while typing or pasting (src/tui/app.tsx:195-200), so a long draft — e.g. accidentally pasting the whole share text into the code box — makes this row wrap to a second line. The box height is exactly PASS_CODE_LINES = 5 (border + title + input + message, zero slack), so the wrapped row pushes the message/hint row out of view, including the 提取码应为 1 到 32 位字母或数字 feedback shown after a failed submit. Every PasteBox content row uses wrap="truncate-end" (pages.tsx:209-212); this is the only input row missing it.
| <Text><Text {...theme.paint("muted")}>{text.label}</Text><Text {...theme.paint("strong")}>{draft}</Text><Text {...theme.paint("key")}>▏</Text></Text> | |
| <Text wrap="truncate-end"><Text {...theme.paint("muted")}>{text.label}</Text><Text {...theme.paint("strong")}>{draft}</Text><Text {...theme.paint("key")}>▏</Text></Text> |
| } else if (command.kind === "setPassCode") { | ||
| // 只报告失败;成功由下面的命令事件确认,不再发出“已接收”。提取码不进入事件。 | ||
| const intake = await this.receiver.receivePassCode(command.id, command.passCode); | ||
| if (intake.failure) { this.report(intake); return { ok: false, reason: intake.failure }; } |
There was a problem hiding this comment.
SUGGESTION: Pass-code save failure is reported through report(), which pauses the engine as a database problem and emits a generic, misleading event
report() (session.ts:214) calls this.engine.blockPersistence() → pause("database") (engine.ts:77) and emits intake_failed, rendered as “部分输入未确认接收,请重新复制” (zh-CN.ts:215). For a pass code typed into the new input box, “请重新复制” is the wrong advice (there is nothing to re-copy), and a credentials failure (secret store unavailable — failureOf, receiver.ts:8) pauses the queue labeled as a database failure. The box already shows the precise reason via result.reason (app.tsx:192), so consider handling this failure without blockPersistence/intake_failed, or with a dedicated event/reason.
| 标注后可以跟冒号(含全角)、等号、空格或“是/为”,码也可以放在括号或引号里;冒号在行尾时,码可以单独写在下一行,但这一行须是最后一行或后面空一行(否则可能是模板里的文件名,不会当成提取码)。英文等以空格分词的语言,标注与码之间需要冒号、等号或 `is`。解压密码、账号或登录密码、Vault 加密分享的密钥和 Wi-Fi 密码不会被当成提取码。标注后同一行没有内容时按未提供提取码处理;PikPak 网页版的日文界面复制的文本就是这样(“パスワード:”后面是空的),需要补上提取码后重新复制或粘贴。 | ||
|
|
||
| 也支持链接内明确标记的 `pwd`、`password`、`passcode` 或 `pass_code` 参数;无码分享可以只复制链接。真实缺码、错误码分别已观察到 `PASS_CODE_EMPTY`、`PASS_CODE_ERROR`,应等待新的完整文本,不把它们当成全局账号失效。 | ||
| 没有任何标注时,只有一种写法会被识别:整段文本只有一行链接和一行单独的提取码(中间可以有空行)。其他没有标注的文字一律不当成提取码。 |
There was a problem hiding this comment.
SUGGESTION: Document the constraints of the unlabeled two-line form: the code must be 4–32 letters/digits and the link line must contain only the link
loneCode (src/intake/parse.ts:81) only pairs the second line when it is 4–32 alphanumeric characters (NFKC-normalized) and the first line matches /^https?:\/\/\S+$/ (URL only). A 1–3 character code, or a link line with extra text, is silently not recognized (tests/share-text.test.ts:62-63) and the share is accepted without a code. This sentence — and its parallels in docs/en/clipboard.md, docs/ja/clipboard.md, and docs/releaseNotes/v0.9.2.md — states no limits, while openspec/specs/clipboard-intake/spec.md explicitly requires “一行仅含 4 到 32 位字母数字的行”. The release notes' nearby “提取码只能是 1 到 32 位” (about the input box) invites readers to assume the same range applies to the copied two-line shape. Mentioning the minimum length would avoid that confusion.
Code Review SummaryStatus: 3 Issues Found | Recommendation: Address in a follow-up (PR was merged during review) Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (28 files)
Reviewed by glm-5.3 · Input: 99.8K · Output: 28.5K · Cached: 722.2K |
PikPak DL CLI v0.9.2
发布日期:2026-10-25
提取码缺失或错误时,分享不再一直显示“扫描中”,可以在界面里直接补填提取码;也能识别只有链接和一行提取码的分享文本。
改进
修复
下载
pikpak-dl-cli-darwin-arm64pikpak-dl-cli-darwin-x64pikpak-dl-cli-windows-x64.exepikpak-dl-cli-windows-arm64.exepikpak-dl-cli-linux-x64pikpak-dl-cli-linux-arm64SHA256SUMS.txt列出各文件的校验和。升级说明
直接替换可执行文件即可。任务库结构不变,不需要迁移或重新登录。
升级前已经因提取码停下的分享仍显示“分享需要提取码,或提取码不正确”,同样可以按 Enter 补填提取码。
已知问题与待验收
🤖 Generated with Claude Code