Skip to content

fix: deep link 队列生命周期与发版前加固#26

Merged
maguowei merged 6 commits into
mainfrom
dev
Jul 15, 2026
Merged

fix: deep link 队列生命周期与发版前加固#26
maguowei merged 6 commits into
mainfrom
dev

Conversation

@maguowei

Copy link
Copy Markdown
Owner

Summary

dev 合入 main,包含 v1.3.1 之后的发版前修复与加固:

  • Deep link:pending 队列改为 peek/ack,切页不再丢链;payload 解码前长度校验;队列上限 20 + 全局去重;SSRF 显式拦截 198.18.0.0/15
  • 目录总览:用户级「用编辑器打开」与项目侧写边界对齐,经软链路径拒绝(预览仍只读跟随)
  • 防休眠EMPTY_WORKSPACE 补齐默认值,避免加载失败后再保存误清偏好;状态点改用 Tailwind token
  • 测试与文档:敏感键跨语言 parity / 缓存命中率排序回归;中英用户手册补充 deep link 与防止休眠;ADR / rules 同步

Test plan

  • cargo test --lib deep_link::tests
  • 相关前端 vitest(ProfilesPage / App deep link 路径)
  • claude_directory 软链编辑器边界单测
  • 本地 make verify(合入前可选)
  • 手动:打开 import deep link → 切页再回配置页,预览应恢复
  • 手动:经软链路径点「默认编辑器」应失败并提示

maguowei and others added 6 commits July 14, 2026 15:23
ProfilesPage 接管 deep link urls 后通知 App 条件清空 request;
离开 configs 时同步丢弃未消费请求,防止 lazy remount 再弹已放弃预览。
- 脏编辑器时延后 drain pending deep link,取消不丢链,guard 解除后重试
- 稳定 App 工作区 reload 断言,避免依赖 1/2 次 load 竞态
- 导入默认名走 i18n;文件导入与 deep link 统一密钥确认门禁
- 项目 .claude 根为软链时允许只读总览/预览,写仍拒绝
- 命中率多系列按纯 input tokens 排序;图表 10px 白名单与 path 规则对齐 ADR

Closes #18
Closes #19
Closes #20
Closes #21
Closes #22
Closes #23
Closes #24
- 新增共享语料 sensitive-settings-keys.json 作为敏感键预期单一事实源,
  前后端 config.rs 与 settings-secrets.ts 各写测试对照它,任一端漂移即红
- 补 UsagePage 缓存命中率多系列排序断言,锁定按纯 input tokens 降序

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
配置导入队列权威源留在后端:peek 预览、导入/取消/失败后 ack;切页不丢。
用户级 open_claude_file_in_editor 与项目侧一致拒绝经软链路径,避免出界写入口。
payload 解码前长度校验、pending 队列上限与全局去重、拦截 198.18/15;
EMPTY_WORKSPACE 对齐 sleep 默认值;状态点改 Tailwind;中英手册补 deep link 与防休眠。
@maguowei maguowei merged commit e8e6b30 into main Jul 15, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant