Skip to content

feat: 对齐 ZCode 3.2.0 (CLI 0.15.0) app-server 新协议方法#4

Merged
tizerluo merged 5 commits into
mainfrom
feat/app-server-0.15.0-align
Jun 30, 2026
Merged

feat: 对齐 ZCode 3.2.0 (CLI 0.15.0) app-server 新协议方法#4
tizerluo merged 5 commits into
mainfrom
feat/app-server-0.15.0-align

Conversation

@tizerluo

Copy link
Copy Markdown
Owner

对齐 ZCode 3.2.0 (CLI 0.15.0) 新增 app-server 协议方法,纯增量、完全向后兼容。

变更

  • zcode-acp-bridge (+439行): 12 个新方法 handler + dispatch(session 级 0.15.0+ 与 workspace 级 0.15.0+),含 _resolve_workspace helper、apiKey 透传不打印
  • tests (+540行): FakeBackend, 套件 33→79, 含 apiKey 脱敏验证, 补齐旧 handler 盲区
  • agent-help: version_described → 0.15.0, key_methods 同步
  • README/SKILL(1.0.0→1.1.0): 方法表分组、版本兼容矩阵、apiKey 安全提醒

真实冒烟已验证

session/setThoughtLevel、workspace/readState、workspace/generateText(模型真回复)、session/setMode 全通。实测 GLM-5.2 thoughtLevel 值: max/high/nothink。

质量门

ruff 全绿 / 79 测试 / exec bit 100755。待 Codex deep review。

排除: /expert(无RPC)、session/stop(已由cancel覆盖)、events/subscribe(PR#2已有)。
后续用 drive-codex 调度 Codex 深度 review。

tizerluo added 5 commits June 30, 2026 23:33
version_described → 0.15.0 (App 3.2.0)
APP_SERVER.key_methods 新增 12 个方法:
  - session 级 (0.15.0+): setThoughtLevel/updateRuntimeModelConfig/
    rewindCascade/setMode, 补齐 setModel/cancelBackgroundTask 描述
  - workspace 级 (0.15.0+): readState/generateText/setDefault{Model,Mode,ThoughtLevel}/
    upsertModelProvider/removeModelProvider/updateProviderRegistry
acp_methods_implemented 同步补全
实测确认: GLM-5.2 thoughtLevel 可选值为 max/high/nothink
新增 12 个扩展方法的 handler + dispatch 注册:

session 级 (0.15.0+, 纯透传, 与 fork/rewind/goal 同模板):
  - session/setThoughtLevel ⭐ 思考强度 (动态值, 不做 enum 硬校验)
  - session/updateRuntimeModelConfig (运行时模型配置)
  - session/cancelBackgroundTask (取消后台 Bash 任务)
  - session/rewindCascade (级联回退, 与 rewind 同 schema)
  - session/setModel / session/setMode (补齐 0.14.8 旧方法)

workspace 级 (0.15.0+, 按 {workspacePath,workspaceKey} 选择器定位):
  - _resolve_workspace helper: workspace dict / workspacePath / cwd / 默认 四级
  - workspace/readState + workspace/generateText (一次性生成, timeout 60s)
  - workspace/setDefault{Model,Mode,ThoughtLevel} (乐观锁透传)
  - workspace/upsert/remove/updateProviderRegistry (apiKey 仅透传不打印明文)

新增 tests/test_app_server_methods.py (FakeBackend, 46 测试):
  - 路由 / params 转换 / 错误分支 / 复杂对象透传保真 / workspace helper 边界
  - apiKey 日志脱敏验证
  - 顺带补齐 fork/rewind/goal/compact/steer 旧 handler 的测试盲区
  - 套件 33 → 79 测试
README:
  - 扩展方法表按 session 级 / workspace 级分组, 标注引入版本
  - 新增 workspace/* 子表 + workspace 参数三种传入方式说明
  - 版本兼容性矩阵新增 0.15.0+ 行
  - 限制清单新增第 8 条: Provider 管理 apiKey 透传安全提醒

SKILL.md (version 1.0.0 → 1.1.0):
  - 扩展方法表同步分组, 新增 setThoughtLevel 思考强度控制任务模板
  - 版本兼容表新增 0.15.0+ 行
  - 兼容范围描述更新至 0.15.0+
Codex deep review 发现: upsertModelProvider / updateProviderRegistry 的
后端 error.message 原样回显, 若 zcode 把入参片段 (含 apiKey) 回显在
错误里, 会泄漏到 ACP client。此前仅 success log 脱敏, error 路径是盲区。

修复:
- 新增 _redact_secret(): 对 sk-* 前缀、"value":"..."、apiKey 值做正则遮蔽
- upsertModelProvider / updateProviderRegistry 的 error 分支套用脱敏
- removeModelProvider 入参无 apiKey, 保留原 error 利于排查

补测 (套件 79 → 82):
- test_m9_upsert_provider_error_no_apikey: error 回显不含 sk- 明文
- test_m9_update_registry_error_no_apikey: registry error 脱敏
- test_m9_remove_provider_error_not_redacted: remove error 不脱敏 (对照)

顺手修 (Codex P2):
- _resolve_workspace msg_id 参数加 docstring 说明保留原因
- 测试注释 '12 个新方法' → '14 个' (session 6 + workspace 8)
上一个 P1 修复 commit 编辑文件后未重置 exec bit, 被 git 记为 100644,
导致 CI perms job 失败。
@tizerluo tizerluo merged commit 579824f into main Jun 30, 2026
4 checks passed
@tizerluo tizerluo deleted the feat/app-server-0.15.0-align branch June 30, 2026 15:52
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