@sanqianx/project-knowledge 5.0.18 → 5.0.20-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/.agents/plugins/marketplace.json +3 -3
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/CHANGELOG.md +14 -0
  4. package/LICENSE +201 -201
  5. package/NOTICE +5 -5
  6. package/README.md +349 -349
  7. package/_modules/knowledge-engine/README.md +4 -0
  8. package/_modules/knowledge-engine/src/analysis-contract.js +4 -3
  9. package/_modules/knowledge-engine/src/analysis-failures.js +39 -0
  10. package/_modules/knowledge-engine/src/analysis-worker.js +6 -2
  11. package/_modules/knowledge-engine/src/coordinator.js +8 -0
  12. package/_modules/knowledge-engine/src/headless-analyzer.js +2 -1
  13. package/_modules/knowledge-engine/src/memories.js +10 -5
  14. package/_modules/knowledge-engine/src/memory-eligibility.js +74 -0
  15. package/_modules/knowledge-engine/src/retrieval-ranking.js +19 -1
  16. package/_modules/knowledge-engine/src/runtime/commit-conversation-binder.js +1 -0
  17. package/_modules/knowledge-engine/src/runtime/commit-prompt.js +12 -9
  18. package/_modules/knowledge-engine/src/runtime/conversation-store.js +2 -0
  19. package/_modules/knowledge-engine/src/server.js +1 -1
  20. package/_site/_test/agent-capture-mcp-ui-test.js +67 -67
  21. package/_site/_test/ai-profile-test.js +75 -75
  22. package/_site/_test/ai-vendor-presets-test.js +91 -91
  23. package/_site/_test/automatic-context-test.js +70 -70
  24. package/_site/_test/bin-cli-test.js +230 -230
  25. package/_site/_test/bridge-adapter-test.js +95 -95
  26. package/_site/_test/bridge-consumer-service-test.js +310 -310
  27. package/_site/_test/candidate-bin-content-test.js +35 -0
  28. package/_site/_test/candidate-product-assets-test.js +13 -0
  29. package/_site/_test/candidate-release-contract-test.js +14 -14
  30. package/_site/_test/capture-hook-dedup-test.js +158 -158
  31. package/_site/_test/claude-executable-discovery-test.js +28 -28
  32. package/_site/_test/claude-session-lifecycle-sweep-test.js +252 -252
  33. package/_site/_test/cli-instance-management-test.js +62 -62
  34. package/_site/_test/client-capture-restart-e2e-test.js +189 -189
  35. package/_site/_test/codex-conversation-projection-test.js +60 -60
  36. package/_site/_test/codex-marketplace-scoped-path-test.js +186 -186
  37. package/_site/_test/codex-notify-capture-e2e-test.js +101 -101
  38. package/_site/_test/codex-notify-fanout-test.js +134 -134
  39. package/_site/_test/codex-notify-upgrade-test.js +253 -253
  40. package/_site/_test/commit-boundary-freeze-test.js +147 -147
  41. package/_site/_test/commit-conversation-binding-test.js +4 -4
  42. package/_site/_test/configuration-generation-test.js +22 -22
  43. package/_site/_test/context-pack-test.js +200 -200
  44. package/_site/_test/conversation-api-test.js +10 -10
  45. package/_site/_test/conversation-origin-test.js +15 -0
  46. package/_site/_test/cross-repo-isolation-e2e-test.js +187 -187
  47. package/_site/_test/embedding-config-test.js +32 -32
  48. package/_site/_test/fixtures/fake-browser-exit.js +10 -10
  49. package/_site/_test/fixtures/fake-browser-hang.js +10 -10
  50. package/_site/_test/fixtures/integration-busy-worker.cjs +6 -6
  51. package/_site/_test/fixtures/make-git-repos.js +92 -92
  52. package/_site/_test/fixtures/retrieval-gold-queries.json +32 -0
  53. package/_site/_test/fresh-hook-reimport-test.js +53 -53
  54. package/_site/_test/fresh-product-data-test.js +56 -56
  55. package/_site/_test/git-path-compatibility-test.js +80 -80
  56. package/_site/_test/git-validation-test.js +81 -81
  57. package/_site/_test/hook-worktree-test.js +42 -42
  58. package/_site/_test/index-builder-test.js +41 -41
  59. package/_site/_test/index-error-display-contract-test.js +10 -10
  60. package/_site/_test/integration-adapters-test.js +67 -67
  61. package/_site/_test/integration-capture-setup-test.js +118 -118
  62. package/_site/_test/integration-runtime-binding-a2-test.js +566 -566
  63. package/_site/_test/integration-runtime-binding-a3-test.js +227 -227
  64. package/_site/_test/integration-runtime-binding-test.js +473 -473
  65. package/_site/_test/integration-status-scan-test.js +29 -29
  66. package/_site/_test/kb-framework-test.js +57 -57
  67. package/_site/_test/kbpath-follow-test.js +63 -63
  68. package/_site/_test/knowledge-db-test.js +144 -144
  69. package/_site/_test/knowledge-engine-client-test.js +109 -109
  70. package/_site/_test/knowledge-maintenance-test.js +40 -40
  71. package/_site/_test/knowledge-panel-ui-contract-test.js +112 -0
  72. package/_site/_test/knowledge-scopes-test.js +37 -37
  73. package/_site/_test/knowledge-storage-location-test.js +28 -28
  74. package/_site/_test/launcher-readiness-test.js +80 -80
  75. package/_site/_test/legacy-claude-session-alias-test.js +106 -106
  76. package/_site/_test/legacy-routes-removed-test.js +47 -47
  77. package/_site/_test/legacy-workbench-exclusion-test.js +92 -92
  78. package/_site/_test/live-gateway-test.js +48 -48
  79. package/_site/_test/local-marketplace-test.js +16 -16
  80. package/_site/_test/log-redaction-test.js +58 -58
  81. package/_site/_test/markdown-maintenance-test.js +11 -11
  82. package/_site/_test/model-context-windows-test.js +89 -89
  83. package/_site/_test/module-agent-start-proxy-test.js +65 -65
  84. package/_site/_test/module-artifact-integrity-test.js +27 -27
  85. package/_site/_test/module-boundary-test.js +30 -30
  86. package/_site/_test/module-bridge-eventbridge-test.js +202 -202
  87. package/_site/_test/module-dynamic-port-test.js +118 -118
  88. package/_site/_test/module-index-proxy-test.js +33 -0
  89. package/_site/_test/module-model-configuration-test.js +44 -44
  90. package/_site/_test/module-process-lifecycle-test.js +35 -35
  91. package/_site/_test/module-stream-proxy-test.js +34 -34
  92. package/_site/_test/module-terminal-restart-test.js +63 -0
  93. package/_site/_test/module-wiring-unbind-race-test.js +59 -59
  94. package/_site/_test/native-context-integrations-test.js +86 -86
  95. package/_site/_test/orphaned-claim-recovery-test.js +80 -80
  96. package/_site/_test/package-boundary-test.js +43 -42
  97. package/_site/_test/package-startup-test.js +56 -56
  98. package/_site/_test/packaged-ui-smoke-test.js +88 -88
  99. package/_site/_test/pr-consumer-contract-test.js +55 -55
  100. package/_site/_test/product-brand-contract-test.js +25 -25
  101. package/_site/_test/product-diagnostics-ui-test.js +93 -93
  102. package/_site/_test/product-import-ui-test.js +104 -104
  103. package/_site/_test/product-progress-status-test.js +12 -1
  104. package/_site/_test/project-remove-running-guard-test.js +79 -79
  105. package/_site/_test/project-store-test.js +90 -90
  106. package/_site/_test/registry-events-test.js +38 -0
  107. package/_site/_test/release-version-sync-test.js +115 -115
  108. package/_site/_test/requirement-binding-test.js +113 -113
  109. package/_site/_test/runtime-endpoint-test.js +64 -64
  110. package/_site/_test/scanner-test.js +83 -83
  111. package/_site/_test/server-security-test.js +96 -96
  112. package/_site/_test/sessions-stream-test.js +93 -93
  113. package/_site/_test/shared-scope-root-binding-test.js +67 -67
  114. package/_site/_test/simple-import-test.js +98 -98
  115. package/_site/_test/startup-analysis-disabled-test.js +6 -6
  116. package/_site/_test/team-knowledge-store-sparse-checkout-test.js +196 -196
  117. package/_site/_test/team-knowledge-store-test.js +132 -132
  118. package/_site/_test/test-server-cleanup-test.js +35 -35
  119. package/_site/_test/test-server-module-isolation-test.js +37 -37
  120. package/_site/_test/tracking-start-test.js +35 -35
  121. package/_site/_test/workbench-context-receipts-test.js +22 -0
  122. package/_site/_test/workspace-ui-contract-test.js +31 -31
  123. package/_site/_test/zcode-capture-integration-test.js +108 -108
  124. package/_site/lib/ai-vendor-presets.js +83 -83
  125. package/_site/lib/ai-workspace.js +3 -3
  126. package/_site/lib/atomic-file.js +204 -204
  127. package/_site/lib/bridge-adapter.js +260 -260
  128. package/_site/lib/capture-hook-config.js +108 -108
  129. package/_site/lib/claude-cli-runner.js +89 -89
  130. package/_site/lib/cli-instances.js +43 -43
  131. package/_site/lib/codex-context-status.js +17 -17
  132. package/_site/lib/codex-notify-config.js +193 -193
  133. package/_site/lib/commit-conversation-binder.js +13 -12
  134. package/_site/lib/commit-reconciler.js +38 -38
  135. package/_site/lib/context-pack-builder.js +299 -299
  136. package/_site/lib/conversation-exclusions.js +204 -204
  137. package/_site/lib/conversation-query-service.js +17 -17
  138. package/_site/lib/conversation-store.js +2 -0
  139. package/_site/lib/data-dir.js +13 -13
  140. package/_site/lib/embedding-service.js +85 -85
  141. package/_site/lib/engine-connection.js +93 -90
  142. package/_site/lib/engine-knowledge-client.js +72 -72
  143. package/_site/lib/folder-picker-output.js +3 -3
  144. package/_site/lib/git-path.js +14 -14
  145. package/_site/lib/github-team-store.js +3 -3
  146. package/_site/lib/index-builder.js +157 -157
  147. package/_site/lib/integration-status-scan.js +99 -99
  148. package/_site/lib/integration-status-worker.js +14 -14
  149. package/_site/lib/kb-framework.js +15 -15
  150. package/_site/lib/knowledge-db.js +363 -363
  151. package/_site/lib/knowledge-schema.js +121 -121
  152. package/_site/lib/live-gateway.js +78 -76
  153. package/_site/lib/llm-client.js +12 -12
  154. package/_site/lib/model-context-windows.js +82 -82
  155. package/_site/lib/module-bridge.js +874 -865
  156. package/_site/lib/module-port-resolver.js +57 -57
  157. package/_site/lib/post-commit-automation.js +54 -54
  158. package/_site/lib/product-data.js +35 -35
  159. package/_site/lib/project-lifecycle-service.js +14 -14
  160. package/_site/lib/project-registry-store.js +129 -129
  161. package/_site/lib/prompt-registry.js +148 -148
  162. package/_site/lib/registry-events.js +16 -0
  163. package/_site/lib/requirement-adapters.js +10 -10
  164. package/_site/lib/requirement-binder.js +112 -112
  165. package/_site/lib/runtime-control.js +89 -89
  166. package/_site/lib/runtime-endpoint.js +5 -5
  167. package/_site/lib/server-app.js +10 -1
  168. package/_site/lib/zcode-context-integration.js +60 -60
  169. package/_site/scripts/codex-notify-fanout.cjs +95 -95
  170. package/_site/scripts/install-module-candidates.js +69 -69
  171. package/_site/scripts/pack-module-candidates.js +89 -72
  172. package/_site/scripts/sync-product-content.js +28 -28
  173. package/_site/scripts/sync-release-version.js +164 -164
  174. package/_site/scripts/vendor-modules.js +49 -49
  175. package/_site/scripts/verify-module-runtime.js +50 -50
  176. package/_site/scripts/verify-product-runtime.js +36 -36
  177. package/_site/scripts/verify-retrieval-gold.js +83 -0
  178. package/_site/server.js +15 -15
  179. package/_site/start.bat +26 -26
  180. package/_site/stop.bat +11 -11
  181. package/bin/project-knowledge-integrations.js +254 -254
  182. package/bin/project-knowledge-kb.js +67 -67
  183. package/bin/project-knowledge-mcp.js +8 -8
  184. package/bin/project-knowledge.js +170 -170
  185. package/claude-prompts.json +21 -21
  186. package/docs/README.zh-CN.md +205 -205
  187. package/docs/assets/architecture.svg +181 -181
  188. package/docs/assets/logo.svg +49 -49
  189. package/docs/fresh-v5-start.md +42 -42
  190. package/docs/leader-glm-workbench-playbook.md +122 -119
  191. package/docs/project-registry-schema.md +11 -11
  192. package/docs/release-5.0.16-acceptance.md +176 -176
  193. package/docs/release-5.0.17-acceptance.md +117 -117
  194. package/docs/release-5.0.19-acceptance.md +39 -0
  195. package/docs/team-knowledge-mode-a-plan.md +73 -73
  196. package/module-runtime-manifest.json +126 -104
  197. package/package.json +110 -108
  198. package/plugins/project-knowledge/.claude-plugin/plugin.json +1 -1
  199. package/plugins/project-knowledge/.codex-plugin/plugin.json +1 -1
  200. package/plugins/project-knowledge/.mcp.json +1 -1
  201. package/plugins/project-knowledge/opencode/project-knowledge.md +3 -3
  202. package/plugins/project-knowledge/skills/project-knowledge/SKILL.md +28 -28
  203. package/templates/change.md +30 -30
  204. package/templates/project-readme.md +18 -18
  205. package/ui/index.html +1 -1
  206. package/ui/knowledge-panel.html +118 -0
  207. package/ui/product.css +8 -0
  208. package/ui/product.js +175 -8
  209. package/vendor-manifest.json +55 -53
@@ -1,119 +1,122 @@
1
- # Leader 与 GLM 的 Workbench 协作手册
2
-
3
- ## 角色与边界
4
-
5
- Leader 负责知识检索、关键开发、接口决策、打包升级和最终交付。GLM-5.3 主要负责独立故障测试、回归和代码审查,明确独立的小改动才单独派发。允许多条 GLM 检查线并行;修改相同文件、用户配置、运行实例、npm 安装和固定端口验收必须串行。真实性能测试单独运行,避免并发负载污染结果。
6
-
7
- 先交付固定范围的可用版本,不因审查不断追加功能。每条检查线使用短任务合同与独立证据目录,发现问题交给 Leader 收敛修复;不重复跑已经绑定同一运行文件的完整源码回归。GLM token 充足不等于本机 CPU、内存、模型服务和文件锁无限,实际并发按资源与隔离条件安排。
8
-
9
- 使用真实 Workbench,不以其他模型的原生子代理冒充 GLM。完全模式不是扩大授权:禁止自行清空数据、覆盖第三方配置、修改客户端信任记录或发布软件。
10
-
11
- ## 创建与检查会话
12
-
13
- 所有路径相对于运行中的知识库服务。服务地址应通过运行身份确认,不假设端口永远是 5757。
14
-
15
- 1. 读取项目投影,取得 Workbench 的 `contextId`;它不等于知识引擎的 `projectId`。
16
- 2. `POST /api/terminal/sessions`,明确设置以下参数;不要依赖 profile 的默认模型。
17
-
18
- ```json
19
- {
20
- "context": {
21
- "contextId": "<Workbench 项目 ID>",
22
- "contextType": "project",
23
- "displayName": "<项目名称>",
24
- "workspaceRef": "<Workbench 项目 ID>"
25
- },
26
- "aiProfileId": "glm",
27
- "model": "glm-5.3",
28
- "agentId": "claude-code",
29
- "permissionMode": "bypassPermissions"
30
- }
31
- ```
32
-
33
- 3. 核对回执的 `sessionId`、项目、`model`、`selectedModel` 和权限模式。模型不匹配不能继续派发。
34
- 4. 必要时使用 `PUT /api/terminal/sessions/<id>/permission-mode`,正文为 `{"mode":"bypassPermissions"}`;仅改变自己的任务会话。
35
- 5. 用户在“开始工作”选择对应项目后,可查看真实会话及工具执行。
36
-
37
- ## 任务合同
38
-
39
- 每批任务必须包含:任务编号、目标、真实仓库、已有知识引用、可改文件、禁止操作、失败复现、验收条件和交付格式。
40
-
41
- 可直接使用下面的短合同,替换具体路径与用例后派发:
42
-
43
- ```text
44
- 任务:修复一个已复现的问题,不扩展功能。
45
- 仓库:绝对路径;已有知识:文件与 commit 引用。
46
- 可改文件:明确清单。禁止:用户配置、真实数据、信任记录、Claude 用户 memory、发布和未授权提交。
47
- 复现:输入、期望、实际;先补失败测试,再修复。
48
- 编辑:先验证实际 apply_patch 入口;不可用时交付补丁正文。
49
- 测试:具体命令、Node 运行时、仓库外临时目录、绝对证据目录。
50
- 交付:根因、diff、首失败与复测结果、未完成项;完成后 idle 等待审查。
51
- ```
52
-
53
- 先解析实际 Git 根目录并检索已有知识,再对照当前源码。知识文件只读;不手写最终知识、staging 或引擎状态。源文件修改使用 `apply_patch`,不得混入用户已有改动。
54
-
55
- 派发前验证 GLM 的执行环境能调用补丁工具,不只写一句要求。本机已验证的直接入口是隐藏运行标志 `C:/Users/SanQian/AppData/Local/OpenAI/Codex/bin/2e5e00daee91c61d/codex.exe --codex-run-as-apply-patch`:它不是可见子命令,`--help` 不列出,不能以“子命令不存在”判定入口缺失;用 Node `spawnSync(exe, ['--codex-run-as-apply-patch', patch], { encoding: 'utf8', windowsHide: true })` 传入完整 apply_patch 文本调用,证据 `glm-plan-5.0.16/P2/patch-entry-probe.txt`(真实 Add File 返回 0)。空补丁以 exit 1 结束且仅输出 `No files modified`,属正常空结果,不能据此判定入口不可用。绝不能用 `codex exec` 当补丁器——那会调用模型。也可通过 `Get-Command apply_patch` 找到包装器入口并核对实际指向的程序。若 GLM 没有可用入口,应交付补丁正文由 Leader 应用,而不是改用 `Write`、`Edit` 或 shell 写文件。发现违反方式时保留已有成果,显式中止并在同一会话纠正续跑,说明中止原因,不伪称运行超时。
56
-
57
- 补丁方式约束包括报告和原生 Agent 的记忆文件,不只是仓库源码。任务经验写入指定验收目录;不得自行编辑用户 memory。若发现越界,先核对会话是否已经结束,再按实际编辑记录恢复自己造成的差异,不能删除或覆盖原有用户内容。任务合同同时给出已验证的 Node 二进制、npm-cli 与仓库外临时目录,避免重复下载运行时或让测试继承 Workbench 的服务配置。
58
-
59
- `POST /api/terminal/sessions/<id>/input` 的正文为 `{"text":"<任务合同>"}`。保存 accepted 回执及 sessionId。返回忙碌或网络异常时,先读快照确认是否已接受,不盲目重发。相同批次只有一次有效派发。
60
-
61
- ## 跟踪、断线与长任务
62
-
63
- - 执行中优先 `GET /api/terminal/sessions?contextId=<项目 ID>` 读取轻量状态,不反复加载数千条事件;终态或诊断时再用 `GET /api/terminal/sessions/<id>` 读取快照、权限与相关事件。
64
- - `GET /api/terminal/sessions/<id>/events?after=<sequence>` 续接 SSE;保存已处理序号,重连不得重复消费。
65
- - `GET /api/terminal/sessions/<id>/knowledge` 查看本次知识上下文。准备/输出日志不等于模型实际收到,原生送达仍需独立证据。
66
- - 事件类型带驱动前缀,例如 `claude/tool-use`、`claude/result`、`claude/error`;不能只匹配无前缀的 `result`。
67
- - 断线后先恢复快照,再续接事件;事件缺口不以空数组冒充完成。不得重复创建会话或发送已接受的任务。
68
- - 不设置默认整轮工作期限。单次模型请求超时和后台维护的安全期限属于不同机制。
69
- - 工作时间长不等于异常;检查进程、工具活动和错误。必要时显式 `POST /api/terminal/sessions/<id>/abort`,等待终态后再派发修订任务。不得因慢而自动停止健康工作。
70
-
71
- Leader 只读取简洁检查点、相关 diff、测试结果和关键失败片段,不持续拉取完整思考流或整个事件历史。
72
-
73
- `0.13.2-rc.10` 已复现长历史截断后的游标重建缺陷;修复保留在当前 rc.13,统一产品 rc.6 安装版的桌面、故障和重启验收已通过。旧版本的快照序号和合成事件时间不能作为全会话游标或实际运行耗时证据;优先读取轻量状态、真实审计时间及操作收据,不因 UI 没有新消息就重复派发任务。
74
-
75
- 本轮已实际并行三条 GLM 检查线:安装版八项回归、真模型记忆十项闭环、包内容与隔离原生安装。Leader 独立核对每份安装收据与模块版本,不只接受 GLM 的最终回答。三条线均 idle 后才升级主实例;性能测试也在其他重任务结束后单独执行。旧的 Workbench contextId 可能不在当前项目列表中,升级前还应核对自己已派发的会话,而不是只检查当前筛选项目。
76
-
77
- ## 审查与放行
78
-
79
- GLM 交付根因、文件清单、先失败后成功的测试、Node 版本、证据路径和剩余风险,然后等待 Leader 审查。
80
-
81
- `isError:false` 或会话 idle 只表示运行终态,不证明任务完成。若结果乱码、缺少可用 diff/测试/证据,先读实际文件和独立反例,标为无效交付;保留成果与原会话,在新 GLM-5.3 短上下文会话派发小批修正。不要据此提交、发布,也不能将乱码自行解释为成功。
82
-
83
- Leader 独立复测关键链路。源码、npm 候选、正式安装和真实模型分别记录;端口在线、工具存在、替身测试或回答提到知识库都不能替代真实送达与索引证明。
84
-
85
- 审查通过后,Leader 仅提交相关代码和回归测试。观察提交的真实 Hook、维护、晋升与索引,再让下一批任务实际检索本次新增知识与 commit 引用。
86
-
87
- 安装、配置修复、重启和发布需单独的操作合同及受保护备份。候选只发布 `next`;正式包验收通过后才更新 `latest`。用户仍须亲自审查确实变化的原生 Hook,不写入或绕过信任。
88
-
89
- 正式包也必须使用自己的全新 npm 收据和隔离配置;复用已付费向量不等于复用旧插件市场。若手工传错 fixture,外层设置了新收据也不能替旧版本背书,先核对环境文件的实际包路径和版本,错误采样明确作废。对话中的独立审查结果不替代 Leader 读取真实事件、文件与工具结果。
90
-
91
- 提交标识查询可能合法返回 `markdown-hybrid-fallback`:它只说明返回行未采用向量通道,不应以一个后端标签否认实际检索。验收须结构化匹配项目、完整提交、服务来源、成功 tool-id 和写前顺序,并独立检查真实非空向量和语义查询;不能把文本命中当向量成功。模型注释中的正常换行也不应被误判为缺少 SHA,需保留稳定反例与复测。
92
-
93
- Windows 的 npm 全局更新还需确认独立 MCP 客户端已释放原生库。主服务停止不代表 IDE 自己启动的 MCP 子进程已退出。本轮通过进程模块只读检查定位到本会话的本产品 MCP,而非批量终止 Node;校验精确入口、父进程和 DLL 后仅关闭该子进程,再重做完整保真升级。不能据此终止来源不明或被安全检查禁止停止的旧实例。启动后等待四模块及引擎 API 就绪,不把网页端口在线当作所有功能就绪。
94
-
95
- 临时工作树不得通过目录联接共用需要保留的 `node_modules` 后直接递归清理。本轮清理带联接的工作树后,主源码依赖目录为空;因此清理前必须枚举链接、核对真实目标并先安全解除联接本身,不能让递归操作越出临时目录。依赖恢复按原锁文件执行,保留首失败,不以恢复后的结果覆盖环境事故。
96
-
97
- ## 验收记录
98
-
99
- 本轮补充的操作约束:
100
-
101
- - 一条独立任务优先使用新建短上下文会话;只需执行固定脚本时,不追加长篇设计或重复创建任务实体。长命令由实际进程结果证明,GLM 总结不是测试凭证。
102
- - 从 Workbench 内再启动隔离产品时,同时设置该 fixture 的 `KB_DATA_DIR` 和 `KB_KNOWLEDGE_DATA_DIR`;不能继承宿主登记层。Q24 的首个二次开发因此查错登记层,保留首失败并修正验收启动器后才重测。
103
- - 真实 UI 要检查任务原文事实是否送达、实际回答是否引用它,不能只检查提交号。rc.6/rc.7 的 SHA-only 成功曾掩盖正文遗漏,后续门禁补齐该反例。
104
- - GLM 对安装包缺文件或别名的结论必须核对真实文件与哈希。本轮曾从无词法命中推断缺别名,Leader 的字节证据反证后已撤回;旧 Node REPL 的模块缓存也不能当作新运行时证据,关键核验使用新进程。
105
- - 原生 Hook 是否需要再次审核取决于实际定义哈希,不由版本号猜测。rc.6 审核后 rc.8 的哈希未变、原生仍为 trusted;确实变化才请求用户审核,不绕过信任。
106
-
107
- 本轮的会话、提交、源码回归、npm 下载和真实维护结果见 [5.0.16 验收记录](release-5.0.16-acceptance.md)。操作手册与版本放行结果分开维护。
108
-
109
- ## 网页响应性与历史修复(2026-10-15)
110
-
111
- 本批继续采用 Leader 关键开发、真实 GLM-5.3 独立故障审查:Workbench `sess-8155764fec1e`,外壳 `sess-68d4d397c7f5`。GLM 只写指定测试和审查报告,不改生产实现、不发布、不改用户配置。Leader 独立复测测试文件与真实安装包,不将报告摘要当作成功凭证。
112
-
113
- - 缓存 TTL 的确定性测试使用注入时钟;20ms 真实时间在完整回归负载下会过期,不应靠增大等待掩盖测试竞态。
114
- - 原生 SDK 已发出最终 result,不代表异步迭代器必定立即 EOF。旧工作台的独立审查会话曾在最终报告后仍显示 running;Leader 核对报告完整后显式中止清理。新实现以 result 为本轮边界并在 finally 关闭自己的 query,另用真实 npm 工作台任务验证自然 idle,不能只补假流单测。
115
- - 浏览器滚动默认动作是异步的;滚轮后同一时刻读取 scrollTop 可能仍为旧值。要同时验证向上意图、后续内容增长和稳定阅读位置,不能只取输入后的单帧。
116
- - 新增异步发现后要审查诊断与 runtime 旁路,确保没有保留同步命令查找,也不能为了消除阻塞而丢掉注册表安装路径。
117
- - 多标签连接测试使用八个真实浏览器标签页;Node WebSocket 测试只证明协议行为,不能代替浏览器同源连接限制的验收。
118
-
119
- 本批完整记录见 [5.0.17 验收记录](release-5.0.17-acceptance.md)。
1
+ # Leader 与 GLM 的 Workbench 协作手册
2
+
3
+ ## 角色与边界
4
+
5
+ Leader 负责知识检索、关键开发、接口决策、打包升级和最终交付。GLM-5.3 主要负责独立故障测试、回归和代码审查,明确独立的小改动才单独派发。允许多条 GLM 检查线并行;修改相同文件、用户配置、运行实例、npm 安装和固定端口验收必须串行。真实性能测试单独运行,避免并发负载污染结果。
6
+
7
+ 先交付固定范围的可用版本,不因审查不断追加功能。每条检查线使用短任务合同与独立证据目录,发现问题交给 Leader 收敛修复;不重复跑已经绑定同一运行文件的完整源码回归。GLM token 充足不等于本机 CPU、内存、模型服务和文件锁无限,实际并发按资源与隔离条件安排。
8
+
9
+ 使用真实 Workbench,不以其他模型的原生子代理冒充 GLM。完全模式不是扩大授权:禁止自行清空数据、覆盖第三方配置、修改客户端信任记录或发布软件。
10
+
11
+ ## 创建与检查会话
12
+
13
+ 所有路径相对于运行中的知识库服务。服务地址应通过运行身份确认,不假设端口永远是 5757。
14
+
15
+ 1. 读取项目投影,取得 Workbench 的 `contextId`;它不等于知识引擎的 `projectId`。
16
+ 2. `POST /api/terminal/sessions`,明确设置以下参数;不要依赖 profile 的默认模型。
17
+
18
+ ```json
19
+ {
20
+ "context": {
21
+ "contextId": "<Workbench 项目 ID>",
22
+ "contextType": "project",
23
+ "displayName": "<项目名称>",
24
+ "workspaceRef": "<Workbench 项目 ID>"
25
+ },
26
+ "aiProfileId": "glm",
27
+ "model": "glm-5.3",
28
+ "agentId": "claude-code",
29
+ "inputOrigin": "agent-delegation",
30
+ "permissionMode": "bypassPermissions"
31
+ }
32
+ ```
33
+
34
+ 3. 核对回执的 `sessionId`、项目、`model`、`selectedModel` 和权限模式。模型不匹配不能继续派发。
35
+ 4. 必要时使用 `PUT /api/terminal/sessions/<id>/permission-mode`,正文为 `{"mode":"bypassPermissions"}`;仅改变自己的任务会话。
36
+ 5. 用户在“开始工作”选择对应项目后,可查看真实会话及工具执行。
37
+
38
+ ## 任务合同
39
+
40
+ 每批任务必须包含:任务编号、目标、真实仓库、已有知识引用、可改文件、禁止操作、失败复现、验收条件和交付格式。
41
+
42
+ 可直接使用下面的短合同,替换具体路径与用例后派发:
43
+
44
+ ```text
45
+ 任务:修复一个已复现的问题,不扩展功能。
46
+ 仓库:绝对路径;已有知识:文件与 commit 引用。
47
+ 可改文件:明确清单。禁止:用户配置、真实数据、信任记录、Claude 用户 memory、发布和未授权提交。
48
+ 复现:输入、期望、实际;先补失败测试,再修复。
49
+ 编辑:先验证实际 apply_patch 入口;不可用时交付补丁正文。
50
+ 测试:具体命令、Node 运行时、仓库外临时目录、绝对证据目录。
51
+ 交付:根因、diff、首失败与复测结果、未完成项;完成后 idle 等待审查。
52
+ ```
53
+
54
+ 先解析实际 Git 根目录并检索已有知识,再对照当前源码。知识文件只读;不手写最终知识、staging 或引擎状态。源文件修改使用 `apply_patch`,不得混入用户已有改动。
55
+
56
+ 派发前验证 GLM 的执行环境能调用补丁工具,不只写一句要求。本机已验证的直接入口是隐藏运行标志 `C:/Users/SanQian/AppData/Local/OpenAI/Codex/bin/2e5e00daee91c61d/codex.exe --codex-run-as-apply-patch`:它不是可见子命令,`--help` 不列出,不能以“子命令不存在”判定入口缺失;用 Node `spawnSync(exe, ['--codex-run-as-apply-patch', patch], { encoding: 'utf8', windowsHide: true })` 传入完整 apply_patch 文本调用,证据 `glm-plan-5.0.16/P2/patch-entry-probe.txt`(真实 Add File 返回 0)。空补丁以 exit 1 结束且仅输出 `No files modified`,属正常空结果,不能据此判定入口不可用。绝不能用 `codex exec` 当补丁器——那会调用模型。也可通过 `Get-Command apply_patch` 找到包装器入口并核对实际指向的程序。若 GLM 没有可用入口,应交付补丁正文由 Leader 应用,而不是改用 `Write`、`Edit` 或 shell 写文件。发现违反方式时保留已有成果,显式中止并在同一会话纠正续跑,说明中止原因,不伪称运行超时。
57
+
58
+ 补丁方式约束包括报告和原生 Agent 的记忆文件,不只是仓库源码。任务经验写入指定验收目录;不得自行编辑用户 memory。若发现越界,先核对会话是否已经结束,再按实际编辑记录恢复自己造成的差异,不能删除或覆盖原有用户内容。任务合同同时给出已验证的 Node 二进制、npm-cli 与仓库外临时目录,避免重复下载运行时或让测试继承 Workbench 的服务配置。
59
+
60
+ `POST /api/terminal/sessions/<id>/input` 的正文为 `{"text":"<任务合同>","options":{"inputOrigin":"agent-delegation","effort":"low"}}`。Leader 派单必须标明来源,不能因为接口消息角色为 user 就当作真人长期偏好。旧来源不明的记录不自动推荐为长期记忆。保存 accepted 回执及 sessionId。返回忙碌或网络异常时,先读快照确认是否已接受,不盲目重发。相同批次只有一次有效派发。
61
+
62
+ ## 跟踪、断线与长任务
63
+
64
+ - 执行中优先 `GET /api/terminal/sessions?contextId=<项目 ID>` 读取轻量状态,不反复加载数千条事件;终态或诊断时再用 `GET /api/terminal/sessions/<id>` 读取快照、权限与相关事件。
65
+ - `GET /api/terminal/sessions/<id>/events?after=<sequence>` 续接 SSE;保存已处理序号,重连不得重复消费。
66
+ - 会话列表使用 `/api/terminal/sessions/changes?contextId=<项目 ID>` 订阅摘要变更;独立 Workbench 使用一个 `contextId=*` SSE 覆盖全部项目。静置时不轮询列表,游标失效只补读一次快照。
67
+ - 主回复的 `claude/turn-end` 与后台任务状态分开判断。真实 GLM 的 SDK 总 result 可能等待后台任务结束,不能据此锁住已经结束主回复的输入框。任务卡片只使用实际任务事件和快照,不能从代理的文字声明推断任务已经启动。
68
+ - `GET /api/terminal/sessions/<id>/knowledge` 查看本次知识上下文。准备/输出日志不等于模型实际收到,原生送达仍需独立证据。
69
+ - 事件类型带驱动前缀,例如 `claude/tool-use`、`claude/result`、`claude/error`;不能只匹配无前缀的 `result`。
70
+ - 断线后先恢复快照,再续接事件;事件缺口不以空数组冒充完成。不得重复创建会话或发送已接受的任务。
71
+ - 不设置默认整轮工作期限。单次模型请求超时和后台维护的安全期限属于不同机制。
72
+ - 工作时间长不等于异常;检查进程、工具活动和错误。必要时显式 `POST /api/terminal/sessions/<id>/abort`,等待终态后再派发修订任务。不得因慢而自动停止健康工作。
73
+
74
+ Leader 只读取简洁检查点、相关 diff、测试结果和关键失败片段,不持续拉取完整思考流或整个事件历史。
75
+
76
+ `0.13.2-rc.10` 已复现长历史截断后的游标重建缺陷;修复保留在当前 rc.13,统一产品 rc.6 安装版的桌面、故障和重启验收已通过。旧版本的快照序号和合成事件时间不能作为全会话游标或实际运行耗时证据;优先读取轻量状态、真实审计时间及操作收据,不因 UI 没有新消息就重复派发任务。
77
+
78
+ 本轮已实际并行三条 GLM 检查线:安装版八项回归、真模型记忆十项闭环、包内容与隔离原生安装。Leader 独立核对每份安装收据与模块版本,不只接受 GLM 的最终回答。三条线均 idle 后才升级主实例;性能测试也在其他重任务结束后单独执行。旧的 Workbench contextId 可能不在当前项目列表中,升级前还应核对自己已派发的会话,而不是只检查当前筛选项目。
79
+
80
+ ## 审查与放行
81
+
82
+ GLM 交付根因、文件清单、先失败后成功的测试、Node 版本、证据路径和剩余风险,然后等待 Leader 审查。
83
+
84
+ `isError:false` 或会话 idle 只表示运行终态,不证明任务完成。若结果乱码、缺少可用 diff/测试/证据,先读实际文件和独立反例,标为无效交付;保留成果与原会话,在新 GLM-5.3 短上下文会话派发小批修正。不要据此提交、发布,也不能将乱码自行解释为成功。
85
+
86
+ Leader 独立复测关键链路。源码、npm 候选、正式安装和真实模型分别记录;端口在线、工具存在、替身测试或回答提到知识库都不能替代真实送达与索引证明。
87
+
88
+ 审查通过后,Leader 仅提交相关代码和回归测试。观察提交的真实 Hook、维护、晋升与索引,再让下一批任务实际检索本次新增知识与 commit 引用。
89
+
90
+ 安装、配置修复、重启和发布需单独的操作合同及受保护备份。候选只发布 `next`;正式包验收通过后才更新 `latest`。用户仍须亲自审查确实变化的原生 Hook,不写入或绕过信任。
91
+
92
+ 正式包也必须使用自己的全新 npm 收据和隔离配置;复用已付费向量不等于复用旧插件市场。若手工传错 fixture,外层设置了新收据也不能替旧版本背书,先核对环境文件的实际包路径和版本,错误采样明确作废。对话中的独立审查结果不替代 Leader 读取真实事件、文件与工具结果。
93
+
94
+ 提交标识查询可能合法返回 `markdown-hybrid-fallback`:它只说明返回行未采用向量通道,不应以一个后端标签否认实际检索。验收须结构化匹配项目、完整提交、服务来源、成功 tool-id 和写前顺序,并独立检查真实非空向量和语义查询;不能把文本命中当向量成功。模型注释中的正常换行也不应被误判为缺少 SHA,需保留稳定反例与复测。
95
+
96
+ Windows 的 npm 全局更新还需确认独立 MCP 客户端已释放原生库。主服务停止不代表 IDE 自己启动的 MCP 子进程已退出。本轮通过进程模块只读检查定位到本会话的本产品 MCP,而非批量终止 Node;校验精确入口、父进程和 DLL 后仅关闭该子进程,再重做完整保真升级。不能据此终止来源不明或被安全检查禁止停止的旧实例。启动后等待四模块及引擎 API 就绪,不把网页端口在线当作所有功能就绪。
97
+
98
+ 临时工作树不得通过目录联接共用需要保留的 `node_modules` 后直接递归清理。本轮清理带联接的工作树后,主源码依赖目录为空;因此清理前必须枚举链接、核对真实目标并先安全解除联接本身,不能让递归操作越出临时目录。依赖恢复按原锁文件执行,保留首失败,不以恢复后的结果覆盖环境事故。
99
+
100
+ ## 验收记录
101
+
102
+ 本轮补充的操作约束:
103
+
104
+ - 一条独立任务优先使用新建短上下文会话;只需执行固定脚本时,不追加长篇设计或重复创建任务实体。长命令由实际进程结果证明,GLM 总结不是测试凭证。
105
+ - 从 Workbench 内再启动隔离产品时,同时设置该 fixture 的 `KB_DATA_DIR` 和 `KB_KNOWLEDGE_DATA_DIR`;不能继承宿主登记层。Q24 的首个二次开发因此查错登记层,保留首失败并修正验收启动器后才重测。
106
+ - 真实 UI 要检查任务原文事实是否送达、实际回答是否引用它,不能只检查提交号。rc.6/rc.7 的 SHA-only 成功曾掩盖正文遗漏,后续门禁补齐该反例。
107
+ - GLM 对安装包缺文件或别名的结论必须核对真实文件与哈希。本轮曾从无词法命中推断缺别名,Leader 的字节证据反证后已撤回;旧 Node REPL 的模块缓存也不能当作新运行时证据,关键核验使用新进程。
108
+ - 原生 Hook 是否需要再次审核取决于实际定义哈希,不由版本号猜测。rc.6 审核后 rc.8 的哈希未变、原生仍为 trusted;确实变化才请求用户审核,不绕过信任。
109
+
110
+ 本轮的会话、提交、源码回归、npm 下载和真实维护结果见 [5.0.16 验收记录](release-5.0.16-acceptance.md)。操作手册与版本放行结果分开维护。
111
+
112
+ ## 网页响应性与历史修复(2026-10-15)
113
+
114
+ 本批继续采用 Leader 关键开发、真实 GLM-5.3 独立故障审查:Workbench `sess-8155764fec1e`,外壳 `sess-68d4d397c7f5`。GLM 只写指定测试和审查报告,不改生产实现、不发布、不改用户配置。Leader 独立复测测试文件与真实安装包,不将报告摘要当作成功凭证。
115
+
116
+ - 缓存 TTL 的确定性测试使用注入时钟;20ms 真实时间在完整回归负载下会过期,不应靠增大等待掩盖测试竞态。
117
+ - 原生 SDK 已发出最终 result,不代表异步迭代器必定立即 EOF。旧工作台的独立审查会话曾在最终报告后仍显示 running;Leader 核对报告完整后显式中止清理。新实现以 result 为本轮边界并在 finally 关闭自己的 query,另用真实 npm 工作台任务验证自然 idle,不能只补假流单测。
118
+ - 浏览器滚动默认动作是异步的;滚轮后同一时刻读取 scrollTop 可能仍为旧值。要同时验证向上意图、后续内容增长和稳定阅读位置,不能只取输入后的单帧。
119
+ - 新增异步发现后要审查诊断与 runtime 旁路,确保没有保留同步命令查找,也不能为了消除阻塞而丢掉注册表安装路径。
120
+ - 多标签连接测试使用八个真实浏览器标签页;Node WebSocket 测试只证明协议行为,不能代替浏览器同源连接限制的验收。
121
+
122
+ 本批完整记录见 [5.0.17 验收记录](release-5.0.17-acceptance.md)。
@@ -20,14 +20,14 @@ Date: 2026-06-21
20
20
  | `gitPath` | required | Source repository path |
21
21
  | `kbPath` | generated from knowledge-store root | Final minimal KB location |
22
22
  | `kbSchemaVersion` | `"minimal"` | Current KB framework marker |
23
- | `goalStatus` | `"not-created"` | Review state of `GOAL.md` |
24
- | `trackingStartCommit` | current `HEAD` on first import | Baseline commit for incremental KB tracking; commits before it are not analyzed |
25
- | `trackingStartedAt` | current timestamp on first import | Time the tracking baseline was established |
26
- | `lastAnalyzedCommit` | `null` | Advanced only after accepted apply |
27
- | `knowledgeLanguage` | `"zh-CN"` | Human-readable output language |
28
-
29
- Old values may exist in local runtime files, but initialization and migration now target the final minimal framework.
30
-
31
- Soft-removed projects are remembered in runtime state so re-importing the same
32
- repository can restore the original `trackingStartCommit`, `lastAnalyzedCommit`,
33
- and `kbPath`. Hard removal with KB deletion starts fresh.
23
+ | `goalStatus` | `"not-created"` | Review state of `GOAL.md` |
24
+ | `trackingStartCommit` | current `HEAD` on first import | Baseline commit for incremental KB tracking; commits before it are not analyzed |
25
+ | `trackingStartedAt` | current timestamp on first import | Time the tracking baseline was established |
26
+ | `lastAnalyzedCommit` | `null` | Advanced only after accepted apply |
27
+ | `knowledgeLanguage` | `"zh-CN"` | Human-readable output language |
28
+
29
+ Old values may exist in local runtime files, but initialization and migration now target the final minimal framework.
30
+
31
+ Soft-removed projects are remembered in runtime state so re-importing the same
32
+ repository can restore the original `trackingStartCommit`, `lastAnalyzedCommit`,
33
+ and `kbPath`. Hard removal with KB deletion starts fresh.