Pin backend dotted-key settings fix

Why: dotted setting writes were stored as unread keys, and secret pools were returned in clear text.
Evidence: Backend go test ./... at d90b9c0. Dev make test follows this pin.
Impact: the dev branch tracks Backend fix/settings-dotted-keys until that PR merges, then the pin moves to main.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-04 13:04:11 +00:00
co-authored by Cursor
parent 51926b582b
commit fc8cf3f5ab
2 changed files with 14 additions and 7 deletions
+13 -6
View File
@@ -1,16 +1,23 @@
# fix/settings-dotted-keys 任务卡
任务主记录:<PR 链接,task-finish 时填写>;状态:进行中;owner:weichen
任务主记录:[Backend #61](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/61);Dev PR 待建;状态:进行中;owner:weichen
## 基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 5d3a4b3ee3e69d9c47eeb2779eb1c7156c42186b
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-fix-settings-dotted-keys(worktree);分支:fix/settings-dotted-keys
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明>
- 授权与交付终点:修复设置点路径死键、密钥明文返回、掩码写回。改 Backend,Dev 仓推进 gitlink。部署到 dev 环境验收,并重测小队入口。合入由所有者执行。不改 Core,不改前端,不改 svc.sh 播种时序。
## 目标与非目标
<预期结果、受影响入口/模块/契约;明确不做什么。>
- 目标:`PUT /api/settings/user|project/{id}` 的点路径键展开成嵌套并生效;嵌套对象与点路径冲突时嵌套胜出;启动时迁移存量点路径键(在注册 Tavily 之前);`GET /api/settings` 按 schema 掩码 secret(含 `apiKeys`);写回 `••••••` 不覆盖已存密钥。
- 非目标:不按 schema 校验键名。不改前端。不改 Core。不改 svc.sh 播种时序。不修小队路径 `tool.result` 恒为 ok。
## 合同、依赖与兼容
- 合同:点路径在写入时展开。两种形态并存时嵌套胜出。GET 对 `type=secret` 或 `secret=true` 的路径,以及叶子名 `apiKey`/`api_key`/`apiKeys`/`secret`/`token`,非空值返回 `••••••`。写回该占位符视为未修改。有迁移时日志为 `settings: normalized N dotted key(s) in M scope(s)`。掩码占位符存量只记路径。
- 依赖:Backend 先合入,再把本仓 gitlink 改钉到 Backend main 的合入提交。
- 兼容:以前静默失效的点路径写入,升级后会生效。与已存在的嵌套对象冲突时,已生效的嵌套值保持不变。
## 同步记录
@@ -20,6 +27,6 @@
## 结果与验证(完成后填写)
- 结果:
- 验证:
- 影响与剩余项:
- 结果:Backend `d90b9c0`,[Backend #61](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/61)。
- 验证:Backend `go test ./...` 通过。Dev `make test` 与 dev 部署验收待补。
- 影响与剩余项:升级后点路径写入生效。dev 环境验收、小队入口重测、报告订正在部署之后。合入由所有者执行。