@sanqianx/project-knowledge 5.0.23 → 5.0.25

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 (401) hide show
  1. package/.agents/plugins/marketplace.json +20 -20
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/CHANGELOG.md +1361 -1346
  4. package/LICENSE +201 -201
  5. package/NOTICE +5 -5
  6. package/README.md +349 -349
  7. package/_modules/knowledge-engine/package.json +1 -1
  8. package/_modules/knowledge-engine/src/coordinator.js +48 -3
  9. package/_modules/knowledge-engine/src/runtime/automation-config.js +140 -140
  10. package/_modules/knowledge-engine/src/runtime/commit-conversation-binder.js +238 -238
  11. package/_modules/knowledge-engine/src/runtime/commit-processing-ledger.js +26 -26
  12. package/_modules/knowledge-engine/src/runtime/commit-prompt.js +193 -193
  13. package/_modules/knowledge-engine/src/runtime/commit-reconciler.js +394 -394
  14. package/_modules/knowledge-engine/src/runtime/contracts.js +282 -282
  15. package/_modules/knowledge-engine/src/runtime/conversation-store.js +389 -389
  16. package/_modules/knowledge-engine/src/runtime/evidence-bundle.js +228 -228
  17. package/_modules/knowledge-engine/src/runtime/git-runner.js +62 -62
  18. package/_modules/knowledge-engine/src/runtime/knowledge-promotion.js +505 -505
  19. package/_modules/knowledge-engine/src/runtime/knowledge-retrieval-service.js +400 -400
  20. package/_modules/knowledge-engine/src/runtime/markdown-knowledge-indexer.js +171 -171
  21. package/_modules/knowledge-engine/src/runtime/scanner.js +298 -298
  22. package/_modules/knowledge-engine/ui/app.js +23 -2
  23. package/_site/README.md +30 -30
  24. package/_site/_test/agent-capture-mcp-ui-test.js +68 -68
  25. package/_site/_test/agent-capture-ui-test.js +101 -101
  26. package/_site/_test/ai-profile-resolver-test.js +137 -137
  27. package/_site/_test/ai-profile-test.js +75 -75
  28. package/_site/_test/ai-vendor-presets-test.js +91 -91
  29. package/_site/_test/automatic-context-test.js +70 -70
  30. package/_site/_test/automation-queue-test.js +14 -14
  31. package/_site/_test/automation-ui-test.js +40 -40
  32. package/_site/_test/background-task-registry-test.js +43 -43
  33. package/_site/_test/baseline-schema-test.js +91 -91
  34. package/_site/_test/bin-cli-test.js +230 -230
  35. package/_site/_test/bridge-adapter-test.js +95 -95
  36. package/_site/_test/bridge-consumer-service-test.js +310 -310
  37. package/_site/_test/candidate-bin-content-test.js +35 -35
  38. package/_site/_test/candidate-product-assets-test.js +13 -13
  39. package/_site/_test/candidate-release-contract-test.js +14 -14
  40. package/_site/_test/capture-hook-dedup-test.js +158 -158
  41. package/_site/_test/cdp-browser-failure-test.js +103 -103
  42. package/_site/_test/chat-claudecodeui-match-test.js +92 -92
  43. package/_site/_test/claude-executable-discovery-test.js +90 -90
  44. package/_site/_test/claude-session-lifecycle-sweep-test.js +252 -252
  45. package/_site/_test/claude-workbench-test.js +174 -174
  46. package/_site/_test/cli-instance-management-test.js +62 -62
  47. package/_site/_test/client-capture-restart-e2e-test.js +189 -189
  48. package/_site/_test/codex-conversation-projection-test.js +60 -60
  49. package/_site/_test/codex-marketplace-scoped-path-test.js +186 -186
  50. package/_site/_test/codex-notify-capture-e2e-test.js +101 -101
  51. package/_site/_test/codex-notify-fanout-test.js +141 -134
  52. package/_site/_test/codex-notify-upgrade-test.js +253 -253
  53. package/_site/_test/commit-boundary-freeze-test.js +147 -147
  54. package/_site/_test/commit-conversation-binding-test.js +99 -99
  55. package/_site/_test/commit-evidence-test.js +110 -110
  56. package/_site/_test/configuration-generation-test.js +22 -22
  57. package/_site/_test/context-pack-test.js +200 -200
  58. package/_site/_test/conversation-api-test.js +119 -119
  59. package/_site/_test/conversation-origin-test.js +15 -15
  60. package/_site/_test/conversation-store-test.js +138 -138
  61. package/_site/_test/cross-repo-isolation-e2e-test.js +187 -187
  62. package/_site/_test/desktop-browser-compat-test.js +28 -28
  63. package/_site/_test/desktop-hook-runtime-regression-test.js +204 -204
  64. package/_site/_test/embedding-config-test.js +32 -32
  65. package/_site/_test/explicit-commit-processor-test.js +37 -37
  66. package/_site/_test/fixtures/fake-browser-exit.js +10 -10
  67. package/_site/_test/fixtures/fake-browser-hang.js +10 -10
  68. package/_site/_test/fixtures/integration-busy-worker.cjs +6 -6
  69. package/_site/_test/fixtures/make-git-repos.js +92 -92
  70. package/_site/_test/fixtures/retrieval-gold-queries.json +32 -32
  71. package/_site/_test/folder-picker-output-test.js +19 -19
  72. package/_site/_test/fresh-hook-reimport-test.js +53 -53
  73. package/_site/_test/fresh-product-data-test.js +56 -56
  74. package/_site/_test/full-integration-e2e-test.js +167 -167
  75. package/_site/_test/git-path-compatibility-test.js +80 -80
  76. package/_site/_test/git-validation-test.js +81 -81
  77. package/_site/_test/glm-ui-refresh-review-test.js +313 -404
  78. package/_site/_test/harness-isolation-test.js +138 -0
  79. package/_site/_test/helpers/cdp-browser.js +383 -0
  80. package/_site/_test/helpers/cdp-network-capture.js +66 -0
  81. package/_site/_test/helpers/find-chrome.js +34 -0
  82. package/_site/_test/helpers/free-port.js +8 -0
  83. package/_site/_test/helpers/logging-ui-fixture.js +131 -0
  84. package/_site/_test/helpers/module-fixture.js +282 -0
  85. package/_site/_test/helpers/parallel-engine-advanced-engine-child.js +45 -0
  86. package/_site/_test/helpers/parallel-engine-advanced-fault-writer.js +171 -0
  87. package/_site/_test/helpers/parallel-engine-advanced-harness.js +245 -0
  88. package/_site/_test/helpers/parallel-engine-advanced-standin-analyzer.js +80 -0
  89. package/_site/_test/helpers/parallel-engine-advanced-ui-host.js +177 -0
  90. package/_site/_test/helpers/parallel-engine-final-harness.js +314 -0
  91. package/_site/_test/helpers/parallel-engine-final-standin-analyzer.js +159 -0
  92. package/_site/_test/helpers/parallel-knowledge-fixture.js +255 -0
  93. package/_site/_test/helpers/parallel-logging-acceptance-fixture.js +111 -0
  94. package/_site/_test/helpers/parallel-logging-acceptance-proxy.js +106 -0
  95. package/_site/_test/helpers/parallel-logging-fix-r2-proxy.js +205 -0
  96. package/_site/_test/helpers/parallel-logging-integration-5025-env.js +432 -0
  97. package/_site/_test/helpers/parallel-memory-analyzer.js +81 -0
  98. package/_site/_test/helpers/parallel-memory-event-bridge.js +128 -0
  99. package/_site/_test/helpers/parallel-memory-shell.js +470 -0
  100. package/_site/_test/helpers/parallel-nav-isolation-env.js +389 -0
  101. package/_site/_test/helpers/parallel-nav-module-ui.js +186 -0
  102. package/_site/_test/helpers/parallel-nav-proxy.js +148 -0
  103. package/_site/_test/helpers/parallel-nav-shell.js +361 -0
  104. package/_site/_test/helpers/parallel-qa-engine-endpoint-guard.js +206 -0
  105. package/_site/_test/helpers/parallel-qa-engine-endpoint-isolate.js +257 -0
  106. package/_site/_test/helpers/parallel-retrieval-followup-corpus.js +293 -0
  107. package/_site/_test/helpers/parallel-retrieval-followup-next-session.js +70 -0
  108. package/_site/_test/helpers/parallel-retrieval-followup-r2-shell.js +737 -0
  109. package/_site/_test/helpers/parallel-retrieval-followup-r2-wb-host.js +82 -0
  110. package/_site/_test/helpers/parallel-retrieval-followup-shell.js +279 -0
  111. package/_site/_test/helpers/parallel-workbench-fixture.js +371 -0
  112. package/_site/_test/helpers/parallel-workbench-host.js +80 -0
  113. package/_site/_test/helpers/parallel-workbench-integration-5025-fixture.js +408 -0
  114. package/_site/_test/helpers/parallel-workbench-integration-5025-harness.js +593 -0
  115. package/_site/_test/helpers/parallel-workbench-integration-5025-host.js +70 -0
  116. package/_site/_test/helpers/parallel-workbench-integration-5025-launcher.js +240 -0
  117. package/_site/_test/helpers/parallel-workbench-integration-5025-runtime-harness.js +630 -0
  118. package/_site/_test/helpers/parallel-workbench-source-map.js +196 -0
  119. package/_site/_test/helpers/spawn-server.js +106 -0
  120. package/_site/_test/helpers/version-visibility-fixture.js +251 -0
  121. package/_site/_test/hook-runtime-endpoint-test.js +88 -88
  122. package/_site/_test/hook-status-repair-api-test.js +152 -152
  123. package/_site/_test/hook-trigger-test.js +85 -85
  124. package/_site/_test/hook-worktree-test.js +42 -42
  125. package/_site/_test/import-preflight-api-test.js +234 -234
  126. package/_site/_test/index-builder-test.js +41 -41
  127. package/_site/_test/index-error-display-contract-test.js +10 -10
  128. package/_site/_test/index-writer-concurrency-test.js +135 -135
  129. package/_site/_test/integration-adapters-test.js +262 -262
  130. package/_site/_test/integration-auto-repair-test.js +113 -113
  131. package/_site/_test/integration-capture-setup-test.js +118 -118
  132. package/_site/_test/integration-intent-test.js +81 -81
  133. package/_site/_test/integration-runtime-binding-a2-test.js +566 -566
  134. package/_site/_test/integration-runtime-binding-a3-test.js +227 -227
  135. package/_site/_test/integration-runtime-binding-test.js +473 -473
  136. package/_site/_test/integration-status-scan-test.js +29 -29
  137. package/_site/_test/integration-surface-coverage-test.js +164 -164
  138. package/_site/_test/kb-framework-test.js +57 -57
  139. package/_site/_test/kbpath-follow-test.js +63 -63
  140. package/_site/_test/knowledge-db-test.js +144 -144
  141. package/_site/_test/knowledge-engine-client-test.js +120 -109
  142. package/_site/_test/knowledge-language-control-test.js +170 -170
  143. package/_site/_test/knowledge-maintenance-test.js +40 -40
  144. package/_site/_test/knowledge-promotion-recovery-test.js +260 -260
  145. package/_site/_test/knowledge-query-test.js +54 -54
  146. package/_site/_test/knowledge-retrieval-service-test.js +77 -77
  147. package/_site/_test/knowledge-scopes-test.js +37 -37
  148. package/_site/_test/knowledge-storage-location-test.js +28 -28
  149. package/_site/_test/knowledge-storage-startup-test.js +52 -52
  150. package/_site/_test/knowledge-store-logs-supervision-test.js +89 -89
  151. package/_site/_test/launcher-readiness-test.js +80 -80
  152. package/_site/_test/legacy-claude-session-alias-test.js +106 -106
  153. package/_site/_test/legacy-routes-removed-test.js +47 -47
  154. package/_site/_test/legacy-workbench-exclusion-test.js +92 -92
  155. package/_site/_test/live-gateway-test.js +48 -48
  156. package/_site/_test/local-marketplace-test.js +16 -16
  157. package/_site/_test/log-redaction-test.js +58 -58
  158. package/_site/_test/logging-api-test.js +89 -89
  159. package/_site/_test/logging-sse-no-gap-test.js +88 -88
  160. package/_site/_test/logging-ui-test.js +107 -107
  161. package/_site/_test/markdown-delta-overlay-test.js +85 -85
  162. package/_site/_test/markdown-maintenance-api-test.js +75 -75
  163. package/_site/_test/markdown-maintenance-test.js +11 -11
  164. package/_site/_test/mcp-server-test.js +149 -149
  165. package/_site/_test/model-context-windows-test.js +89 -89
  166. package/_site/_test/module-agent-start-proxy-test.js +65 -65
  167. package/_site/_test/module-artifact-integrity-test.js +27 -27
  168. package/_site/_test/module-boundary-test.js +30 -30
  169. package/_site/_test/module-bridge-eventbridge-test.js +202 -202
  170. package/_site/_test/module-dynamic-port-test.js +118 -118
  171. package/_site/_test/module-index-proxy-test.js +33 -33
  172. package/_site/_test/module-model-configuration-test.js +44 -44
  173. package/_site/_test/module-process-lifecycle-test.js +35 -35
  174. package/_site/_test/module-stream-proxy-test.js +34 -34
  175. package/_site/_test/module-terminal-restart-test.js +63 -63
  176. package/_site/_test/module-wiring-unbind-race-test.js +59 -59
  177. package/_site/_test/native-context-integrations-test.js +86 -86
  178. package/_site/_test/non-release-ci-test.js +34 -34
  179. package/_site/_test/offline-boundary-isolation-test.js +32 -32
  180. package/_site/_test/orphaned-claim-recovery-test.js +80 -80
  181. package/_site/_test/package-boundary-test.js +43 -43
  182. package/_site/_test/package-startup-test.js +56 -56
  183. package/_site/_test/packaged-ui-smoke-test.js +88 -88
  184. package/_site/_test/parallel-ci-r9-posix-socket-budget-test.js +156 -0
  185. package/_site/_test/parallel-engine-advanced-eng005-test.js +136 -0
  186. package/_site/_test/parallel-engine-advanced-eng006-test.js +171 -0
  187. package/_site/_test/parallel-engine-advanced-eng007-reconcile-test.js +231 -0
  188. package/_site/_test/parallel-engine-advanced-eng009-test.js +208 -0
  189. package/_site/_test/parallel-engine-advanced-eng010-test.js +213 -0
  190. package/_site/_test/parallel-engine-advanced-eng011-ui-probe.js +459 -0
  191. package/_site/_test/parallel-engine-final-eng002-test.js +255 -0
  192. package/_site/_test/parallel-engine-final-eng007-test.js +269 -0
  193. package/_site/_test/parallel-engine-final-eng011-test.js +197 -0
  194. package/_site/_test/parallel-engine-final-eng012-test.js +354 -0
  195. package/_site/_test/parallel-knowledge-client-error-code-test.js +184 -0
  196. package/_site/_test/parallel-knowledge-engine-test.js +353 -0
  197. package/_site/_test/parallel-knowledge-retrieval-test.js +292 -0
  198. package/_site/_test/parallel-knowledge-vector-test.js +168 -0
  199. package/_site/_test/parallel-linux-ci-r7-log007-day-test.js +110 -0
  200. package/_site/_test/parallel-logging-acceptance-log003-test.js +224 -0
  201. package/_site/_test/parallel-logging-acceptance-log004-test.js +231 -0
  202. package/_site/_test/parallel-logging-acceptance-log005-test.js +208 -0
  203. package/_site/_test/parallel-logging-acceptance-log006-test.js +214 -0
  204. package/_site/_test/parallel-logging-acceptance-log007-test.js +223 -0
  205. package/_site/_test/parallel-logging-acceptance-log008-test.js +180 -0
  206. package/_site/_test/parallel-logging-fix-r2-crash-probe.js +271 -0
  207. package/_site/_test/parallel-logging-fix-r2-gap-test.js +294 -0
  208. package/_site/_test/parallel-logging-fix-r2-normalhook-test.js +330 -0
  209. package/_site/_test/parallel-logging-integration-5025-portability-test.js +554 -0
  210. package/_site/_test/parallel-memory-candidate-test.js +301 -0
  211. package/_site/_test/parallel-memory-manual-test.js +197 -0
  212. package/_site/_test/parallel-memory-scope-test.js +228 -0
  213. package/_site/_test/parallel-memory-source-test.js +227 -0
  214. package/_site/_test/parallel-memory-sync-test.js +238 -0
  215. package/_site/_test/parallel-memory-view-r8-reload-gate-test.js +123 -0
  216. package/_site/_test/parallel-nav-failure-test.js +119 -0
  217. package/_site/_test/parallel-nav-isolation-test.js +308 -0
  218. package/_site/_test/parallel-nav-isolation-vector-path-test.js +90 -0
  219. package/_site/_test/parallel-nav-offline-test.js +272 -0
  220. package/_site/_test/parallel-nav-operability-test.js +257 -0
  221. package/_site/_test/parallel-nav-switch-test.js +247 -0
  222. package/_site/_test/parallel-nav-theme-test.js +130 -0
  223. package/_site/_test/parallel-nav-viewport-test.js +310 -0
  224. package/_site/_test/parallel-qa-engine-endpoint-guard-test.js +273 -0
  225. package/_site/_test/parallel-retrieval-followup-citation-test.js +219 -0
  226. package/_site/_test/parallel-retrieval-followup-corpus-test.js +287 -0
  227. package/_site/_test/parallel-workbench-independent-host.js +262 -0
  228. package/_site/_test/parallel-workbench-integration-5025-abort-probe.js +340 -0
  229. package/_site/_test/parallel-workbench-integration-5025-drafts-probe.js +588 -0
  230. package/_site/_test/parallel-workbench-integration-5025-env-check.js +317 -0
  231. package/_site/_test/parallel-workbench-integration-5025-model-probe.js +342 -0
  232. package/_site/_test/parallel-workbench-integration-5025-ordering-probe.js +326 -0
  233. package/_site/_test/parallel-workbench-model-probe.js +336 -0
  234. package/_site/_test/parallel-workbench-offline-test.js +169 -0
  235. package/_site/_test/parallel-workbench-provenance-trace.js +134 -0
  236. package/_site/_test/parallel-workbench-source-match.js +206 -0
  237. package/_site/_test/parallel-workbench-standalone-turn.js +349 -0
  238. package/_site/_test/path-consistency-test.js +151 -151
  239. package/_site/_test/pending-sweep-test.js +9 -9
  240. package/_site/_test/post-commit-automation-test.js +87 -87
  241. package/_site/_test/pr-consumer-contract-test.js +55 -55
  242. package/_site/_test/product-brand-contract-test.js +25 -25
  243. package/_site/_test/product-diagnostics-ui-test.js +93 -93
  244. package/_site/_test/product-empty-state-test.js +148 -0
  245. package/_site/_test/product-import-ui-test.js +219 -104
  246. package/_site/_test/product-navigation-test.js +152 -0
  247. package/_site/_test/product-progress-status-test.js +84 -84
  248. package/_site/_test/project-delete-recovery-test.js +64 -64
  249. package/_site/_test/project-domain-create-test.js +91 -0
  250. package/_site/_test/project-domain-scope-retrieval-test.js +214 -0
  251. package/_site/_test/project-git-init-confirm-test.js +115 -0
  252. package/_site/_test/project-goal-editor-test.js +144 -144
  253. package/_site/_test/project-import-duplicate-alias-test.js +134 -0
  254. package/_site/_test/project-import-unicode-restart-test.js +140 -0
  255. package/_site/_test/project-lifecycle-transaction-test.js +106 -106
  256. package/_site/_test/project-module-partial-recovery-test.js +222 -0
  257. package/_site/_test/project-remove-running-guard-test.js +79 -79
  258. package/_site/_test/project-store-test.js +90 -90
  259. package/_site/_test/project-unbind-late-read-ui-test.js +250 -0
  260. package/_site/_test/project-unbind-writer-guard-test.js +231 -0
  261. package/_site/_test/prompt-settings-test.js +115 -115
  262. package/_site/_test/protected-architecture-gate-test.js +122 -122
  263. package/_site/_test/refactor-characterization-test.js +36 -36
  264. package/_site/_test/registry-events-test.js +38 -38
  265. package/_site/_test/release-version-sync-test.js +115 -115
  266. package/_site/_test/requirement-binding-test.js +113 -113
  267. package/_site/_test/requirement-recorder-test.js +173 -173
  268. package/_site/_test/run-all-tests.js +173 -161
  269. package/_site/_test/runtime-endpoint-test.js +64 -64
  270. package/_site/_test/scanner-test.js +83 -83
  271. package/_site/_test/server-security-test.js +96 -96
  272. package/_site/_test/sessions-stream-test.js +93 -93
  273. package/_site/_test/shared-contracts-test.js +58 -58
  274. package/_site/_test/shared-scope-root-binding-test.js +74 -67
  275. package/_site/_test/simple-import-test.js +98 -98
  276. package/_site/_test/startup-analysis-disabled-test.js +16 -16
  277. package/_site/_test/storage-foundation-test.js +78 -78
  278. package/_site/_test/structured-logger-test.js +101 -101
  279. package/_site/_test/t07b-cln-005-coverage-test.js +212 -0
  280. package/_site/_test/team-knowledge-store-sparse-checkout-test.js +196 -196
  281. package/_site/_test/team-knowledge-store-test.js +132 -132
  282. package/_site/_test/test-server-cleanup-test.js +35 -35
  283. package/_site/_test/test-server-module-isolation-test.js +37 -37
  284. package/_site/_test/tracking-start-test.js +144 -144
  285. package/_site/_test/vector-storage-root-test.js +75 -75
  286. package/_site/_test/version-visibility-browser-probe.js +249 -0
  287. package/_site/_test/version-visibility-test.js +92 -0
  288. package/_site/_test/workbench-context-receipts-test.js +22 -22
  289. package/_site/_test/workbench-permission-test.js +117 -117
  290. package/_site/_test/zcode-capture-integration-test.js +112 -112
  291. package/_site/lib/ai-profile-resolver.js +78 -78
  292. package/_site/lib/ai-vendor-presets.js +83 -83
  293. package/_site/lib/ai-workspace.js +104 -104
  294. package/_site/lib/atomic-file.js +204 -204
  295. package/_site/lib/automation-config.js +140 -140
  296. package/_site/lib/bridge-adapter.js +260 -260
  297. package/_site/lib/bridge-consumer-service.js +402 -402
  298. package/_site/lib/capture-hook-config.js +108 -108
  299. package/_site/lib/claude-cli-runner.js +1599 -1599
  300. package/_site/lib/cli-instances.js +43 -43
  301. package/_site/lib/codex-context-status.js +17 -17
  302. package/_site/lib/codex-notify-config.js +193 -193
  303. package/_site/lib/commit-conversation-binder.js +247 -247
  304. package/_site/lib/commit-processing-ledger.js +27 -27
  305. package/_site/lib/commit-prompt.js +202 -202
  306. package/_site/lib/commit-reconciler.js +444 -444
  307. package/_site/lib/context-pack-builder.js +299 -299
  308. package/_site/lib/contracts.js +291 -291
  309. package/_site/lib/conversation-exclusions.js +204 -204
  310. package/_site/lib/conversation-query-service.js +161 -161
  311. package/_site/lib/conversation-store.js +387 -387
  312. package/_site/lib/data-dir.js +13 -13
  313. package/_site/lib/embedding-service.js +85 -85
  314. package/_site/lib/engine-connection.js +93 -93
  315. package/_site/lib/engine-knowledge-client.js +76 -72
  316. package/_site/lib/evidence-bundle.js +228 -228
  317. package/_site/lib/folder-picker-output.js +24 -24
  318. package/_site/lib/git-path.js +14 -14
  319. package/_site/lib/git-runner.js +62 -62
  320. package/_site/lib/github-team-store.js +1175 -1175
  321. package/_site/lib/hook-manager.js +203 -203
  322. package/_site/lib/index-builder.js +157 -157
  323. package/_site/lib/index-service.js +173 -173
  324. package/_site/lib/integration-auto-repair.js +77 -77
  325. package/_site/lib/integration-installer.js +1240 -1240
  326. package/_site/lib/integration-intent.js +88 -88
  327. package/_site/lib/integration-status-scan.js +99 -99
  328. package/_site/lib/integration-status-worker.js +14 -14
  329. package/_site/lib/kb-framework.js +191 -191
  330. package/_site/lib/kb-validator.js +124 -124
  331. package/_site/lib/knowledge-db.js +363 -363
  332. package/_site/lib/knowledge-promotion.js +435 -435
  333. package/_site/lib/knowledge-retrieval-service.js +401 -401
  334. package/_site/lib/knowledge-schema.js +121 -121
  335. package/_site/lib/knowledge-tool-runtime.js +366 -366
  336. package/_site/lib/live-gateway.js +78 -78
  337. package/_site/lib/llm-client.js +173 -173
  338. package/_site/lib/markdown-knowledge-indexer.js +230 -230
  339. package/_site/lib/model-context-windows.js +82 -82
  340. package/_site/lib/module-bridge.js +874 -874
  341. package/_site/lib/module-port-resolver.js +57 -57
  342. package/_site/lib/post-commit-automation.js +141 -141
  343. package/_site/lib/product-data.js +35 -35
  344. package/_site/lib/project-lifecycle-service.js +554 -554
  345. package/_site/lib/project-registry-store.js +129 -129
  346. package/_site/lib/project-store.js +268 -268
  347. package/_site/lib/prompt-registry.js +148 -148
  348. package/_site/lib/public-version-info.js +37 -0
  349. package/_site/lib/registry-events.js +16 -16
  350. package/_site/lib/requirement-adapters.js +10 -10
  351. package/_site/lib/requirement-binder.js +112 -112
  352. package/_site/lib/requirement-recorder.js +278 -278
  353. package/_site/lib/runtime-control.js +89 -89
  354. package/_site/lib/runtime-endpoint.js +160 -160
  355. package/_site/lib/scanner.js +298 -298
  356. package/_site/lib/server-app.js +1672 -1664
  357. package/_site/lib/settings-store.js +153 -153
  358. package/_site/lib/storage-layout.js +166 -166
  359. package/_site/lib/structured-logger.js +574 -574
  360. package/_site/lib/zcode-context-integration.js +60 -60
  361. package/_site/scripts/codex-notify-fanout.cjs +95 -95
  362. package/_site/scripts/folder-picker.ps1 +156 -156
  363. package/_site/scripts/hook-trigger.js +158 -158
  364. package/_site/scripts/install-module-candidates.js +69 -69
  365. package/_site/scripts/pack-module-candidates.js +89 -89
  366. package/_site/scripts/sync-product-content.js +28 -28
  367. package/_site/scripts/sync-release-version.js +164 -164
  368. package/_site/scripts/vendor-modules.js +49 -49
  369. package/_site/scripts/verify-module-runtime.js +50 -50
  370. package/_site/scripts/verify-product-runtime.js +36 -36
  371. package/_site/scripts/verify-retrieval-gold.js +83 -83
  372. package/_site/server.js +15 -15
  373. package/_site/start.bat +26 -26
  374. package/_site/stop.bat +11 -11
  375. package/bin/project-knowledge-integrations.js +254 -254
  376. package/bin/project-knowledge-kb.js +67 -67
  377. package/bin/project-knowledge-mcp.js +201 -201
  378. package/bin/project-knowledge.js +269 -170
  379. package/claude-prompts.json +21 -21
  380. package/docs/README.zh-CN.md +207 -205
  381. package/docs/assets/architecture.svg +181 -181
  382. package/docs/assets/logo.svg +49 -49
  383. package/docs/fresh-v5-start.md +44 -44
  384. package/docs/leader-glm-workbench-playbook.md +122 -122
  385. package/docs/project-registry-schema.md +33 -33
  386. package/docs/release-5.0.16-acceptance.md +176 -176
  387. package/docs/release-5.0.17-acceptance.md +117 -117
  388. package/docs/release-5.0.19-acceptance.md +39 -39
  389. package/docs/team-knowledge-mode-a-plan.md +73 -73
  390. package/docs/testing-strategy.md +33 -33
  391. package/module-runtime-manifest.json +70 -67
  392. package/package.json +113 -110
  393. package/plugins/project-knowledge/.claude-plugin/plugin.json +1 -1
  394. package/plugins/project-knowledge/.codex-plugin/plugin.json +1 -1
  395. package/plugins/project-knowledge/.mcp.json +1 -1
  396. package/templates/change.md +30 -30
  397. package/templates/project-readme.md +52 -52
  398. package/ui/index.html +3 -2
  399. package/ui/version-info.css +44 -0
  400. package/ui/version-info.js +24 -0
  401. package/vendor-manifest.json +55 -55
package/CHANGELOG.md CHANGED
@@ -1,1346 +1,1361 @@
1
- # Changelog
2
-
3
- ## [5.0.23] - 2026-10-20
4
-
5
- - 接入 Workbench 0.13.5:Claude Code(含 GLM 等自定义模型)的用户提问显示单选、多选及自定义答案,明确提交后才继续;绕过普通工具授权时也不能代选或空答案放行。Codex 原生用户提问同步接入选择界面。
6
- - 主对话与子代理分别收集并回传答案,普通答案草稿刷新可恢复;关闭标签、收起面板和刷新不会提交答案,秘密输入不写入浏览器持久存储。
7
- - 子代理选择卡片并入对话滚动区域,发送长消息后输入框恢复高度,确保选项、提交和停止按钮可以使用。保留并排工作区、按需知识引用及 5.0.22 的后台启动修复。
8
-
9
- ## [5.0.22] - 2026-10-20
10
-
11
- - 将启动时的 Agent 接入检查和自动修复放入独立进程,避免慢客户端命令阻塞后台就绪通知、网页和实例控制;超时会记录可重试状态,停止服务同时清理自有检查进程。
12
- - 仅检查用户已连接的客户端;未能核实的状态不再当成未安装并触发自动修复。保留并排工作区、已有接入选择及知识数据。
13
- - 补充真实后台 CLI 在原生命令阻塞时的就绪、HTTP、状态查询和停止回归,以及超时、崩溃、手动修复结果优先级验证。
14
-
15
- ## [5.0.21] - 2026-10-20
16
-
17
- - 开始工作采用并排工作区:从加号新建子代理或按需添加知识引用,使用统一的对话、工具步骤、文件修改和输入框;移除面向客户的任务标识、派发阶段及诊断信息。
18
- - 子代理首次发送时继承当前项目、Agent、模型及主对话的冻结上下文,之后独立交流;原生任务可从主对话打开,并基于结果继续创建子对话。
19
- - 知识引用仅保留会话内单一标签,检索不自动展开、不抢焦点;修复刷新时内容提前投递的问题,并跟随产品深浅主题。
20
- - 主子草稿、标签和阅读位置可恢复;关闭标签不停止任务,窄窗口自动使用抽屉。精确锁定 Workbench 0.13.3。
21
-
22
- - 默认维护模型明确报告额度不足时,保留并展示可重试的失败原因;请求限流、认证失败分别展示。同项目后续提交等待前一条恢复,失败及排队记录跨重启保留。
23
- - 事件消费在分析任务建单前受阻时,活动页与系统状态展示故障,不再只显示空记录;故障及恢复通过现有实时连接更新,稳定状态不触发额外数据轮询。
24
-
25
- ## [5.0.19] - 2026-10-16
26
-
27
- - 工作台展示来自真实 SDK 事件的后台任务、工具活动及完成结果;主回复结束后可继续输入,后台任务继续归属原会话,切换和刷新可恢复。
28
- - 移除外壳列表定时轮询,复用实时连接推送摘要变化并增量更新侧栏;草稿按服务入口、项目和会话隔离,保护发送失败、迟到创建和附件读取的原始归属。
29
- - 修复新会话创建时的旧会话误用、追加消息 409、汇总回复重复展示,以及重启读取项目列表失败导致的重复登记与接线缓存问题。
30
- - 候选内容清单按 npm 实际安装行为规范 CLI shebang 的换行符,避免 Windows 工作树打包后产生错误的内容哈希告警;普通文件与脚本正文继续逐字节校验。
31
- - 自动长期记忆仅接受具有冻结人类原句与来源证据的跨项目长期规范;代理派单、单次修复和项目版本事实保留为项目知识。旧候选不自动改写。
32
- - 纳入 Workbench 0.13.2-rc.21 和经过真实向量回归的引擎修复;固定 30 条检索查询全部通过,109 处引用一致,真实修复提交完成分析、晋升、索引并由下一轮 GLM 实际采用。验收范围见 5.0.19 记录。
33
-
34
- ## [5.0.17] - 2026-10-15
35
-
36
- - 修复网页首屏被慢模块拖住、开始工作 Agent 探测同步阻塞与返回页面状态不刷新的问题;独立读取、明确失败状态和缓存保留,iframe 不重建。
37
- - 同源实时连接合并为每标签一条 WebSocket,保留独立模块 SSE,恢复时先读取快照并按游标续接;项目接线失败不再阻塞其他项目。
38
- - 工作台输出时向上滚轮立即暂停跟随,完整历史独立持久化并向前分页;旧 Claude 历史只读恢复,不再把有限事件缓存冒充全会话。
39
- - 精确锁定 Workbench 0.13.2-rc.17 与引擎 0.2.7-rc.10;补齐诊断和任务启动的异步发现旁路,保留 ZCode 注册表安装路径,并阻止已中止或被替换的初始化迟到启动任务。最终候选已通过独立下载安装、真实 MiniMax 与向量闭环,正式包先发 next 验收后再晋升 latest,详见 5.0.17 验收记录。
40
-
41
- ## [5.0.16] - 2026-10-15
42
-
43
- - 收敛 rc.8 已通过的 30 项核心门禁:修复真实主题证据遗漏、短向量子片段重复占位与小型明确提交上下文不完整,保留当前文件校验、记忆优先级及上下文预算。
44
- - 精确锁定 Workbench 0.13.2-rc.13、vector-hub 1.0.8-rc.8、event-bridge 0.7.2 和 vendored engine 0.2.7-rc.9;保留原生流式会话、项目双目录和 D 盘索引。
45
- - Codex 本地市场与 MCP 接线使用真实原生命令验证;四客户端实际接入,Claude/Codex/ZCode 首次开发请求的事实与产品记忆送达均实测通过,OpenCode 保留真实工具检索兼容,不冒称自动注入。
46
- - 正式包先发布 next 并重新下载安装验收,完成后才更新 latest;候选通过不等于正式包已验收。首次失败、升级保护与完整证据见版本验收记录。
47
-
48
- ## [5.0.16-rc.8] - 2026-10-15
49
-
50
- - 纳入引擎 0.2.7-rc.9:经验证的短向量子范围与包含它的 Markdown 段落不再重复占用片段名额;保留较大独立向量范围与原有校验,不扩散向量分数。
51
- - 用户明确引用已识别提交时,在原有上下文预算内完整送达当前项目的小型条目,先复验文档哈希与归属,避免摘要和交叉引用挤掉真实证据。大条目、普通主题和跨项目参考不展开;确认记忆优先级不变。
52
- - 保留 rc.7 真实网页失败及源码红测试。rc.7 双 Node 外壳 139 项、安装版八项、真实记忆与并发十项通过,不抵消真实任务正文遗漏;rc.8 必须重新验 npm 安装版,未完成前不更新 latest。
53
-
54
- ## [5.0.16-rc.7] - 2026-10-15
55
-
56
- - 纳入引擎 0.2.7-rc.8:修复 commit 标识与主题混合查询只返回概述、漏掉已有正文证据的问题。已识别 SHA 只限定来源,不重复参与主题打分;提交内按主题 BM25 选择片段,普通语义查询保留 RRF,并补中英单写者与引擎词汇。
57
- - 保持每文档两段、正文/向量区间校验、授权范围与上下文预算;同分排序稳定,不以标题中的 SHA 冒充任务事实已送达。
58
- - 新增真实原文遗漏的红/绿用例及 topic-context 发布门禁;真实工作台网页测试验证具体事实和实际回答,其他模块版本不变。候选未完成安装版与原生验收前不更新 latest。
59
-
60
- ## [5.0.16-rc.6] - 2026-10-15
61
-
62
- - 修复 Codex 0.137 将 scoped npm 目录中的 `@` 误作 Git ref:本地目录含 `@` 时从该目录执行 `marketplace add .`,更换和回退分别使用自己的工作目录,不复制目录、不访问 GitHub。
63
- - CLI 子操作日志关联原操作 ID,允许继续处理的失败仍记录安全诊断;本地路径误判保留 `CODEX_LOCAL_SOURCE_REF`,不写入原始 CLI 输出。
64
- - 保留 rc.5 的已验证四模块版本、索引与知识功能。rc.5 本机保真升级已通过:7 项目、43 历史文件、565 索引文件保留;真实记忆闭环与双 Node 浏览器门禁通过,热查询 P95 为 693ms(1000 文档合成语料)。
65
- - 本机 Codex 已通过原生本地市场操作恢复,MCP 声明入口 initialize/六工具/resolve/search/get 验证通过;Hook 尚待用户审核,不计自动上下文通过。候选不更新 latest。
66
-
67
- ## [5.0.16-rc.5] - 2026-10-15
68
-
69
- - 精确锁定 Workbench 0.13.2-rc.13:模型目录加载失败不再伪装成空目录;保留上次有效结果,提供明确错误与重试,打开菜单可恢复请求,关闭菜单后的迟到响应不会重开菜单。保存或删除供应商后不复用保存前的旧快照,普通菜单打开仍共享请求。
70
- - 保留 rc.4 的引擎与向量检索修复;模型菜单错误不显示原始异常或凭据。补充连续保存的竞态回归及测试服务器模块隔离,安装版故障恢复仍须单独验收。
71
- - Leader 负责关键开发和发布收尾,GLM 并行独立做故障测试与审查。候选发布到 next,不改变 latest。
72
-
73
- ## [5.0.16-rc.4] - 2026-10-14
74
-
75
- - 引擎 0.2.7-rc.7 复用同一次检索刚读取的知识正文,保留晚到响应后的文件与范围校验;vector-hub 1.0.8-rc.8 将有界查询缓存延长到 10 分钟,并防止旧请求失败删除新缓存。源码真实向量热查询 P95 为 1069ms,不代表安装版验收通过。
76
- - 锁定 vector-hub 1.0.8-rc.8(ebf6f586a534c4b851c919c53a5536671cc8bd12),保留 Workbench 0.13.2-rc.11 与 bridge 0.7.2;四个模块集与官方 npm tarball 双向逐字节核对(vendored 引擎 40、Workbench 96、vector-hub 59、bridge 38)。
77
- - 候选不改变 latest;完整安装版和原生客户端验收通过后才允许晋升。
78
-
79
- ## [5.0.15] - 2026-10-13
80
-
81
- - 冻结 rc.5 已验收的中文 BM25 与可校验向量片段融合、本项目进度与跨范围上下文、无可靠匹配诊断及离线 Claude 插件接入。
82
- - 包含 UI 属性/源码示例被知识晋升误判的修复,以及 Codex 本地市场重载修复;保留真实 Git 失败和原生 Hook 信任审核。
83
- - 正式包先下载和测试,再更新 latest;本机与另一台设备的结果分别报告。
84
-
85
- ## [5.0.15-rc.5] - 2026-10-13
86
-
87
- - 修复 Codex 本地插件市场被强制执行 Git 刷新而无法更新的问题;识别原生明确的非 Git 市场反馈后重新加载本地插件,真实 Git/认证失败仍终止,保留可用旧插件。
88
- - 不写入 Hook 信任、不跳过原生审核;保留 rc.4 的知识晋升误判修复与检索改进。
89
- - 候选包先下载验收,不提升 latest。
90
-
91
- ## [5.0.15-rc.4] - 2026-10-13
92
-
93
- - 修复知识晋升校验把 UI 的 `placeholder=` 属性及有正文解释的源码示例误判为未完成内容的问题;真实未完成标记、空正文、越界及哈希校验继续拦截。
94
- - 保留失败记录及项目 FIFO,不升级后自动重做失败提交;用户可通过运行详情显式重试。
95
- - 保留 rc.3 的检索与离线接线修复;重新进行 npm 安装版验收,暂不提升 latest。
96
-
97
- ## [5.0.15-rc.3] - 2026-10-13
98
-
99
- - 当前项目没有维护历史但已有其他知识时,最近进度检索明确显示“本次无可靠匹配”,不误报整个项目知识为空。
100
- - 增加用户原句“我想知道我当前向量库存储的位置在哪”的回归与现有知识文件只读验收;存储规则引用与当前设备实际路径分别核验。
101
- - 保留 rc.2 的片段校验、中文排序、跨项目范围隔离和离线插件接入;候选版不更新 latest。
102
-
103
- ## [5.0.15-rc.2] - 2026-10-13
104
-
105
- - Windows 路径边界校验改用原生规范化,保留中文/空格、缺失末级目录和目录联接越界检查。
106
- - 保留 rc.1 的全部检索及离线接线修复;性能验收明确区分真实向量召回与最终选择词法结果,不把词法结果标为向量命中。
107
- - 候选版仍不提升 latest,源码、npm 安装版、真实客户端及另一台设备的反馈分别记录。
108
-
109
- ## [5.0.15-rc.1] - 2026-10-13
110
-
111
- - 候选版检索采用当前 Markdown 分块上的中文 BM25 与可验证向量片段融合;每篇最多两个互补片段,不将文档向量分数扩散到全部章节。
112
- - 最近进度优先本项目提交依据;开发上下文本项目事实保留预算、领域参考限量,记忆仍独立准备。无可靠匹配不再表示知识库为空。
113
- - Claude 插件默认从 npm 包内本地市场安装,无需 GitHub;接入状态探测放入有界后台进程,超时与未安装分开显示并记录日志。
114
- - 保留 v5 数据、第三方 Hook 与客户端配置。候选发布不更新正式 latest;真实模型、客户端及安装版验收分别记录。
115
-
116
- ## [5.0.14] - 2026-10-13
117
-
118
- - 长期记忆页增加“添加记忆”:填写内容并选择全局、领域或项目,用户确认后直接保存为已确认记忆。
119
- - 手动来源独立标明,不伪造 Agent 分析、项目来源或 commit;复用引擎受控写入、持久化、共享索引和开发前上下文。
120
- - 校验无效目标、重复内容和越界路径;取消不保存,保存与编辑自动刷新,写入失败保留记录并报告待恢复。
121
- - 保留 5.0.13 的重复采集修复:已有旧 Hook 仍需在 Agent 接入中执行“接入/修复”,升级启动不等于已清理旧接线。
122
-
123
- ## [5.0.13] - 2026-10-13
124
-
125
- - 修复独立 bridge 与产品 bridge 同时接入导致同一项目生成两个知识目录:接入/修复只替换明确的旧自有入口,并去除当前入口的重复项。
126
- - Claude Code、ZCode 重复采集不再显示为正常;保留混合分组中的第三方 Hook、知识读取、模型配置和历史日志。
127
- - Codex 通知链识别默认旧 bridge,包括已知通知分支中嵌套的旧入口;保留第三方通知,不恢复退役的重复采集。
128
-
129
- ## [5.0.12] - 2026-10-12
130
-
131
- - 冻结 rc.3 已验收的三客户端开发前知识读取:Claude Code、Codex、ZCode 获取统一事实及适用的已确认长期记忆。
132
- - 当前编辑记忆优先于历史实现;指定已知源文件不会被重复历史向量结果挤出,保留引用与范围校验。
133
- - ZCode 入口跨 npm 安装目录更新并去重,Codex 遵循原生 Hook 信任审核,保留用户模型、第三方 Hook 和既有采集。
134
- - 正式包先下载验收,再更新 latest;OpenCode 保持 MCP/采集兼容,不宣称未经验证的自动注入。
135
-
136
- ## [5.0.12-rc.3] - 2026-10-12
137
-
138
- - 修复点名源文件的需求被相似历史向量结果挤出的情况;已有文件标识先匹配知识依据,新文件名仍可检索相似背景。
139
- - 修复 ZCode 安装目录变化时残留旧上下文入口;只替换明确属于本产品的脚本,去除重复入口,保留第三方 Hook、采集及模型。
140
- - 保留真实模型首轮失败和再次验证记录,未完成 Codex 原生信任审核前不提升 latest。
141
-
142
- ## [5.0.12-rc.2] - 2026-10-12
143
-
144
- - 修正自动上下文的当前记忆与历史事实边界,保留编辑时间及项目、领域、全局的适用优先级。
145
- - 新增保留旧代码及历史知识的真实编辑记忆验收;候选版仍需真实模型验证,不以注入成功代替实际采用。
146
- - 保持用户当前需求及安全限制优先,不因记忆增加授权;不改动用户知识文件、路径和第三方设置。
147
-
148
- ## [5.0.12-rc.1] - 2026-10-12
149
-
150
- - 候选版新增 Codex、ZCode 原生需求提交前的知识读取,复用引擎同一份事实、记忆与引用。
151
- - 修复 Codex 旧插件存在时跳过升级;区分安装、定义完整、启用和原生信任状态,未信任不显示已就绪。
152
- - ZCode 使用用户配置的 process Hook,保留第三方 Hook、模型及既有采集;被禁用的 Hook 不静默重启。
153
- - 工作台提供上下文和原始会话采集时,仅抑制自身原生重复入口;候选实测未通过前不替换 latest。
154
-
155
- ## [5.0.11] - 2026-10-12
156
-
157
- - Claude Code 的普通开发需求通过原生前置 Hook 自动取得项目/领域知识和适用的已确认长期记忆;MCP 保留用于深入读取。
158
- - 引擎统一准备有界上下文,工作台复用同一接口并避免重复注入;知识读取失败明确提示后继续,向量故障不冒充成功。
159
- - 修复旧知识插件存在即跳过更新及 Windows Git CRLF/npm LF 接线误判;插件版本、启用、文件与采集能力分别验证。
160
- - 保留 v5 数据、模型、第三方 Hook 和向量位置;原生模型请求与开发提交闭环分开验收。首批只承诺 Claude Code 自动读取,Codex/ZCode 后续交付。
161
-
162
- ## [5.0.10] - 2026-10-12
163
-
164
- - Freeze the accepted rc.2 scoped-memory runtime: review and edit candidates,
165
- choose global/domain/project applicability, and confirm in one transaction.
166
- - Preserve v5 knowledge, source evidence, histories and directory bindings;
167
- only applicable, confirmed and synchronized memories enter task retrieval.
168
- - Include real MiniMax candidate extraction, 1536-dimensional embeddings,
169
- project/domain/global isolation, CLI/MCP agreement and restart regression.
170
- - Publish first to next; formal npm installation and existing-user upgrade
171
- acceptance precede stable latest promotion. Other module versions stay pinned.
172
-
173
- ## [5.0.10-rc.2] - 2026-10-12
174
-
175
- - Require candidate entry IDs to name an actually promoted Markdown document;
176
- record rejected candidate counts and safe reason codes instead of silently
177
- losing model suggestions or inventing source citations.
178
- - Keep valid knowledge updates independent of optional candidate failures;
179
- roll back an unpersisted candidate batch and expose diagnostics in activity.
180
- - Distinguish changed-memory index jobs from unchanged health probes so ready
181
- memories do not remain falsely marked as indexing.
182
-
183
- ## [5.0.10-rc.1] - 2026-10-12
184
-
185
- - Add global/domain/project memory applicability and a single review form for
186
- editing content, selecting any existing target and confirming atomically.
187
- - Retain original evidence, scope-aware duplicate suppression, existing v5
188
- global memories and all fixed code/knowledge directory bindings.
189
- - Filter exclusive memories before retrieval ranking and file reads; clear old
190
- projections after scope changes and report/retry pending file synchronization.
191
- - Keep the accepted Workbench, vector-hub and event-bridge versions unchanged;
192
- candidate package acceptance precedes stable latest promotion.
193
-
194
- ## [5.0.9] - 2026-10-12
195
-
196
- - Freeze the accepted rc.19 web runtime and exact module versions; no new
197
- product features, old-version migration or existing v5 data reset.
198
- - Include index failure diagnostics, index-only recovery, knowledge-root
199
- index storage, safe client discovery/notify chaining, maintenance isolation
200
- and the embedded Workbench startup/streaming fixes from the candidate series.
201
- - Publish initially to next. Official npm installation, Node 22/24 regression,
202
- real MiniMax knowledge/embedding loops and existing-user upgrade acceptance
203
- must pass before stable latest promotion.
204
-
205
- ## [5.0.9-rc.19] - 2026-10-12
206
-
207
- - Pin Workbench 0.13.2-rc.7. Startup shows a loading state and keeps controls
208
- inert until projects and event handlers are ready; the existing streaming
209
- and session recovery paths are unchanged.
210
- - Preserve the real rc.18 premature-click failure and require its actual
211
- usable-page ready receipt in browser acceptance. Add a deterministic
212
- startup gate regression and Node 22/24 retests.
213
- - Include Windows test-server cleanup hardening and corrected storage-root
214
- assertions. Retain existing v5 data, third-party configuration and the
215
- official-package acceptance gate before stable latest promotion.
216
-
217
- ## [5.0.9-rc.18] - 2026-10-12
218
-
219
- - Project resolution for MCP and CLI now reports the vector-hub storage root
220
- selected in settings, not the retired shell database path. A running tool
221
- rereads root changes; resolution does not move files or rebuild indexes.
222
- - Preserve the reproduced rc.17 diagnostic mismatch and add Node 22/24
223
- coverage for configured, changed and unset roots and MCP output.
224
- - Retain existing v5 data and all accepted module pins. Publish to next;
225
- stable latest remains behind official-package and actual-user acceptance.
226
-
227
- ## [5.0.9-rc.17] - 2026-10-11
228
-
229
- - Pin Workbench 0.13.2-rc.6. Repeated embedded notifications for the current
230
- project no longer abandon a newly created session; real project changes and
231
- late project lookups still preserve isolation and per-project drafts.
232
- - Keep a healthy progress stream labelled as connected on redundant online
233
- events. Verify actual offline cleanup, snapshot recovery and exactly one
234
- restored SSE connection with a real browser and HTTP proxy.
235
- - Preserve the rc.16 real Workbench failure and require official-package
236
- streaming/citation acceptance before upgrading the actual user instance.
237
- - No data reset or third-party configuration overwrite. Stable latest remains
238
- behind the full candidate and installed-product acceptance gates.
239
-
240
- ## [5.0.9-rc.16] - 2026-10-11
241
-
242
- - Pin Workbench 0.13.2-rc.5. Bound OpenCode's health request at both
243
- response headers and JSON body so a stalled local server cannot exceed
244
- the startup handshake budget before the existing CLI fallback.
245
- - Reproduce the old behavior using two live HTTP connections, retain the
246
- failed rc.15 client acceptance and require a new official-package retest.
247
- - No project, knowledge, history, provider or third-party hook reset.
248
- Candidate is published to next; stable latest still requires acceptance.
249
-
250
- ## [5.0.9-rc.15] - 2026-10-11
251
-
252
- - Serialize registration, module removal and registry deletion for each project.
253
- Recheck membership inside the wiring lease so delayed supervisor registration
254
- cannot resurrect a project after keep-data unbind. Unrelated projects remain
255
- independent; failed deletion can still be repaired and retried.
256
- - Reproduce the race with a delayed real HTTP registration and preserve the
257
- downloaded rc.14 Node 22 UI failure. Include the regression in the package.
258
- - Use non-binding CLI readiness probes in tests; the old bind probe could take
259
- the exact port while its own foreground child was starting.
260
- - Real MiniMax acceptance covers overlapping analyses, another commit and a
261
- dirty developer draft during analysis, streaming, secondary development,
262
- four installed clients and evidenced preference candidates. New downloaded
263
- candidate acceptance and actual-user cutover still precede stable latest.
264
-
265
- ## [5.0.9-rc.14] - 2026-10-11
266
-
267
- - Vendor engine 0.2.3-rc.7: isolated maintenance consumes frozen evidence even
268
- while the user edits or commits in the source repository. Do not mistake live
269
- development for analyzer writes; retain live-source protection for custom
270
- analyzers without the isolation capability.
271
- - Add a paused child-worker regression covering another commit, uncommitted
272
- drafts, frozen attribution, same-project FIFO and unchanged path/tool guards.
273
- - Existing-user npm acceptance verified real MiniMax streaming, retained v5
274
- history/configuration, D-root indexes and index-only e9f6560 recovery. Preserve
275
- the actual rc.13 PROJECT_BUSY failure and require a real mid-analysis commit
276
- retest from downloaded rc.14 before stable promotion.
277
-
278
- ## [5.0.9-rc.13] - 2026-10-11
279
-
280
- - Give native Agent session creation and input setup a bounded 90-second proxy
281
- budget. Ordinary API reads/abort/permissions retain 10 seconds; SSE streaming
282
- and folder-picker contracts are unchanged.
283
- - Record safe proxy failure categories and deadlines without raw errors or URL
284
- queries. Preserve MODULE_UNREACHABLE compatibility and add optional details.
285
- - Reproduce the installed OpenCode cold-start failure with a real delayed HTTP
286
- server; verify the targeted budget, unrelated routes and credential redaction.
287
- - Retain rc.12 real acceptance and failed OpenCode results separately; require
288
- a newly downloaded candidate and cold-client retest before user upgrade.
289
-
290
- ## [5.0.9-rc.12] - 2026-10-11
291
-
292
- - Vendor engine 0.2.3-rc.6 to address the Windows transient state-file rename
293
- failure exposed by installed rc.11 fault acceptance. Use exclusive random
294
- temporary files and bounded sharing retries, retain durable state on failure,
295
- and never unlink live state to force replacement.
296
- - Add deterministic sharing-violation, permanent-lock, foreign-temp and
297
- disk-full regressions; all 39 engine tests pass on Node 22 and Node 24.
298
- - Preserve the rc.11 failure and require new installed acceptance before any
299
- existing-user upgrade or stable latest promotion.
300
-
301
- ## [5.0.9-rc.11] - 2026-10-11
302
-
303
- - Pin vector-hub 1.0.8-rc.3 and vendor engine 0.2.3-rc.5. Raw commit
304
- conversations and internal backups are analysis evidence, not knowledge.
305
- Exclude them from managed indexes, search and get; retain source evidence.
306
- - Prune stale derived records during sync and rebuild once on source-policy
307
- upgrade, without repeating paid whole-index work on ordinary restarts.
308
- - Keep standalone vector-hub general document support unchanged.
309
- - Record both original failing regressions and successful Node 22/24 reruns;
310
- installed, real model and existing-v5 gates still precede latest promotion.
311
-
312
- ## [5.0.9-rc.10] - 2026-10-11
313
-
314
- - Preserve acknowledged brain/domain knowledge-directory bindings when changing
315
- the knowledge root. Only derived indexes and future imports/shared scopes use
316
- the new root; existing knowledge and confirmed memories stay in place.
317
- - Persist bindings in shell metadata, reject implicit rebinding, and report
318
- shared-scope connection failures in UI and safe structured logs.
319
- - Add real-engine regression for confirmed memory, domain retrieval, restart,
320
- new domain registration, offline retry and protected bindings on Node 22/24.
321
- - Candidate acceptance still precedes the existing-v5 upgrade and stable latest.
322
-
323
- ## [5.0.9-rc.9] - 2026-10-11
324
-
325
- - Vendor engine 0.2.3-rc.4. Freeze existing target paths and hashes before
326
- analysis so missing retrieval snippets cannot be mistaken for absent files.
327
- Preserve full old documents when only partial context is available; illegal
328
- create operations still fail safely instead of silently overwriting data.
329
- - Keep the failed rc.8 secondary-development maintenance evidence and verify
330
- that exact commit after downloading this candidate, not patched source bytes.
331
- - Render long index-directory paths as a full-width block in System Status.
332
- - latest remains unchanged until the real closed-loop and existing-v5 gates pass.
333
-
334
- ## [5.0.9-rc.8] - 2026-10-11
335
-
336
- - Pin Workbench 0.13.2-rc.4: atomically replace all native Agent histories,
337
- retaining the previous complete record on disk-full or locked-file errors.
338
- CLI fallback no longer deletes durable history before a failed rename.
339
- - Keep the original disk-full loss and separate successful background recovery
340
- records. Candidate acceptance includes faults against downloaded module bytes.
341
- - Pin vector-hub 1.0.8-rc.2. Managed indexes now follow the knowledge root
342
- under `.indexes`; show the acknowledged actual directory in System Status.
343
- Rebuild on a root/model change while retaining the old index directory;
344
- serialize queued writes and avoid a full paid rebuild on normal restart.
345
- - Do not promote latest until installed and existing-v5 acceptance pass.
346
-
347
- ## [5.0.9-rc.7] - 2026-10-11
348
-
349
- - Vendor engine 0.2.3-rc.3: recognize promoted commit identifiers inside
350
- natural-language tasks, including short and multiple SHAs. Raw conversation
351
- mentions cannot replace the current promoted knowledge references.
352
- - Preserve failed installed Workbench/context checks from rc.6; latest remains
353
- unchanged until fresh registry runtime and existing-v5 acceptance pass.
354
-
355
- ## [5.0.9-rc.6] - 2026-10-11
356
-
357
- - Vendor engine 0.2.3-rc.2. Unassigned projects no longer share an implicit
358
- domain in retrieval or Workbench task context. Explicit domains and whole
359
- brain queries retain their inclusive scopes.
360
- - Keep the failed rc.5 real Workbench acceptance as a separate record. This
361
- candidate must pass fresh downloaded-runtime checks before promotion.
362
-
363
- ## [5.0.9-rc.5] - 2026-10-11
364
-
365
- - Pin Workbench 0.13.2-rc.3: retain OpenCode final answers across tool rounds,
366
- isolate CLI history by product data directory and recover only owned v5
367
- session records without moving or deleting originals.
368
- - Support current ZCode model-selection and failure events. Shared provider
369
- credentials stay in memory behind a temporary loopback transport; client
370
- shutdown cleans up the transport and settles rejected sends correctly.
371
- - Candidate publication does not promote latest or imply complete acceptance.
372
- Real client execution, installed UI regression and existing-data upgrade
373
- remain separately recorded gates.
374
-
375
- ## [5.0.9-rc.4] - 2026-10-11
376
-
377
- - Pin Workbench 0.13.2-rc.2: resolve the installed ZCode provider resource
378
- layout without rewriting desktop or personal configuration, and label
379
- runtime failures with the correct agent.
380
- - Disable the project selector until the first registry snapshot. This fixes
381
- the startup interaction race exposed by the Node 22 packaged UI regression.
382
- - Latest is unchanged; real installed acceptance and client authentication are
383
- independent gates, not implied by a successful version probe.
384
-
385
- ## [5.0.9-rc.3] - 2026-10-11
386
-
387
- - Route engine-wired CLI and MCP reads through the same authoritative engine
388
- as the web UI, preserving commit references and project/domain/brain scopes.
389
- Verify the selected runtime identity and reject unavailable, mismatched or
390
- malformed services instead of silently querying a different local index.
391
- - Preserve the MCP `space` alias and expose explicit scope selection. Bound
392
- responses and never forward profile or credential objects to read routes.
393
- - Drain isolated regression servers before Windows fixture cleanup. Candidate
394
- publication still does not promote latest or claim complete acceptance.
395
-
396
- ## [5.0.9-rc.2] - 2026-10-11
397
-
398
- - Pin the verified Workbench 0.13.2-rc.1 and vector-hub 1.0.8-rc.1 candidates.
399
- Normalize known official MiniMax embedding route aliases at runtime without
400
- changing existing v5 configuration bytes or private gateway paths.
401
- - Queue same-project index writes across embedding-model rebuilds. Failed writes
402
- do not poison retries, and unrelated projects remain independent.
403
- - Restore safe relative Markdown document navigation and verify the standalone
404
- retrieval UI at 1920x1080. Tests never kill unrelated port owners.
405
- - Isolate regression-suite ports and tolerate Windows fixture file release.
406
- Candidate publication is not full product acceptance; latest remains unchanged.
407
-
408
- ## [5.0.9-rc.1] - 2026-10-11
409
-
410
- - Retain classified, bounded and redacted index errors in run details, activity
411
- and local log/v2 exports. Index-only retries preserve promoted files and do not
412
- invoke the analysis model again.
413
- - Accept ZCode conversation evidence, isolate per-project journal failures and
414
- report the exact blocked sequence without dropping evidence or flooding logs.
415
- - Synchronize production asset hashes, including the shared favicon. Permit
416
- exact rc module pins but reject tags, ranges, links and source overrides.
417
- - Prepare a web-only candidate; latest is not promoted by this release. Existing
418
- v5 data and third-party integrations are preserved; system acceptance remains
419
- a separate gate from publication.
420
-
421
- ## [5.0.8] - 2026-10-10
422
-
423
- - Repair managed Codex notify chains after scoped npm package or Bridge-home
424
- changes. Preserve live desktop wrappers and valid third-party notifications;
425
- unwrap only missing, known Codex runtime wrappers. Unknown notifiers remain
426
- conflicts, never overwritten. Repeat setup is idempotent; removal unwraps
427
- capture without deleting existing notifications or evidence.
428
- - Accept Codex's documented JSON argument as well as legacy stdin notifications.
429
- Preserve the third-party payload and transport, adapt only the Bridge wake-up
430
- aliases, and isolate child-process errors between notification branches.
431
- - Place new notify entries at the TOML root. Back up only the modified setting,
432
- and refuse stale writes when another program changes the config after preflight.
433
- - Add real Git/Bridge/journal capture regression with isolated rollout fixtures,
434
- duplicate-notify and missing-session checks; no model calls or user-data reset.
435
-
436
- ## [5.0.7] - 2026-10-10
437
-
438
- - Normalize CLI command case and reject unknown commands, extra arguments and
439
- invalid ports before any service or data is created.
440
- - Replace the shared temporary PID and blind orphan scan with per-data-directory
441
- local control channels. Stop waits for the backend and owned module shutdown;
442
- stale or unrelated PIDs are never signaled.
443
- - Add verified local instance inventory (`status --all`), explicit targeted stop
444
- (`stop --port`) and data-directory selection (`--data`). Display the actual
445
- port, version and data directory; refuse unverifiable or mismatched targets.
446
-
447
- ## [5.0.6] - 2026-10-10
448
-
449
- - Do not mistake unregistered, abandoned legacy chat records for a knowledge
450
- database on first launch. Preserve their bytes without restoring sessions or
451
- importing projects; continue rejecting actual old registries and maintenance.
452
- - Wait for the background server's real HTTP readiness before reporting success
453
- or opening the browser. Surface startup failures in the invoking terminal with
454
- a nonzero exit code, and name the exact conflicting data entries.
455
- - Isolate regression data from the user's default data directory. Add a detached
456
- npm CLI startup regression from an unrelated working directory.
457
-
458
- ## [5.0.5] - 2026-10-10
459
-
460
- - Invalidate in-flight registry snapshots after domain creation, project import,
461
- ownership changes and wiring repair. A read begun before the write cannot
462
- hide the newly registered data until the next polling cycle.
463
- - Includes all knowledge-maintenance, Claude discovery and local diagnostic
464
- fixes from 5.0.3, plus exact commit retrieval from 5.0.4. No schema migration
465
- or automatic replay of failed model tasks.
466
-
467
- ## [5.0.4] - 2026-10-10
468
-
469
- - Vendor engine 0.2.2: treat a known full/prefix commit SHA as a provenance
470
- identifier. Unrelated high-scoring vector chunks cannot crowd out the matching
471
- current knowledge. Preserve ordinary semantic ranking and current-file truth;
472
- overwritten documents are not attributed to their earlier commit.
473
- - Includes the empty-knowledge and Claude discovery/diagnostic fixes from 5.0.3.
474
-
475
- ## [5.0.3] - 2026-10-10
476
-
477
- - Pin Workbench 0.13.1: reject stale Claude executable overrides without hiding
478
- a valid installation; discover native/PATH/package entries and probe JS/CJS/MJS
479
- through Node. Discovery, doctor and runtime failures record their actual cause.
480
- - Vendor engine 0.2.1: an empty knowledge tree is a valid first-use state. Require
481
- evidence-backed nonempty Markdown; normalize only missing titles in validated
482
- staging output and reseal hashes before promotion. Empty/invalid output still
483
- fails safely with a concrete reason, without overwriting existing knowledge.
484
- - Route module diagnostics through the supervisor to local product logs and the
485
- diagnostic page; redact runtime credentials before IPC. Preserve failed runs
486
- for explicit retry rather than silently replaying model tasks on upgrade.
487
-
488
- ## [5.0.2] - 2026-10-10
489
-
490
- - Add ZCode capture to the unified CLI and web System Status connector setup,
491
- including repair, status and safe removal. Keep unverified ZCode knowledge
492
- plugin support explicitly separate from working capture hooks.
493
- - Correct command/config discovery labels and stop treating consumer
494
- registration or disabled hooks as proof of capture. Report partial failures
495
- with their operation ID and persist connector errors from both web and CLI.
496
- - Pin event-bridge 0.7.2: external hooks resolve their own Bridge home without
497
- inherited environment variables; ZCode events preserve their source. Repair
498
- older entries in place and retain third-party hooks within mixed groups.
499
-
500
- ## [5.0.1] - 2026-10-10
501
-
502
- - Fix project import on Git versions before 2.31: query hooks and common Git
503
- directories without `--path-format`, then resolve relative paths against the
504
- Git command's working directory. Reject empty, multi-line or echoed-option
505
- responses before writing hooks or repository identities.
506
- - Apply the same correction to commit capture and pin event-bridge console
507
- 0.7.1 so importing a project and capturing its next commit use consistent
508
- workspace metadata. No previous data is migrated.
509
- - Keep import failure feedback visible with its error code and operation ID.
510
- Persist the actual failed transaction stage; system diagnostics default to
511
- all projects so failures of not-yet-registered imports are visible/exportable.
512
-
513
- ## [5.0.0] - 2026-10-10
514
-
515
- - Fresh-data-only web product. Default state moves to `~/.project-knowledge-v5`;
516
- no previous knowledge, project registry, unfinished claims or model profiles
517
- are imported. Explicitly selected old data directories are rejected unchanged.
518
- - Remove shell migration/cutover and engine `/api/migrate`. Engine 0.2.0 uses
519
- schema version 3; validate its data generation and runtime authentication
520
- before registering projects or enabling consumption. System status reports
521
- safe connection stage/error codes instead of silently waiting for takeover.
522
- - Isolate Workbench, bridge journals and vector configuration under the new
523
- product directory. No automatic embedding-credential migration.
524
- - Queued, unstarted tasks are cancelled on unbind; active knowledge/index write
525
- leases still block removal. The visible confirmation dialog updates project
526
- selection immediately and rejects stale registry responses without reloading.
527
- - Reimport can explicitly replace a leftover knowledge-managed Git Hook. Failed
528
- imports restore the prior Hook; third-party hooks and existing knowledge files
529
- are never overwritten. Import tracks HEAD without analyzing historical commits.
530
-
531
-
532
- ## [4.8.0] - 2026-10-10
533
-
534
- - Unified brain web product: six real pages for work, retrieval, memories,
535
- domains/projects and activity. Existing module UIs retain their streaming
536
- and recovery behavior with one embedded theme and project context.
537
- - Project import wires all four modules and preserves code/knowledge paths;
538
- domains and confirmed memories add shared scopes without moving knowledge.
539
- - The vendored knowledge-engine owns journal consumption, isolated analysis,
540
- staging promotion and retrieval. Per-project FIFO and two concurrent projects
541
- persist across recovery; promotion and indexing have separate failure states.
542
- - Pin the validated module releases: Workbench 0.13.0, vector-hub 1.0.7,
543
- event-bridge console 0.7.0 and vendored knowledge-engine 0.1.0.
544
- Runtime file hashes are verified before release, not resolved from `latest`.
545
- - Web-only release. No new Windows installer or desktop auto-update delivery.
546
- Regression uses controlled model/embedding doubles; real-model and real-index
547
- smoke tests are reported separately. Remaining fault combinations are not
548
- represented as a completed stability certification.
549
-
550
- ## [4.7.0] - 2026-09-21
551
-
552
- - All four embedded module dependencies (`claude-ai-workbench`,
553
- `@sanqianx/vector-hub`, `@sanqianx/ai-coding-event-bridge-console`, plus the
554
- `@sanqianx/ai-coding-event-bridge` consumer inside the shell) are now pinned
555
- to `latest`, so a fresh `npm install` pulls whatever the upstream modules
556
- ship instead of lagging behind the project's npm releases. The legacy
557
- `@sanqianx/ai-coding-event-bridge` package — which used to be the engine
558
- library — is deprecated on npm and removed from this project's dependencies;
559
- its capture engine now ships inside `@sanqianx/ai-coding-event-bridge-console`
560
- at `src/bridge`, and the four production call sites (hook capture, requirement
561
- recorder, integration installer, bridge adapter) plus six tests were rewritten
562
- to import from there. The legacy package's every version carries a deprecation
563
- message pointing to the new entry.
564
- - The package is published as `@sanqianx/project-knowledge` (moved from the
565
- unscoped `project-knowledge`); the unscoped name still resolves to the old
566
- versions for users who haven't migrated, but new installs land on the
567
- scoped package.
568
-
569
- ## [4.6.0] - 2026-09-21
570
-
571
- - The three embedded module runtimes now ship as real npm dependencies instead
572
- of the `_modules/` committed snapshot: `claude-ai-workbench@0.4.1`,
573
- `@sanqianx/vector-hub@1.0.1` and
574
- `@sanqianx/ai-coding-event-bridge-console@0.4.0` (bringing
575
- `@sanqianx/ai-coding-event-bridge@0.4.0` transitively). The `_modules/`
576
- directory, its vendor script and the tarball entry are removed.
577
- - Why it matters: the snapshot lagged the source repo — npm consumers missed
578
- the codex resident-bridge Windows fix (per-turn process respawns made every
579
- turn 5-20s), claude failure-reason surfacing, `/system/doctor` diagnostics
580
- and the folder-picker foreground/centering fixes. Module upgrades are now a
581
- one-line version bump verified by `npm ci`, with no manual snapshot step.
582
- - `module-bridge` resolves each runtime entry through `require.resolve` from
583
- the installed packages (same supervised spawn, reuse and env-override
584
- contract as before); the `NODE_PATH` stitching is gone. `release:verify` no
585
- longer gates on the vendored snapshot.
586
-
587
- ## [4.5.0] - 2026-09-21
588
-
589
- - The embedded Agent Terminal's settings view gains a 会话捕获 (capture) tab.
590
- Terminal conversations remain exempt from Development Conversation capture by
591
- default — the terminal is internal AI runtime, not the developer's CLI
592
- record. Flipping the toggle persists the scope, applies it to the runner
593
- immediately, and marks only NEW terminal sessions with
594
- `AI_CODING_EVENT_BRIDGE_CAPTURE=1`, so they reach the Bridge journal and the
595
- 会话浏览 explorer like any CLI tool conversation. Existing sessions are
596
- unaffected, and nothing changes for standalone terminals that never touch
597
- the toggle. Ships the updated vendored Agent Terminal runtime.
598
-
599
- ## [4.4.0] - 2026-09-21
600
-
601
- - The ai-coding-event-bridge conversation console joins the Agent Terminal and
602
- vector-hub as the third embedded Control Center module. The vendored runtime
603
- (console 0.4.0 + its core) ships inside the npm package and starts with the
604
- shell on 127.0.0.1:8790; the console's dependency on
605
- `@sanqianx/ai-coding-event-bridge` resolves from a node_modules directory
606
- vendored inside the console package, so the host package's own older npm
607
- dependency can never shadow it. The global `node_modules/` gitignore rule
608
- carries a negation for that directory, and `vendor:modules --check` now
609
- verifies the runtime is present and git-tracked — the 4.3.0 "runtime missing
610
- from the tarball" incident class cannot recur for this module either.
611
- - Module integration follows the established contract: same-origin reverse
612
- proxy under `/api/eventbridge/`, supervised spawn with reuse of an already
613
- listening standalone console (`KB_EVENTBRIDGE_COMMAND` override,
614
- `AI_CODING_EVENT_BRIDGE_HOME` passthrough so the explorer shows the same
615
- journal the in-process BridgeAdapter writes), idempotent import-time
616
- registration keyed by Git work tree path using the recommended
617
- `<knowledge>/dev-conversations` store, removal that keeps journals and sealed
618
- commit documents, aggregated sidebar projection and module health.
619
- - The shell UI gains the 会话浏览 view (connect probe, 独立打开 link, per-project
620
- 桥 badge, import/remove copy) — and the conversation explorer itself learned
621
- the `kb:sidebar` embed protocol (`?embed=1`, `kb:ready` announcement,
622
- loopback-only origins), so its project sidebar folds via the ▤ control exactly
623
- like the terminal and vector-hub embeds. Standalone console opens are
624
- unaffected.
625
-
626
- ## [4.3.1] - 2026-09-20
627
-
628
- - The 4.3.0 npm package could never start the vector-hub module: the global
629
- `dist/` gitignore rule kept the vendored runtime
630
- (`_modules/vectorhub/dist/`, 25 files) out of git, so the CI-packed tarball
631
- shipped without `bin.js` and every fresh install logged "Vendored vector-hub
632
- runtime not present". The runtime is committed now, and `release:verify`
633
- gained a vendored-modules gate that fails when a required runtime file is
634
- missing from disk or not tracked by git — the check that was previously
635
- wired into nothing.
636
- - The Control Center's embedded Agent Terminal linked to no project on first
637
- load. The shell sends `kb:select-project` 150ms after `kb:ready`, but the
638
- terminal loads its project list only after health + agent discovery, so the
639
- one-shot selection landed on an empty list: the linkage chip stuck on
640
- "未登记" and the embed had no project selected, making it impossible to open
641
- a terminal from the shell. The terminal now re-announces `kb:ready` once its
642
- projects are loaded, and the shell retries a failed linkage with backoff.
643
- - Module status probing no longer reports a false "未检测到 … 界面将显示为
644
- 空白" forever: cold-starting module services are re-probed with backoff
645
- (up to 10 attempts) before the status is marked down, and the top bar
646
- 终端/检索 indicator updates when a late probe succeeds.
647
-
648
- ## [4.3.0] - 2026-09-20
649
-
650
- - The Agent Terminal and vector-hub module services now ship inside the npm
651
- package and start with the shell. `npm install -g project-knowledge` is
652
- self-contained: the Control Center, the embedded terminal (:5760) and the
653
- vector-hub console (:8787) all come up together on a fresh machine — no
654
- sibling checkouts required. KB_MODULES_AUTOSTART=0 disables spawning;
655
- a service already listening on its URL is never double-spawned, so dev
656
- machines running standalone module instances are unaffected. vector-hub
657
- needs Node >= 22 — on older runtimes the shell skips spawning it and logs
658
- a warning. Also fixed a latent spawn bug: quoted paths in module commands
659
- reached node with the quotes embedded, which crash-looped the (previously
660
- default-off) autostart path.
661
-
662
- ## [4.2.20] - 2026-09-20
663
-
664
- - Startup no longer relocates legacy v4.1.x package-root runtime data. This is
665
- a fresh knowledge-base system by decision: old data under the npm package
666
- dir is ignored, not migrated. Previously a conflict between stale
667
- package-root files and the user data dir aborted startup with "Legacy
668
- runtime relocation failed", bricking machines whose install carried
669
- v4.1.x-era files.
670
-
671
- ## [4.2.19] - 2026-09-20
672
-
673
- - Background launch is diagnosable and no longer lies about the URL. The
674
- detached child's stdout/stderr now append to `<data-dir>/launcher.log`, so
675
- port fallbacks ("Port 5757 was busy, using 5758 instead") and startup
676
- failures are visible after the fact instead of being silently discarded
677
- (`stdio: 'ignore'`). The parent no longer prints a guessed URL or races a
678
- browser open 1.2s after spawn — the child opens the browser itself once it
679
- is actually listening, with the real port. The free-port probe timeout went
680
- 1s → 3s to survive slow listen() under antivirus/cold-cache load (a false
681
- "busy" previously cascaded into "No free port found").
682
-
683
- ## [4.2.18] - 2026-09-20
684
-
685
- - Module-embed shell (T0-T4 of docs/ui-integration-repair-plan.md): the Control
686
- Center UI now embeds the Agent Terminal (:5760) and vector-hub console
687
- (:8787) as original UIs behind a same-origin proxy (`/api/terminal/*`,
688
- `/api/vectorhub/*`). Project import registers both modules (wiring table in
689
- project state); the sidebar aggregates module registrations with per-project
690
- session history (kb:list-sessions / kb:open-session) — session lifecycle
691
- (archive/restore) belongs to the terminal module only, the shell keeps a
692
- read-only projection; per-module sidebar fold toggles on the nav buttons
693
- (kb:sidebar); project selection drives both modules (kb:select-project)
694
- with live linkage chips.
695
- Settings drawer is now 开发对话/日志 only (model settings live in the
696
- terminal UI). Module removal keeps local knowledge and terminal session
697
- records (upstream `removeProject?keepSessions=1`). Optional module service
698
- supervision behind `KB_MODULES_AUTOSTART=1`. Old workbench chat panel and
699
- its UI tests retired; full suite 115/115 green.
700
-
701
- ## [4.2.17] - 2026-08-25
702
-
703
- - Recognized a healthy Project Knowledge fan-out nested inside Codex Desktop's
704
- computer-use `--previous-notify` wrapper. Integration status and one-click
705
- repair no longer report a false third-party conflict or attempt to wrap the
706
- notifier again.
707
-
708
- ## [4.2.16] - 2026-08-25
709
-
710
- - Upgraded AI Coding Event Bridge to 0.1.2 so one Codex task can be captured
711
- across every continuation rollout. Existing single-file cursors migrate in
712
- place without replaying consumed history, and real nested turn identities
713
- keep commentary and final responses attached to the correct user prompt.
714
- - Added a joint Codex / Claude Code / OpenCode restart-and-recovery gate that
715
- verifies durable capture, control-message exclusion, exact workspace
716
- attribution, turn grouping, and duplicate-notification idempotency.
717
- - Kept Windows CDP failure tests fast and reliable by restricting detached
718
- profile cleanup to actual Chrome/Edge launchers.
719
-
720
- ## [4.2.15] - 2026-08-25
721
-
722
- - Repaired Codex Development Conversation turns without rewriting durable
723
- history: generated control/context records are excluded, orphan assistant
724
- responses are projected onto the correct user turn within the same session,
725
- and stale open-turn facts no longer duplicate commit associations.
726
- - Removed synthetic empty-user and pending-assistant UI messages, with focused
727
- projection, binding, API, and real-history regression coverage.
728
-
729
- ## [4.2.14] - 2026-08-25
730
-
731
- - Recovered commit analysis safely after a server restart by making leftover
732
- claims terminal without running startup analysis or replaying historical or
733
- offline commits; the next explicit Git Hook event processes only its own SHA.
734
- - Restored v4.1.21 Claude Workbench history through the migrated project's
735
- legacy slug while preserving the original session files and preferring the
736
- canonical runtime record on duplicate session IDs.
737
- - Restored historical session selection and live Commit automation visibility
738
- in the Claude Code UI, including prompts, thinking, tools, permissions,
739
- retries, results, stop controls, and real browser regression coverage.
740
-
741
- ## [4.2.13] - 2026-08-25
742
-
743
- - Restored the globally installed web UI by including `ui/i18n.js` in the
744
- npm package; a missing or incomplete localization runtime can no longer
745
- abort project, AI profile, Knowledge Root, and conversation loading.
746
- - Added package-asset closure validation plus a real
747
- `npm pack -> npm install -> server -> Chrome` release smoke test, so CI
748
- rejects tarballs whose UI differs from the tested source tree.
749
-
750
- ## [4.2.9] - 2026-08-24
751
-
752
- - Made persisted UI-language selection fully reliable across page reloads and
753
- slower browser runners: translated labels now re-render, and the document
754
- language is initialized from the saved preference.
755
-
756
- ## [4.2.8] - 2026-08-24
757
-
758
- - Fixed release metadata drift by deriving plugin manifests, marketplace
759
- metadata, MCP package pins, and both lockfiles from the root package
760
- version during the standard npm version lifecycle.
761
- - Added release and tag-version guards to CI and the npm publishing workflow,
762
- so a mismatched release is rejected before packaging or publishing.
763
- - Stabilized Windows browser E2E tests by handling Chrome launcher detachment
764
- and cleaning every test-specific Chrome process by its isolated profile.
765
-
766
- ## [4.2.7] - 2026-08-24
767
-
768
- - Made runtime data migration fail closed: existing legacy data is now
769
- discovered and relocated safely, migration failures prevent startup,
770
- and settings-only legacy data is preserved instead of being treated as
771
- a fresh install.
772
- - Restricted Knowledge Analysis to explicit post-commit hook events.
773
- Startup, bridge synchronization, historical catch-up, and offline
774
- commits no longer trigger implicit analysis.
775
- - Preserved conversation and commit-boundary facts across offline periods
776
- without allowing those facts to contaminate a later online commit.
777
-
778
- ## [4.2.6] - 2026-08-20
779
-
780
- - Hotfix for the v4.2.5 commit-reconciler regression: the post-batch
781
- re-scan was unconditionally writing `analysis.status='idle'` even
782
- after a successful batch of commits, clobbering the
783
- `'state.advanced'` value that `advanceState()` had just set. The CI
784
- suite surfaced this on a fast runner where the test's state read
785
- raced ahead of the trailing re-scan; on slower machines the bug
786
- passed silently. runSweep() now only marks `'idle'` when this call
787
- never processed any commits, leaving a freshly-promoted batch's
788
- `state.advanced` visible to the UI.
789
- - Bumped `plugins/project-knowledge/.mcp.json` from
790
- `project-knowledge@4.2.4` to `project-knowledge@4.2.6` so the
791
- integration-adapters MCP-pin assertion matches the package version.
792
- (The v4.2.5 release had bumped everything except this MCP pin.)
793
-
794
- 105 root + 2 desktop tests pass.
795
-
796
- ## [4.2.5] - 2026-08-20
797
-
798
- - Restored the v4.1.22 → v4.2.x product contract that the recent
799
- refactor had broken. The shared ` `resolveEffectiveAiProfile` resolver
800
- is the single source of truth for "which AI profile does this project
801
- use right now" (project → default → first-usable → AI_PROFILE_REQUIRED),
802
- and the Workbench / analyzer / CommitReconciler paths no longer
803
- carry their own drift-prone fallback logic.
804
- - Hook runtime: post-commit hooks now prefix `ELECTRON_RUN_AS_NODE=1`
805
- in the shell body so a packaged Desktop install no longer tries to
806
- launch the Electron GUI from a Git hook invocation. Node ignores the
807
- env var so CLI installs are unaffected.
808
- - Hook migration state machine: a missing legacy hook is no longer
809
- silently marked migrationVersion=2. The new state machine only
810
- advances migrationVersion when install + readback verify succeed,
811
- persists third-party conflicts in state.hook.lastConflict for UI
812
- consumption, and reports status=verified|conflict|pending|failed per
813
- project.
814
- - Hook health API: GET /api/projects/:id/hook-status and POST
815
- /api/projects/:id/hook-repair expose every required field
816
- (installed / managed / managedVersion / runtimeTarget / lastVerifiedAt
817
- / conflict / reason / repairAvailable) and refuse to overwrite
818
- third-party hooks.
819
- - Import UX: a new preflight endpoint and UI flow (Desktop folder
820
- picker, knowledge language selector, AI profile selector, optional
821
- Team Knowledge binding, per-problem action hints, auto preflight on
822
- every input change, Import button stays disabled until ready=true)
823
- replace the path-only dialog.
824
- - Knowledge language control: import + per-project PATCH both accept
825
- knowledgeLanguage; changing it affects only future generated
826
- knowledge, never historical files.
827
- - Project Goal editor: GET/PUT /api/projects/:id/goal atomically reads
828
- and writes the project's GOAL.md, scoped to its own knowledgePath.
829
- - UI language toggle (zh-CN / en-US) persists in localStorage and
830
- re-renders the most-visible labels without a reload.
831
- - P0 E2E gate proves the four primary contract scenarios (fresh /
832
- legacy / offline / no-conversation) against the live server.
833
- 105 root + 2 desktop tests pass; the G00–G08 acceptance gates are
834
- green.
835
-
836
- ## [4.2.4] - 2026-08-20
837
-
838
- - Fixed the Bridge consumer never receiving connector wake-ups on a fresh
839
- install: `BridgeConsumerService.start(notifyUrl)` ignored its argument, so
840
- the `project-knowledge` consumer registered with empty metadata. Captured
841
- conversations piled up in the journal until the next server restart instead
842
- of appearing in Development Conversation immediately. The wake-up URL now
843
- lands in the consumer registration and drains fire per event.
844
- - Projects imported before v4.2.3 (no canonical `repo-identity/v1`) are
845
- upgraded automatically: on the first consumer drain after updating, each
846
- legacy project with an existing repository path gets its workspace identity
847
- resolved and persisted, its conversation baseline established, and its
848
- external conversations start projecting — no manual migration step. A
849
- workspace already claimed by another project is never written twice.
850
- - The Bridge dependency now resolves to `@sanqianx/ai-coding-event-bridge`
851
- 0.1.1, which accepts Claude Code's real `hook_event_name` payload field
852
- (previously such payloads were misrouted to the Codex connector and lost as
853
- capture gaps).
854
-
855
- ## [4.2.3] - 2026-08-20
856
-
857
- - Development Conversation now captures real external Claude Code / Codex /
858
- OpenCode sessions through `ai-coding-event-bridge` (repo-identity/v1 with
859
- workspaceId as the primary key, durable Bridge-owned turn identity, and
860
- exact-workspace project matching — unimported workspaces are skipped and
861
- ACKed, never written into another project).
862
- - The internal Workbench capture path was removed: sending a Workbench chat
863
- message no longer records requirements or conversation events (explicit
864
- `record_requirement` still works), every internal SDK session runs with
865
- `AI_CODING_EVENT_BRIDGE_CAPTURE=0`, and legacy embedded Workbench pairs are
866
- excluded from presentation and new commit binding via
867
- `conversation-exclusions/v1` without rewriting history.
868
- - Commit conversation snapshots are frozen strictly after
869
- append-boundary -> drainThrough: no event beyond `boundaryEndCursor`
870
- (assistant replies included) can enter a snapshot, and imports establish a
871
- conversation baseline so pre-import history is never backfilled.
872
- - One Integration Setup action installs Knowledge Integration and Development
873
- Capture for Claude Code / Codex / OpenCode with separate status reporting,
874
- third-party config preservation, Codex notify conflict detection, and a
875
- host-level Bridge consumer that survives per-connector uninstalls; new
876
- `/api/bridge/*` and `/api/integrations/*` endpoints expose capture health.
877
- - Windows CI browser tests now fail fast: CDP launch failures clean up the
878
- spawned browser tree and profile directory, report exit/stderr diagnostics,
879
- use a dynamically discovered DevTools port with per-request timeouts, and
880
- the test runner reports `TIMEOUT` explicitly under a configurable budget
881
- (`PK_TEST_TIMEOUT_MS`, default 90s) instead of hanging for 300 seconds.
882
-
883
- ## [4.2.2] - 2026-08-19
884
-
885
- - Rebuilt the web Control Center visual layer to faithfully match the v13
886
- reference design (`project-knowledge-base-faithful-repair-ui-v10.html`):
887
- sidebar brand block with the knowledge root path, multi-line project cards
888
- (name, id, repository path, status dot) with right-click removal, the
889
- in-main-area header, full-height Workbench panel with chat bubbles, tool
890
- cards, circular send button and composer toolbar, the reference design
891
- tokens including the complete dark theme, and responsive breakpoints.
892
- - Restored the reference Settings drawer structure with separate AI model
893
- editing (add/save profiles via the API), project model assignment,
894
- knowledge relations, mature development-conversation turn cards with
895
- commit labels, and the V7 run-records list geometry.
896
- - Import view now shows the reference split layout with a post-import
897
- placement preview; UI contract tests were updated to the reference DOM.
898
-
899
- ## [4.2.1] - 2026-08-19
900
-
901
- - Fixed the legacy layout migration failing with `Legacy migration source
902
- JSON is corrupt` (and the server refusing to start) when any legacy source
903
- file carries a UTF-8 BOM, which PowerShell and several editors commonly
904
- write. BOM-prefixed sources are now parsed normally.
905
-
906
- ## [4.2.0] - 2026-08-19
907
-
908
- - Completed the v13 refactor: conversation capture contracts, atomic Bridge
909
- commit boundaries with capture-gap persistence, and frozen
910
- `CommitConversationSnapshot` binding so post-commit prompts never bind to
911
- old commits and claims freeze their analyzer evidence.
912
- - Replaced `patch:null` handling for large diffs with an exact, hash-verified
913
- patch chunk evidence bundle; commit analysis now carries frozen evidence,
914
- retrieval, and conversation manifests end to end.
915
- - Unified user search and commit context selection into one
916
- `KnowledgeRetrievalService` (hybrid recall, deterministic rerank, chunk
917
- budgets) with an index source manifest and a Markdown delta overlay so
918
- fresh knowledge is visible while the derived index is dirty.
919
- - Logging is now permanent per-day JSONL under `logs/system` and
920
- `logs/projects/<id>` with reverse-chunk cursors, SSE streaming without
921
- gaps, and immutable capture policy (no retention/capacity settings).
922
- - Background work registers per operation with one root `operationId`
923
- propagated across HTTP, Hook, startup, and reconciler logs, and shutdown
924
- drains every registered task.
925
- - Project delete is transactional with a journal, tombstone, and per-stage
926
- recovery; migration no longer converts legacy logging knobs into settings.
927
- - Restored the full Control Center web shell (Workbench, Import, Settings)
928
- with a mature run-records log view and a read-only development-conversation
929
- page driven by frozen commit snapshots; logs left the standalone console.
930
- - Added non-release CI (Linux Node 18/24, Windows Node 24) for every push;
931
- desktop packaging validation is paused for this web-only cycle.
932
-
933
- ## [4.1.23] - 2026-08-17
934
-
935
- - Replaced legacy whole-registry project state with schema-v2 settings, a
936
- minimal project registry, stable per-project config/state, and locked
937
- requirement JSONL records under one canonical `StorageLayout`.
938
- - Reduced knowledge analysis to the managed post-commit Hook and startup
939
- recovery, both routed through one per-project reconciler and one Commit
940
- prompt. Import now establishes a baseline without AI or placeholder files.
941
- - Added manifest-validated AI staging, journaled Markdown promotion, crash
942
- recovery, dirty-index semantics, and a single serialized `IndexService` for
943
- incremental writes and atomic full rebuilds.
944
- - Rebuilt logging around six-level `log/v2` JSONL records, recursive secret
945
- redaction, daily/size rotation, retention/capacity cleanup, cursor queries,
946
- exports, health state, and orphaned-operation detection.
947
- - Replaced the duplicate dashboard implementations with one responsive
948
- light/dark logging console, including operation flows, structured error
949
- details, pause/refresh, filtering, cursor pagination, and export.
950
- - Unified server, CLI, MCP, Hook, index, and project path resolution. Read-only
951
- knowledge search falls back to scoped Markdown when the derived index is
952
- dirty or unavailable.
953
- - Added staged `layout-v2` migration with centralized recovery backups,
954
- source/hash validation, last-step completion, fault recovery, and preservation
955
- of legacy paths, secrets, Commit pointers, indexes, and logs.
956
- - Hardened the API by removing wildcard CORS, raw-file access, generic project
957
- replacement, manual Hook/analysis routes, and stack responses; non-loopback
958
- binding now requires authentication and Origin validation.
959
- - Removed CLAUDE.md management, the second automation queue, configurable log
960
- and index locations, legacy direct database writers, and unused Vue/Tailwind
961
- browser runtimes.
962
- - Added Windows end-to-end coverage for online Hook processing, offline Commit
963
- catch-up, requirement binding, promotion/index completion, structured log
964
- chains, paths with spaces/non-ASCII text, and immediate recovery of locks
965
- owned by a crashed process.
966
- - Hardened release packaging by explicitly mirroring core runtime dependencies
967
- into the Electron app and allowlisting shipped documentation, preventing
968
- local review artifacts from leaking into npm or desktop packages.
969
-
970
- ## [4.1.22] - 2026-07-27
971
-
972
- - Added a read-only `project-knowledge-mcp` server for OpenCode, Codex, and
973
- other MCP-compatible coding agents. It resolves the current Git project,
974
- exposes scoped search/ask/get/history tools, and includes the search-first
975
- workflow without depending on `CLAUDE.md`.
976
- - Added a safe keyword-search fallback for legacy Markdown knowledge bases and
977
- kept routine knowledge writes exclusively in post-commit automation.
978
- - Added a shared Claude Code/Codex plugin with MCP configuration and a
979
- search-first `project-knowledge` Skill, plus a native Claude marketplace and
980
- Codex marketplace manifest.
981
- - Added an OpenCode adapter and a universal, idempotent integration manager for
982
- installation, updates, removal, dry-runs, and status checks across Claude
983
- Code, OpenCode, and Codex.
984
-
985
- ## [4.1.21] - 2026-07-27
986
-
987
- - Fixed Windows desktop Claude sessions failing with “executable exists but
988
- failed to launch” when a global Claude Code installation exposes `cli.js`
989
- but `node` is unavailable in the desktop process PATH. JavaScript Claude
990
- entry points now use the application's own Node/Electron runtime.
991
- - Added slow-backend and packaged-client regressions covering desktop startup
992
- readiness and Claude script launch through the installed Windows executable.
993
-
994
- ## [4.1.20] - 2026-07-27
995
-
996
- - Rebuilt the daily workspace around Claude Code while keeping GitHub/Gitea
997
- sign-in, project import, AI setup, project knowledge relations, knowledge
998
- storage, embedding model setup, logs, and desktop updates available from one
999
- settings drawer.
1000
- - Moved project removal to a right-click project-list action with confirmation.
1001
- Projects with a running Claude session or queued automation task now cannot
1002
- be removed.
1003
-
1004
- ## [4.1.19] - 2026-07-24
1005
-
1006
- - Stabilized release tests: expected EventSource cancellation during a page
1007
- reload is no longer treated as a failed request, and the Windows CLAUDE.md
1008
- refresh test no longer removes a just-used temporary server directory.
1009
-
1010
- ## [4.1.18] - 2026-07-23
1011
-
1012
- - Simplified the daily workspace into a full-width Claude Code interface.
1013
- - Removed the project-supervision summary, pending-commit and issue panels,
1014
- dashboard status/goal cards, and manual automation preview/simulation UI.
1015
-
1016
- ## [4.1.17] - 2026-07-23
1017
-
1018
- - Rebuilt commit-triggered knowledge automation around persistent per-commit
1019
- state, ordered recovery, and exactly one AI task per Git commit.
1020
- - Removed manual draft review, auto-apply controls, and scheduled-task paths;
1021
- generated knowledge is now written directly through the automated pipeline.
1022
-
1023
- ## [4.1.16] - 2026-07-22
1024
-
1025
- - Fixed the desktop client timing out / hanging on the loading screen for large
1026
- knowledge bases (many projects, multi-GB DB) while the web dashboard opened
1027
- fine. Root cause was several compounding issues:
1028
- - Desktop startup probe was too impatient: raised the per-request `/api/state`
1029
- timeout (1.5 s → 30 s) and the overall backend-ready budgets (owned backend
1030
- 45 s → 180 s, existing backend 20 s → 60 s) so it waits like a browser does.
1031
- - Server startup no longer blocks the event loop: the CLAUDE.md audit and
1032
- orphaned-run cleanup now run in `setImmediate`, so `/api/state` can answer
1033
- immediately after `listen()`.
1034
- - `getScheduleInfo()` (which spawns `schtasks`) is now cached for 5 s so
1035
- repeated `/api/state` hits don't each pay process-spawn latency.
1036
- - `isProcessAlive` now treats `EPERM` as alive, so a running backend's
1037
- runtime-endpoint file is no longer deleted (and a duplicate cold-started)
1038
- when the desktop and CLI run at different privilege levels on Windows.
1039
- - The dashboard now retries the initial connection every 3 s until it first
1040
- succeeds, instead of waiting up to 60 s, so a slow-starting backend no
1041
- longer leaves the page spinning.
1042
- - Stopped the knowledge-storage relocation from logging
1043
- `target ... is not empty` on every startup: relocation is now skipped (with a
1044
- single warning) when the configured storage directory already holds unrelated
1045
- content, and the existing storage location keeps being used.
1046
-
1047
- ## [4.1.15] - 2026-07-21
1048
-
1049
- - Replaced the dashboard's fixed-interval polling with a server-sent-events
1050
- (SSE) push model. The backend now emits a `state/changed` event over a new
1051
- `/api/state-stream` channel whenever project state is written or a job
1052
- starts/finishes, and the frontend refreshes only in response (300 ms
1053
- debounced). A slow 60 s poll remains as a fallback. Result: changes such as
1054
- the sidebar pending count and summary cards update within ~1-2 s of the
1055
- per-commit analysis cycle, while an idle dashboard makes almost no requests
1056
- instead of hitting the server every 5 s.
1057
-
1058
- ## [4.1.14] - 2026-07-21
1059
-
1060
- - Fixed `runCommitAnalysis` to mutate the projects map entry directly
1061
- (`projects[slug].lastAnalyzedCommit`) instead of a copy. The v4.1.11
1062
- one-by-one refactor accepted `project = { slug, ...projects[slug],
1063
- kbPath }`, so `project.lastAnalyzedCommit = ...` mutated a throwaway
1064
- copy and the `writeProjects` callback persisted the unchanged value.
1065
- Symptom: the "待分析" count never decreases after analysis; the
1066
- pending count appears stuck or oscillates between runs because the
1067
- scan counter and the manual analysis counter diverge.
1068
-
1069
- ## [4.1.13] - 2026-07-21
1070
-
1071
- - Bumped the GitHub OAuth HTTP timeout from 20s to 30s in
1072
- `requestJson` and `requestFormJson` (github-team-store.js) and made
1073
- the timeout error message actionable: it now names the host that
1074
- failed and suggests using a Personal Access Token as a workaround
1075
- when GitHub is unreachable from the host network.
1076
-
1077
- ## [4.1.12] - 2026-07-21
1078
-
1079
- - Hid the "Runs / Drafts" sidebar nav entry. All registered projects
1080
- use `knowledgeMode: autoApply` so manual review is not part of the
1081
- workflow; the runs view itself is preserved for programmatic access
1082
- (uncomment the one line in `navItems` to restore the button).
1083
-
1084
- ## [4.1.11] - 2026-07-21
1085
-
1086
- - Refactored `runCommitAnalysis` from batch to one-by-one: each pending
1087
- commit now gets its own run record and its own draft, analyzed in
1088
- chronological order (FIFO). After every successful single-commit
1089
- run, `project.lastAnalyzedCommit` advances to that commit's hash so
1090
- the "待分析" count drops by one per analysis, matching the UI label.
1091
- Previously a 10-commit batch produced 1 run + 10 drafts and the
1092
- pending count did not decrease until the user clicked Apply (which
1093
- could also advance the checkpoint past commits the user had not
1094
- actually applied drafts for).
1095
-
1096
- ## [4.1.10] - 2026-07-21
1097
-
1098
- - Made startup-recovery's staging copy (`prepareKnowledgeWorkspace`) and
1099
- Claude-executable lookup (`findClaudeExecutableForSdk`) asynchronous
1100
- so the server's HTTP handlers (notably `/api/state`) stay responsive
1101
- while pending-commit workers are being dispatched. Previously the
1102
- desktop client would time out with `backend request timed out` when
1103
- several projects had pending commits on startup, because the sync
1104
- `fs.cpSync` and `spawnSync` calls were freezing the event loop for
1105
- several seconds during `/api/state` polling.
1106
-
1107
- ## [4.1.9] - 2026-07-21
1108
-
1109
- - Refused to import or upsert a project whose `kbPath` resolves to the
1110
- same directory as `gitPath` / `localPath`. Writing the knowledge base
1111
- inside the source tree pollutes the repo (and trips Windows symlink
1112
- errors in the staging workspace), so both entry points now return 400.
1113
-
1114
- ## [4.1.8] - 2026-07-21
1115
-
1116
- - Stopped the post-commit automation worker from being auto-paused when a
1117
- user aborts the Claude session in the terminal. Pending commits queued
1118
- before the abort are now picked up again on the next desktop launch.
1119
-
1120
- ## [4.1.7] - 2026-07-19
1121
-
1122
- - Restored GitHub and Gitea login in the Windows desktop client through an
1123
- acknowledged Electron bridge that opens OAuth pages in the system browser.
1124
- Browser launch failures are now reported immediately instead of appearing
1125
- later as an authorization timeout.
1126
- - Added support for HTTP authorization URLs used by private, intranet Gitea
1127
- installations while continuing to reject local-file and script URLs at the
1128
- desktop security boundary.
1129
- - Forwarded Electron's Windows system-proxy resolution to the backend and made
1130
- GitHub OAuth plus remote repository discovery proxy-aware, while preserving
1131
- loopback and `NO_PROXY` bypasses for private Gitea installations.
1132
- - Verified the full team-knowledge path after desktop migration: GitHub device
1133
- authorization, Gitea callback/token persistence, remote repository scanning,
1134
- manifest discovery, cached store loading, and team knowledge-base binding.
1135
- - Added desktop bridge/security regressions and an end-to-end Gitea OAuth plus
1136
- remote team-store discovery test.
1137
-
1138
- ## [4.1.6] - 2026-07-19
1139
-
1140
- - Replaced overlapping post-commit batches with a single per-project worker
1141
- that treats Git history as the durable queue. Live hooks and desktop startup
1142
- recovery now use the same path and process exactly one commit at a time,
1143
- strictly from oldest to newest.
1144
- - Preserved the original knowledge contract: every analyzed commit must create
1145
- an independent `changes/` Markdown record containing its full hash, including
1146
- test-only, documentation, and infrastructure commits.
1147
- - Added transactional knowledge workspaces. Claude edits a temporary KB copy;
1148
- validated Markdown is applied to the live KB only after the session succeeds,
1149
- and LanceDB must finish before `lastAnalyzedCommit` advances.
1150
- - Added resumable vector finalization and automatic startup recovery. Index
1151
- failures retry without rerunning Claude or duplicating Markdown, while an
1152
- interrupted desktop session resumes from the oldest unfinished commit.
1153
- - Made Stop pause the project's automatic commit worker, discard uncommitted
1154
- staged knowledge, and prevent queued work from immediately restarting. The
1155
- Claude Code UI now provides a dedicated Resume automatic analysis action.
1156
- - Added end-to-end regressions for duplicate Hook delivery, strict commit order,
1157
- per-commit changes records, staged Markdown, abort behavior, and vector-index
1158
- recovery. The complete core suite now contains 53 passing test files.
1159
-
1160
- ## [4.1.5] - 2026-07-19
1161
-
1162
- - Added a desktop-client card in Settings that always shows the installed
1163
- application version and provides Check for updates / Restart and install
1164
- actions without opening a browser.
1165
- - Integrated Electron's Squirrel updater with a stable GitHub Latest Release
1166
- feed. Release automation now uploads `RELEASES` and the full `.nupkg` beside
1167
- the installer so future desktop versions download and install in-app.
1168
- - Hardened the PowerShell folder-picker fallback: scripts are unpacked from the
1169
- desktop ASAR, stdout uses UTF-8, and only an existing absolute directory can
1170
- be returned. PowerShell banners and error text can never populate a path
1171
- field.
1172
- - Added updater lifecycle and folder-output regressions, bringing the complete
1173
- core suite to 52 passing test files while retaining the native Electron
1174
- folder dialog introduced in 4.1.4.
1175
-
1176
- ## [4.1.4] - 2026-07-19
1177
-
1178
- - Fixed Windows Claude Code discovery so extensionless npm shell shims and
1179
- command wrappers are never passed to the Agent SDK. The resolver now prefers
1180
- the installed package's native `bin/claude.exe` and retains `cli.js` only as
1181
- a legacy fallback.
1182
- - Changed the post-commit Hook endpoint to acknowledge valid events with HTTP
1183
- 202 before commit inspection and Claude startup. Dispatch continues in the
1184
- background, while the Hook accepts every successful 2xx response instead of
1185
- recording a false timeout/error after a run was already created.
1186
- - Restored both desktop directory-selection flows with a narrow Electron IPC
1187
- bridge and native directory dialog. Project import and Team Knowledge folder
1188
- selection no longer execute a PowerShell script from inside the packaged
1189
- ASAR or mistake PowerShell banner text for a selected path.
1190
-
1191
- ## [4.1.3] - 2026-07-19
1192
-
1193
- - Removed the bundled 218 MiB Claude Code executable from the Windows desktop
1194
- application. The small Agent SDK control layer now discovers the user's
1195
- installed Claude Code through `CLAUDE_CODE_EXECPATH`, `PATH`, or the npm
1196
- global installation and reports a clear error without disabling knowledge
1197
- management when Claude Code is unavailable.
1198
- - Removed LanceDB's unused optional embedding-provider stack and its duplicate
1199
- Transformers.js 3.0.2 / ONNX Runtime 1.19.2 dependency tree while retaining
1200
- the application's supported Transformers.js 3.8.1 embedding service.
1201
- - Pruned non-Windows and non-x64 ONNX binaries, browser-only ONNX Web runtimes,
1202
- Transformers browser builds, source maps, and unused platform packages from
1203
- the Windows x64 bundle.
1204
- - Added packaged runtime probes for LanceDB, Transformers.js, ONNX Runtime, and
1205
- the real 512-dimensional `bge-small-zh-v1.5` embedding model, plus release
1206
- size auditing that rejects bundled Claude binaries, duplicate runtimes, and
1207
- oversized artifacts.
1208
- - Reduced the measured Windows installer from 476.0 MiB to 221.1 MiB and the
1209
- installed application bundle from 1,491.1 MiB to 617.5 MiB without changing
1210
- existing model caches, Markdown sources, LanceDB data, or storage paths.
1211
-
1212
- ## [4.1.2] - 2026-07-16
1213
-
1214
- - Made the desktop dependency lock reproducible under the newer npm version on
1215
- GitHub's Windows runner by explicitly locking the encoding compatibility
1216
- dependency used by the packaging tree.
1217
- - Made the desktop release workflow fail immediately when a native npm command
1218
- fails instead of allowing PowerShell to continue into a misleading later
1219
- step.
1220
-
1221
- ## [4.1.1] - 2026-07-16
1222
-
1223
- - Fixed Windows GitHub Actions browser discovery for the `windows-2025`
1224
- runner by detecting system-level Chrome and Microsoft Edge installations.
1225
- - Restored the release gate for all three real-browser UI suites so the
1226
- Windows desktop installer can be built, smoke-tested, and uploaded only
1227
- after the complete 50-file core regression suite passes.
1228
-
1229
- ## [4.1.0] - 2026-07-16
1230
-
1231
- - Added a Windows x64 Electron desktop application and Squirrel installer that
1232
- reuse the existing configuration, configured knowledge root, model cache,
1233
- Markdown sources, Team Knowledge Mode, and LanceDB without copying or
1234
- re-vectorizing user data.
1235
- - Added single-instance and system-tray lifecycle behavior: closing the window
1236
- keeps Git hooks available, while an explicit tray Quit stops only a backend
1237
- owned by the desktop application.
1238
- - Added an atomic, local-only runtime endpoint record so CLI, desktop, and
1239
- existing Git hooks discover the active fallback port dynamically and never
1240
- open competing LanceDB writers.
1241
- - Made the desktop application safely attach to an already-running npm CLI and
1242
- leave that external backend alive when the desktop window exits.
1243
- - Added hardened Electron navigation, context isolation, sandboxing, denied
1244
- permission requests, bounded desktop backend logs, Squirrel lifecycle event
1245
- handling, and explicit native-module ASAR unpacking.
1246
- - Added Windows release automation that runs all 50 core regression files,
1247
- desktop unit tests, a packaged EXE/API smoke test, and packaged LanceDB native
1248
- read/write tests before uploading the installer and SHA-256 to GitHub
1249
- Releases. The existing npm provenance publish workflow remains unchanged.
1250
-
1251
- ## [4.0.4] - 2026-07-16
1252
-
1253
- - Added a Settings-based Markdown knowledge health audit for every registered
1254
- personal and team knowledge base, with per-project file size, deterministic
1255
- fixes, structural errors, and semantic-review findings.
1256
- - Added safe batch or per-project optimization with retained backups under the
1257
- configured knowledge root, atomic writes, formatting repair, compact index
1258
- regeneration, and automatic LanceDB refresh for migrated projects.
1259
- - Reduced generated change indexes to the latest 40 entries with bounded cells
1260
- and generated-file markers; a real 125 KiB legacy index now rebuilds to about
1261
- 9 KiB without deleting its source change documents.
1262
- - Prevented background AI automation from writing `00-index.md`, injected
1263
- mandatory in-place-update hygiene rules even for custom prompts, and rebuilt
1264
- compatibility indexes after every successful automatic update.
1265
- - Preserved Team Knowledge Mode by de-duplicating shared physical KB paths
1266
- during maintenance while refreshing every aliased vector space.
1267
- - Expanded the complete regression suite to 48 passing test files.
1268
-
1269
- ## [4.0.3] - 2026-07-15
1270
-
1271
- - Added an embedding-model setup panel with one-click download and real
1272
- inference verification, configurable Hugging Face endpoint/mirror, local
1273
- model directory, offline mode, and copyable PowerShell environment-variable
1274
- examples.
1275
- - Stop a migration batch before changing any project when the shared embedding
1276
- model cannot load, instead of reporting the same model failure once for every
1277
- project.
1278
- - Surface migration failures through a prominent settings panel, a one-time
1279
- browser alert, detailed per-project errors, and direct retry actions.
1280
- - Persist model settings and verified download state while rejecting partial
1281
- cache files or verification results from a different model configuration.
1282
- - Expanded the complete regression suite to 46 passing test files.
1283
-
1284
- ## [4.0.2] - 2026-07-15
1285
-
1286
- - Store LanceDB, its maintenance metadata, and retained database backups under
1287
- `<configured knowledge root>/.project-knowledge/` instead of a fixed app-data
1288
- location.
1289
- - Automatically relocate v4.0.0/v4.0.1 databases on startup to the knowledge
1290
- root already selected in Settings.
1291
- - Safely relocate and verify the database before saving a changed knowledge
1292
- root, including cross-volume copies, target-conflict protection, and retained
1293
- backup path rebasing.
1294
- - Display the effective vector database path directly below the Knowledge Store
1295
- root setting.
1296
- - Expanded the complete regression suite to 45 passing test files, including
1297
- real LanceDB startup and live root-change relocation tests.
1298
-
1299
- ## [4.0.1] - 2026-07-15
1300
-
1301
- - Excluded generated `00-index.md` files from embedding and removed stale
1302
- derived-index rows while retaining the Markdown files for legacy and Team
1303
- Knowledge Mode compatibility.
1304
- - Replaced unbounded Tags and change lists in generated Markdown indexes with
1305
- compact, capped navigation metadata; all module links remain available.
1306
- - Stopped running LanceDB compaction after every commit. Maintenance now runs
1307
- only after bounded mutation thresholds and never rewrites the oversized
1308
- v4.0.0 full-text index in place.
1309
- - Added a compact full-text schema that indexes `chunk_text` once with Chinese
1310
- bigrams instead of storing and indexing a second full document copy.
1311
- - Added one-click, atomic database rebuilding with disk statistics, vector and
1312
- keyword verification, optional retained backup, and manual rollback.
1313
- - Added upgrade and regression coverage for old v4.0.0 databases; the complete
1314
- suite now contains 43 passing test files.
1315
-
1316
- ## [4.0.0] - 2026-07-15
1317
-
1318
- - Added a local LanceDB knowledge store containing original text, metadata,
1319
- and 512-dimensional `Xenova/bge-small-zh-v1.5` embeddings.
1320
- - Added incremental Markdown indexing with heading-aware chunks, content-hash
1321
- skips, stale-chunk deletion, Chinese n-gram/BM25 search, and hybrid RRF.
1322
- - Added scoped `search`, `get`, `ask`, and `history` HTTP/CLI tools that return
1323
- readable source text without exposing raw vectors.
1324
- - Added explicit, bidirectional, non-transitive related-project search scopes;
1325
- writes remain restricted to each project's primary space.
1326
- - Preserved Team Knowledge Mode: Git remains the portable Markdown transport,
1327
- stable team `kbId` values map to local spaces, and vectors stay local.
1328
- - Added resumable one-click migration for all legacy KBs with backups,
1329
- verification probes, per-project atomic cutover, retry, and rollback.
1330
- - Centralized Claude Code instructions in one user-relative file and added a
1331
- safe bulk refresh for all managed `CLAUDE.md` blocks independent of Hooks.
1332
- - Enforced development-time read-only KB access; post-commit automation owns
1333
- routine updates and re-indexes migrated projects after successful runs.
1334
- - Added configurable mirrored/offline embedding model locations through
1335
- `KB_EMBEDDING_REMOTE_HOST` and `KB_EMBEDDING_LOCAL_PATH`.
1336
- - Expanded the regression suite to 41 test files.
1337
-
1338
- ## [2.4.7] - 2026-07-01
1339
-
1340
- - Initial public Apache-2.0 release of the local-first `project-knowledge`
1341
- core.
1342
- - Includes the CLI, local dashboard, Git scanner, project registry,
1343
- knowledge-base workflow, AI profile support, prompt registry, templates,
1344
- and regression tests.
1345
- - Keeps runtime data, local project knowledge bases, API keys, generated AI
1346
- drafts, logs, and local maintenance notes outside the public repository.
1
+ # Changelog
2
+
3
+ ## [5.0.25] - 2026-10-24
4
+
5
+ - 纳入 Workbench 0.13.8:大体积历史切换采用严格单趟扫描与恢复索引旁路,损坏历史如实上报 HISTORY_CORRUPT;会话打开失败区分服务端判定、超时与网络错误并保留选中。
6
+ - 模型管理新增当前 Key 的余额、订阅窗口与刷新时间展示;提供同源只读接口。
7
+ - 商标悬停或键盘聚焦时显示运行中的知识库版本。
8
+ - 合入引擎重试与晚到提交顺序保护、Hook 拒绝的故障隔离、Windows 事件采集路径修复。
9
+ - 补齐桌面依赖、模块来源及发布验证;本次桌面沿用 npm 轻量壳,安装替换以正式制品验收和备份为前提。
10
+
11
+ ## [5.0.24] - 2026-10-20
12
+
13
+ - 纳入 Workbench 0.13.6:Claude Code/GLM 连续对话保留每轮输入与回答的关联,上一轮迟到的结果和完整回答不再重复出现在新问题后面,也不会把新一轮误标为空闲;主、子对话同时修复。
14
+ - 历史重新加载按事件顺序合并,已合并的流式正文替换原片段;主对话与子代理、不同原生会话的正文不会合并到同一历史行。
15
+ - 修复较早任务列表响应覆盖新任务状态、将已完成子代理误判为失效的问题;经过服务端验证的任务历史可恢复显示,读取失败提供只读重试,不重新派发任务。
16
+ - 保留 5.0.23 的明确选择提交及 5.0.22 的后台启动修复。
17
+
18
+ ## [5.0.23] - 2026-10-20
19
+
20
+ - 接入 Workbench 0.13.5:Claude Code(含 GLM 等自定义模型)的用户提问显示单选、多选及自定义答案,明确提交后才继续;绕过普通工具授权时也不能代选或空答案放行。Codex 原生用户提问同步接入选择界面。
21
+ - 主对话与子代理分别收集并回传答案,普通答案草稿刷新可恢复;关闭标签、收起面板和刷新不会提交答案,秘密输入不写入浏览器持久存储。
22
+ - 子代理选择卡片并入对话滚动区域,发送长消息后输入框恢复高度,确保选项、提交和停止按钮可以使用。保留并排工作区、按需知识引用及 5.0.22 的后台启动修复。
23
+
24
+ ## [5.0.22] - 2026-10-20
25
+
26
+ - 将启动时的 Agent 接入检查和自动修复放入独立进程,避免慢客户端命令阻塞后台就绪通知、网页和实例控制;超时会记录可重试状态,停止服务同时清理自有检查进程。
27
+ - 仅检查用户已连接的客户端;未能核实的状态不再当成未安装并触发自动修复。保留并排工作区、已有接入选择及知识数据。
28
+ - 补充真实后台 CLI 在原生命令阻塞时的就绪、HTTP、状态查询和停止回归,以及超时、崩溃、手动修复结果优先级验证。
29
+
30
+ ## [5.0.21] - 2026-10-20
31
+
32
+ - 开始工作采用并排工作区:从加号新建子代理或按需添加知识引用,使用统一的对话、工具步骤、文件修改和输入框;移除面向客户的任务标识、派发阶段及诊断信息。
33
+ - 子代理首次发送时继承当前项目、Agent、模型及主对话的冻结上下文,之后独立交流;原生任务可从主对话打开,并基于结果继续创建子对话。
34
+ - 知识引用仅保留会话内单一标签,检索不自动展开、不抢焦点;修复刷新时内容提前投递的问题,并跟随产品深浅主题。
35
+ - 主子草稿、标签和阅读位置可恢复;关闭标签不停止任务,窄窗口自动使用抽屉。精确锁定 Workbench 0.13.3。
36
+
37
+ - 默认维护模型明确报告额度不足时,保留并展示可重试的失败原因;请求限流、认证失败分别展示。同项目后续提交等待前一条恢复,失败及排队记录跨重启保留。
38
+ - 事件消费在分析任务建单前受阻时,活动页与系统状态展示故障,不再只显示空记录;故障及恢复通过现有实时连接更新,稳定状态不触发额外数据轮询。
39
+
40
+ ## [5.0.19] - 2026-10-16
41
+
42
+ - 工作台展示来自真实 SDK 事件的后台任务、工具活动及完成结果;主回复结束后可继续输入,后台任务继续归属原会话,切换和刷新可恢复。
43
+ - 移除外壳列表定时轮询,复用实时连接推送摘要变化并增量更新侧栏;草稿按服务入口、项目和会话隔离,保护发送失败、迟到创建和附件读取的原始归属。
44
+ - 修复新会话创建时的旧会话误用、追加消息 409、汇总回复重复展示,以及重启读取项目列表失败导致的重复登记与接线缓存问题。
45
+ - 候选内容清单按 npm 实际安装行为规范 CLI shebang 的换行符,避免 Windows 工作树打包后产生错误的内容哈希告警;普通文件与脚本正文继续逐字节校验。
46
+ - 自动长期记忆仅接受具有冻结人类原句与来源证据的跨项目长期规范;代理派单、单次修复和项目版本事实保留为项目知识。旧候选不自动改写。
47
+ - 纳入 Workbench 0.13.2-rc.21 和经过真实向量回归的引擎修复;固定 30 条检索查询全部通过,109 处引用一致,真实修复提交完成分析、晋升、索引并由下一轮 GLM 实际采用。验收范围见 5.0.19 记录。
48
+
49
+ ## [5.0.17] - 2026-10-15
50
+
51
+ - 修复网页首屏被慢模块拖住、开始工作 Agent 探测同步阻塞与返回页面状态不刷新的问题;独立读取、明确失败状态和缓存保留,iframe 不重建。
52
+ - 同源实时连接合并为每标签一条 WebSocket,保留独立模块 SSE,恢复时先读取快照并按游标续接;项目接线失败不再阻塞其他项目。
53
+ - 工作台输出时向上滚轮立即暂停跟随,完整历史独立持久化并向前分页;旧 Claude 历史只读恢复,不再把有限事件缓存冒充全会话。
54
+ - 精确锁定 Workbench 0.13.2-rc.17 与引擎 0.2.7-rc.10;补齐诊断和任务启动的异步发现旁路,保留 ZCode 注册表安装路径,并阻止已中止或被替换的初始化迟到启动任务。最终候选已通过独立下载安装、真实 MiniMax 与向量闭环,正式包先发 next 验收后再晋升 latest,详见 5.0.17 验收记录。
55
+
56
+ ## [5.0.16] - 2026-10-15
57
+
58
+ - 收敛 rc.8 已通过的 30 项核心门禁:修复真实主题证据遗漏、短向量子片段重复占位与小型明确提交上下文不完整,保留当前文件校验、记忆优先级及上下文预算。
59
+ - 精确锁定 Workbench 0.13.2-rc.13、vector-hub 1.0.8-rc.8、event-bridge 0.7.2 和 vendored engine 0.2.7-rc.9;保留原生流式会话、项目双目录和 D 盘索引。
60
+ - Codex 本地市场与 MCP 接线使用真实原生命令验证;四客户端实际接入,Claude/Codex/ZCode 首次开发请求的事实与产品记忆送达均实测通过,OpenCode 保留真实工具检索兼容,不冒称自动注入。
61
+ - 正式包先发布 next 并重新下载安装验收,完成后才更新 latest;候选通过不等于正式包已验收。首次失败、升级保护与完整证据见版本验收记录。
62
+
63
+ ## [5.0.16-rc.8] - 2026-10-15
64
+
65
+ - 纳入引擎 0.2.7-rc.9:经验证的短向量子范围与包含它的 Markdown 段落不再重复占用片段名额;保留较大独立向量范围与原有校验,不扩散向量分数。
66
+ - 用户明确引用已识别提交时,在原有上下文预算内完整送达当前项目的小型条目,先复验文档哈希与归属,避免摘要和交叉引用挤掉真实证据。大条目、普通主题和跨项目参考不展开;确认记忆优先级不变。
67
+ - 保留 rc.7 真实网页失败及源码红测试。rc.7 双 Node 外壳 139 项、安装版八项、真实记忆与并发十项通过,不抵消真实任务正文遗漏;rc.8 必须重新验 npm 安装版,未完成前不更新 latest。
68
+
69
+ ## [5.0.16-rc.7] - 2026-10-15
70
+
71
+ - 纳入引擎 0.2.7-rc.8:修复 commit 标识与主题混合查询只返回概述、漏掉已有正文证据的问题。已识别 SHA 只限定来源,不重复参与主题打分;提交内按主题 BM25 选择片段,普通语义查询保留 RRF,并补中英单写者与引擎词汇。
72
+ - 保持每文档两段、正文/向量区间校验、授权范围与上下文预算;同分排序稳定,不以标题中的 SHA 冒充任务事实已送达。
73
+ - 新增真实原文遗漏的红/绿用例及 topic-context 发布门禁;真实工作台网页测试验证具体事实和实际回答,其他模块版本不变。候选未完成安装版与原生验收前不更新 latest。
74
+
75
+ ## [5.0.16-rc.6] - 2026-10-15
76
+
77
+ - 修复 Codex 0.137 将 scoped npm 目录中的 `@` 误作 Git ref:本地目录含 `@` 时从该目录执行 `marketplace add .`,更换和回退分别使用自己的工作目录,不复制目录、不访问 GitHub。
78
+ - CLI 子操作日志关联原操作 ID,允许继续处理的失败仍记录安全诊断;本地路径误判保留 `CODEX_LOCAL_SOURCE_REF`,不写入原始 CLI 输出。
79
+ - 保留 rc.5 的已验证四模块版本、索引与知识功能。rc.5 本机保真升级已通过:7 项目、43 历史文件、565 索引文件保留;真实记忆闭环与双 Node 浏览器门禁通过,热查询 P95 为 693ms(1000 文档合成语料)。
80
+ - 本机 Codex 已通过原生本地市场操作恢复,MCP 声明入口 initialize/六工具/resolve/search/get 验证通过;Hook 尚待用户审核,不计自动上下文通过。候选不更新 latest。
81
+
82
+ ## [5.0.16-rc.5] - 2026-10-15
83
+
84
+ - 精确锁定 Workbench 0.13.2-rc.13:模型目录加载失败不再伪装成空目录;保留上次有效结果,提供明确错误与重试,打开菜单可恢复请求,关闭菜单后的迟到响应不会重开菜单。保存或删除供应商后不复用保存前的旧快照,普通菜单打开仍共享请求。
85
+ - 保留 rc.4 的引擎与向量检索修复;模型菜单错误不显示原始异常或凭据。补充连续保存的竞态回归及测试服务器模块隔离,安装版故障恢复仍须单独验收。
86
+ - Leader 负责关键开发和发布收尾,GLM 并行独立做故障测试与审查。候选发布到 next,不改变 latest。
87
+
88
+ ## [5.0.16-rc.4] - 2026-10-14
89
+
90
+ - 引擎 0.2.7-rc.7 复用同一次检索刚读取的知识正文,保留晚到响应后的文件与范围校验;vector-hub 1.0.8-rc.8 将有界查询缓存延长到 10 分钟,并防止旧请求失败删除新缓存。源码真实向量热查询 P95 为 1069ms,不代表安装版验收通过。
91
+ - 锁定 vector-hub 1.0.8-rc.8(ebf6f586a534c4b851c919c53a5536671cc8bd12),保留 Workbench 0.13.2-rc.11 与 bridge 0.7.2;四个模块集与官方 npm tarball 双向逐字节核对(vendored 引擎 40、Workbench 96、vector-hub 59、bridge 38)。
92
+ - 候选不改变 latest;完整安装版和原生客户端验收通过后才允许晋升。
93
+
94
+ ## [5.0.15] - 2026-10-13
95
+
96
+ - 冻结 rc.5 已验收的中文 BM25 与可校验向量片段融合、本项目进度与跨范围上下文、无可靠匹配诊断及离线 Claude 插件接入。
97
+ - 包含 UI 属性/源码示例被知识晋升误判的修复,以及 Codex 本地市场重载修复;保留真实 Git 失败和原生 Hook 信任审核。
98
+ - 正式包先下载和测试,再更新 latest;本机与另一台设备的结果分别报告。
99
+
100
+ ## [5.0.15-rc.5] - 2026-10-13
101
+
102
+ - 修复 Codex 本地插件市场被强制执行 Git 刷新而无法更新的问题;识别原生明确的非 Git 市场反馈后重新加载本地插件,真实 Git/认证失败仍终止,保留可用旧插件。
103
+ - 不写入 Hook 信任、不跳过原生审核;保留 rc.4 的知识晋升误判修复与检索改进。
104
+ - 候选包先下载验收,不提升 latest。
105
+
106
+ ## [5.0.15-rc.4] - 2026-10-13
107
+
108
+ - 修复知识晋升校验把 UI 的 `placeholder=` 属性及有正文解释的源码示例误判为未完成内容的问题;真实未完成标记、空正文、越界及哈希校验继续拦截。
109
+ - 保留失败记录及项目 FIFO,不升级后自动重做失败提交;用户可通过运行详情显式重试。
110
+ - 保留 rc.3 的检索与离线接线修复;重新进行 npm 安装版验收,暂不提升 latest。
111
+
112
+ ## [5.0.15-rc.3] - 2026-10-13
113
+
114
+ - 当前项目没有维护历史但已有其他知识时,最近进度检索明确显示“本次无可靠匹配”,不误报整个项目知识为空。
115
+ - 增加用户原句“我想知道我当前向量库存储的位置在哪”的回归与现有知识文件只读验收;存储规则引用与当前设备实际路径分别核验。
116
+ - 保留 rc.2 的片段校验、中文排序、跨项目范围隔离和离线插件接入;候选版不更新 latest。
117
+
118
+ ## [5.0.15-rc.2] - 2026-10-13
119
+
120
+ - Windows 路径边界校验改用原生规范化,保留中文/空格、缺失末级目录和目录联接越界检查。
121
+ - 保留 rc.1 的全部检索及离线接线修复;性能验收明确区分真实向量召回与最终选择词法结果,不把词法结果标为向量命中。
122
+ - 候选版仍不提升 latest,源码、npm 安装版、真实客户端及另一台设备的反馈分别记录。
123
+
124
+ ## [5.0.15-rc.1] - 2026-10-13
125
+
126
+ - 候选版检索采用当前 Markdown 分块上的中文 BM25 与可验证向量片段融合;每篇最多两个互补片段,不将文档向量分数扩散到全部章节。
127
+ - 最近进度优先本项目提交依据;开发上下文本项目事实保留预算、领域参考限量,记忆仍独立准备。无可靠匹配不再表示知识库为空。
128
+ - Claude 插件默认从 npm 包内本地市场安装,无需 GitHub;接入状态探测放入有界后台进程,超时与未安装分开显示并记录日志。
129
+ - 保留 v5 数据、第三方 Hook 与客户端配置。候选发布不更新正式 latest;真实模型、客户端及安装版验收分别记录。
130
+
131
+ ## [5.0.14] - 2026-10-13
132
+
133
+ - 长期记忆页增加“添加记忆”:填写内容并选择全局、领域或项目,用户确认后直接保存为已确认记忆。
134
+ - 手动来源独立标明,不伪造 Agent 分析、项目来源或 commit;复用引擎受控写入、持久化、共享索引和开发前上下文。
135
+ - 校验无效目标、重复内容和越界路径;取消不保存,保存与编辑自动刷新,写入失败保留记录并报告待恢复。
136
+ - 保留 5.0.13 的重复采集修复:已有旧 Hook 仍需在 Agent 接入中执行“接入/修复”,升级启动不等于已清理旧接线。
137
+
138
+ ## [5.0.13] - 2026-10-13
139
+
140
+ - 修复独立 bridge 与产品 bridge 同时接入导致同一项目生成两个知识目录:接入/修复只替换明确的旧自有入口,并去除当前入口的重复项。
141
+ - Claude Code、ZCode 重复采集不再显示为正常;保留混合分组中的第三方 Hook、知识读取、模型配置和历史日志。
142
+ - Codex 通知链识别默认旧 bridge,包括已知通知分支中嵌套的旧入口;保留第三方通知,不恢复退役的重复采集。
143
+
144
+ ## [5.0.12] - 2026-10-12
145
+
146
+ - 冻结 rc.3 已验收的三客户端开发前知识读取:Claude Code、Codex、ZCode 获取统一事实及适用的已确认长期记忆。
147
+ - 当前编辑记忆优先于历史实现;指定已知源文件不会被重复历史向量结果挤出,保留引用与范围校验。
148
+ - ZCode 入口跨 npm 安装目录更新并去重,Codex 遵循原生 Hook 信任审核,保留用户模型、第三方 Hook 和既有采集。
149
+ - 正式包先下载验收,再更新 latest;OpenCode 保持 MCP/采集兼容,不宣称未经验证的自动注入。
150
+
151
+ ## [5.0.12-rc.3] - 2026-10-12
152
+
153
+ - 修复点名源文件的需求被相似历史向量结果挤出的情况;已有文件标识先匹配知识依据,新文件名仍可检索相似背景。
154
+ - 修复 ZCode 安装目录变化时残留旧上下文入口;只替换明确属于本产品的脚本,去除重复入口,保留第三方 Hook、采集及模型。
155
+ - 保留真实模型首轮失败和再次验证记录,未完成 Codex 原生信任审核前不提升 latest。
156
+
157
+ ## [5.0.12-rc.2] - 2026-10-12
158
+
159
+ - 修正自动上下文的当前记忆与历史事实边界,保留编辑时间及项目、领域、全局的适用优先级。
160
+ - 新增保留旧代码及历史知识的真实编辑记忆验收;候选版仍需真实模型验证,不以注入成功代替实际采用。
161
+ - 保持用户当前需求及安全限制优先,不因记忆增加授权;不改动用户知识文件、路径和第三方设置。
162
+
163
+ ## [5.0.12-rc.1] - 2026-10-12
164
+
165
+ - 候选版新增 Codex、ZCode 原生需求提交前的知识读取,复用引擎同一份事实、记忆与引用。
166
+ - 修复 Codex 旧插件存在时跳过升级;区分安装、定义完整、启用和原生信任状态,未信任不显示已就绪。
167
+ - ZCode 使用用户配置的 process Hook,保留第三方 Hook、模型及既有采集;被禁用的 Hook 不静默重启。
168
+ - 工作台提供上下文和原始会话采集时,仅抑制自身原生重复入口;候选实测未通过前不替换 latest。
169
+
170
+ ## [5.0.11] - 2026-10-12
171
+
172
+ - Claude Code 的普通开发需求通过原生前置 Hook 自动取得项目/领域知识和适用的已确认长期记忆;MCP 保留用于深入读取。
173
+ - 引擎统一准备有界上下文,工作台复用同一接口并避免重复注入;知识读取失败明确提示后继续,向量故障不冒充成功。
174
+ - 修复旧知识插件存在即跳过更新及 Windows Git CRLF/npm LF 接线误判;插件版本、启用、文件与采集能力分别验证。
175
+ - 保留 v5 数据、模型、第三方 Hook 和向量位置;原生模型请求与开发提交闭环分开验收。首批只承诺 Claude Code 自动读取,Codex/ZCode 后续交付。
176
+
177
+ ## [5.0.10] - 2026-10-12
178
+
179
+ - Freeze the accepted rc.2 scoped-memory runtime: review and edit candidates,
180
+ choose global/domain/project applicability, and confirm in one transaction.
181
+ - Preserve v5 knowledge, source evidence, histories and directory bindings;
182
+ only applicable, confirmed and synchronized memories enter task retrieval.
183
+ - Include real MiniMax candidate extraction, 1536-dimensional embeddings,
184
+ project/domain/global isolation, CLI/MCP agreement and restart regression.
185
+ - Publish first to next; formal npm installation and existing-user upgrade
186
+ acceptance precede stable latest promotion. Other module versions stay pinned.
187
+
188
+ ## [5.0.10-rc.2] - 2026-10-12
189
+
190
+ - Require candidate entry IDs to name an actually promoted Markdown document;
191
+ record rejected candidate counts and safe reason codes instead of silently
192
+ losing model suggestions or inventing source citations.
193
+ - Keep valid knowledge updates independent of optional candidate failures;
194
+ roll back an unpersisted candidate batch and expose diagnostics in activity.
195
+ - Distinguish changed-memory index jobs from unchanged health probes so ready
196
+ memories do not remain falsely marked as indexing.
197
+
198
+ ## [5.0.10-rc.1] - 2026-10-12
199
+
200
+ - Add global/domain/project memory applicability and a single review form for
201
+ editing content, selecting any existing target and confirming atomically.
202
+ - Retain original evidence, scope-aware duplicate suppression, existing v5
203
+ global memories and all fixed code/knowledge directory bindings.
204
+ - Filter exclusive memories before retrieval ranking and file reads; clear old
205
+ projections after scope changes and report/retry pending file synchronization.
206
+ - Keep the accepted Workbench, vector-hub and event-bridge versions unchanged;
207
+ candidate package acceptance precedes stable latest promotion.
208
+
209
+ ## [5.0.9] - 2026-10-12
210
+
211
+ - Freeze the accepted rc.19 web runtime and exact module versions; no new
212
+ product features, old-version migration or existing v5 data reset.
213
+ - Include index failure diagnostics, index-only recovery, knowledge-root
214
+ index storage, safe client discovery/notify chaining, maintenance isolation
215
+ and the embedded Workbench startup/streaming fixes from the candidate series.
216
+ - Publish initially to next. Official npm installation, Node 22/24 regression,
217
+ real MiniMax knowledge/embedding loops and existing-user upgrade acceptance
218
+ must pass before stable latest promotion.
219
+
220
+ ## [5.0.9-rc.19] - 2026-10-12
221
+
222
+ - Pin Workbench 0.13.2-rc.7. Startup shows a loading state and keeps controls
223
+ inert until projects and event handlers are ready; the existing streaming
224
+ and session recovery paths are unchanged.
225
+ - Preserve the real rc.18 premature-click failure and require its actual
226
+ usable-page ready receipt in browser acceptance. Add a deterministic
227
+ startup gate regression and Node 22/24 retests.
228
+ - Include Windows test-server cleanup hardening and corrected storage-root
229
+ assertions. Retain existing v5 data, third-party configuration and the
230
+ official-package acceptance gate before stable latest promotion.
231
+
232
+ ## [5.0.9-rc.18] - 2026-10-12
233
+
234
+ - Project resolution for MCP and CLI now reports the vector-hub storage root
235
+ selected in settings, not the retired shell database path. A running tool
236
+ rereads root changes; resolution does not move files or rebuild indexes.
237
+ - Preserve the reproduced rc.17 diagnostic mismatch and add Node 22/24
238
+ coverage for configured, changed and unset roots and MCP output.
239
+ - Retain existing v5 data and all accepted module pins. Publish to next;
240
+ stable latest remains behind official-package and actual-user acceptance.
241
+
242
+ ## [5.0.9-rc.17] - 2026-10-11
243
+
244
+ - Pin Workbench 0.13.2-rc.6. Repeated embedded notifications for the current
245
+ project no longer abandon a newly created session; real project changes and
246
+ late project lookups still preserve isolation and per-project drafts.
247
+ - Keep a healthy progress stream labelled as connected on redundant online
248
+ events. Verify actual offline cleanup, snapshot recovery and exactly one
249
+ restored SSE connection with a real browser and HTTP proxy.
250
+ - Preserve the rc.16 real Workbench failure and require official-package
251
+ streaming/citation acceptance before upgrading the actual user instance.
252
+ - No data reset or third-party configuration overwrite. Stable latest remains
253
+ behind the full candidate and installed-product acceptance gates.
254
+
255
+ ## [5.0.9-rc.16] - 2026-10-11
256
+
257
+ - Pin Workbench 0.13.2-rc.5. Bound OpenCode's health request at both
258
+ response headers and JSON body so a stalled local server cannot exceed
259
+ the startup handshake budget before the existing CLI fallback.
260
+ - Reproduce the old behavior using two live HTTP connections, retain the
261
+ failed rc.15 client acceptance and require a new official-package retest.
262
+ - No project, knowledge, history, provider or third-party hook reset.
263
+ Candidate is published to next; stable latest still requires acceptance.
264
+
265
+ ## [5.0.9-rc.15] - 2026-10-11
266
+
267
+ - Serialize registration, module removal and registry deletion for each project.
268
+ Recheck membership inside the wiring lease so delayed supervisor registration
269
+ cannot resurrect a project after keep-data unbind. Unrelated projects remain
270
+ independent; failed deletion can still be repaired and retried.
271
+ - Reproduce the race with a delayed real HTTP registration and preserve the
272
+ downloaded rc.14 Node 22 UI failure. Include the regression in the package.
273
+ - Use non-binding CLI readiness probes in tests; the old bind probe could take
274
+ the exact port while its own foreground child was starting.
275
+ - Real MiniMax acceptance covers overlapping analyses, another commit and a
276
+ dirty developer draft during analysis, streaming, secondary development,
277
+ four installed clients and evidenced preference candidates. New downloaded
278
+ candidate acceptance and actual-user cutover still precede stable latest.
279
+
280
+ ## [5.0.9-rc.14] - 2026-10-11
281
+
282
+ - Vendor engine 0.2.3-rc.7: isolated maintenance consumes frozen evidence even
283
+ while the user edits or commits in the source repository. Do not mistake live
284
+ development for analyzer writes; retain live-source protection for custom
285
+ analyzers without the isolation capability.
286
+ - Add a paused child-worker regression covering another commit, uncommitted
287
+ drafts, frozen attribution, same-project FIFO and unchanged path/tool guards.
288
+ - Existing-user npm acceptance verified real MiniMax streaming, retained v5
289
+ history/configuration, D-root indexes and index-only e9f6560 recovery. Preserve
290
+ the actual rc.13 PROJECT_BUSY failure and require a real mid-analysis commit
291
+ retest from downloaded rc.14 before stable promotion.
292
+
293
+ ## [5.0.9-rc.13] - 2026-10-11
294
+
295
+ - Give native Agent session creation and input setup a bounded 90-second proxy
296
+ budget. Ordinary API reads/abort/permissions retain 10 seconds; SSE streaming
297
+ and folder-picker contracts are unchanged.
298
+ - Record safe proxy failure categories and deadlines without raw errors or URL
299
+ queries. Preserve MODULE_UNREACHABLE compatibility and add optional details.
300
+ - Reproduce the installed OpenCode cold-start failure with a real delayed HTTP
301
+ server; verify the targeted budget, unrelated routes and credential redaction.
302
+ - Retain rc.12 real acceptance and failed OpenCode results separately; require
303
+ a newly downloaded candidate and cold-client retest before user upgrade.
304
+
305
+ ## [5.0.9-rc.12] - 2026-10-11
306
+
307
+ - Vendor engine 0.2.3-rc.6 to address the Windows transient state-file rename
308
+ failure exposed by installed rc.11 fault acceptance. Use exclusive random
309
+ temporary files and bounded sharing retries, retain durable state on failure,
310
+ and never unlink live state to force replacement.
311
+ - Add deterministic sharing-violation, permanent-lock, foreign-temp and
312
+ disk-full regressions; all 39 engine tests pass on Node 22 and Node 24.
313
+ - Preserve the rc.11 failure and require new installed acceptance before any
314
+ existing-user upgrade or stable latest promotion.
315
+
316
+ ## [5.0.9-rc.11] - 2026-10-11
317
+
318
+ - Pin vector-hub 1.0.8-rc.3 and vendor engine 0.2.3-rc.5. Raw commit
319
+ conversations and internal backups are analysis evidence, not knowledge.
320
+ Exclude them from managed indexes, search and get; retain source evidence.
321
+ - Prune stale derived records during sync and rebuild once on source-policy
322
+ upgrade, without repeating paid whole-index work on ordinary restarts.
323
+ - Keep standalone vector-hub general document support unchanged.
324
+ - Record both original failing regressions and successful Node 22/24 reruns;
325
+ installed, real model and existing-v5 gates still precede latest promotion.
326
+
327
+ ## [5.0.9-rc.10] - 2026-10-11
328
+
329
+ - Preserve acknowledged brain/domain knowledge-directory bindings when changing
330
+ the knowledge root. Only derived indexes and future imports/shared scopes use
331
+ the new root; existing knowledge and confirmed memories stay in place.
332
+ - Persist bindings in shell metadata, reject implicit rebinding, and report
333
+ shared-scope connection failures in UI and safe structured logs.
334
+ - Add real-engine regression for confirmed memory, domain retrieval, restart,
335
+ new domain registration, offline retry and protected bindings on Node 22/24.
336
+ - Candidate acceptance still precedes the existing-v5 upgrade and stable latest.
337
+
338
+ ## [5.0.9-rc.9] - 2026-10-11
339
+
340
+ - Vendor engine 0.2.3-rc.4. Freeze existing target paths and hashes before
341
+ analysis so missing retrieval snippets cannot be mistaken for absent files.
342
+ Preserve full old documents when only partial context is available; illegal
343
+ create operations still fail safely instead of silently overwriting data.
344
+ - Keep the failed rc.8 secondary-development maintenance evidence and verify
345
+ that exact commit after downloading this candidate, not patched source bytes.
346
+ - Render long index-directory paths as a full-width block in System Status.
347
+ - latest remains unchanged until the real closed-loop and existing-v5 gates pass.
348
+
349
+ ## [5.0.9-rc.8] - 2026-10-11
350
+
351
+ - Pin Workbench 0.13.2-rc.4: atomically replace all native Agent histories,
352
+ retaining the previous complete record on disk-full or locked-file errors.
353
+ CLI fallback no longer deletes durable history before a failed rename.
354
+ - Keep the original disk-full loss and separate successful background recovery
355
+ records. Candidate acceptance includes faults against downloaded module bytes.
356
+ - Pin vector-hub 1.0.8-rc.2. Managed indexes now follow the knowledge root
357
+ under `.indexes`; show the acknowledged actual directory in System Status.
358
+ Rebuild on a root/model change while retaining the old index directory;
359
+ serialize queued writes and avoid a full paid rebuild on normal restart.
360
+ - Do not promote latest until installed and existing-v5 acceptance pass.
361
+
362
+ ## [5.0.9-rc.7] - 2026-10-11
363
+
364
+ - Vendor engine 0.2.3-rc.3: recognize promoted commit identifiers inside
365
+ natural-language tasks, including short and multiple SHAs. Raw conversation
366
+ mentions cannot replace the current promoted knowledge references.
367
+ - Preserve failed installed Workbench/context checks from rc.6; latest remains
368
+ unchanged until fresh registry runtime and existing-v5 acceptance pass.
369
+
370
+ ## [5.0.9-rc.6] - 2026-10-11
371
+
372
+ - Vendor engine 0.2.3-rc.2. Unassigned projects no longer share an implicit
373
+ domain in retrieval or Workbench task context. Explicit domains and whole
374
+ brain queries retain their inclusive scopes.
375
+ - Keep the failed rc.5 real Workbench acceptance as a separate record. This
376
+ candidate must pass fresh downloaded-runtime checks before promotion.
377
+
378
+ ## [5.0.9-rc.5] - 2026-10-11
379
+
380
+ - Pin Workbench 0.13.2-rc.3: retain OpenCode final answers across tool rounds,
381
+ isolate CLI history by product data directory and recover only owned v5
382
+ session records without moving or deleting originals.
383
+ - Support current ZCode model-selection and failure events. Shared provider
384
+ credentials stay in memory behind a temporary loopback transport; client
385
+ shutdown cleans up the transport and settles rejected sends correctly.
386
+ - Candidate publication does not promote latest or imply complete acceptance.
387
+ Real client execution, installed UI regression and existing-data upgrade
388
+ remain separately recorded gates.
389
+
390
+ ## [5.0.9-rc.4] - 2026-10-11
391
+
392
+ - Pin Workbench 0.13.2-rc.2: resolve the installed ZCode provider resource
393
+ layout without rewriting desktop or personal configuration, and label
394
+ runtime failures with the correct agent.
395
+ - Disable the project selector until the first registry snapshot. This fixes
396
+ the startup interaction race exposed by the Node 22 packaged UI regression.
397
+ - Latest is unchanged; real installed acceptance and client authentication are
398
+ independent gates, not implied by a successful version probe.
399
+
400
+ ## [5.0.9-rc.3] - 2026-10-11
401
+
402
+ - Route engine-wired CLI and MCP reads through the same authoritative engine
403
+ as the web UI, preserving commit references and project/domain/brain scopes.
404
+ Verify the selected runtime identity and reject unavailable, mismatched or
405
+ malformed services instead of silently querying a different local index.
406
+ - Preserve the MCP `space` alias and expose explicit scope selection. Bound
407
+ responses and never forward profile or credential objects to read routes.
408
+ - Drain isolated regression servers before Windows fixture cleanup. Candidate
409
+ publication still does not promote latest or claim complete acceptance.
410
+
411
+ ## [5.0.9-rc.2] - 2026-10-11
412
+
413
+ - Pin the verified Workbench 0.13.2-rc.1 and vector-hub 1.0.8-rc.1 candidates.
414
+ Normalize known official MiniMax embedding route aliases at runtime without
415
+ changing existing v5 configuration bytes or private gateway paths.
416
+ - Queue same-project index writes across embedding-model rebuilds. Failed writes
417
+ do not poison retries, and unrelated projects remain independent.
418
+ - Restore safe relative Markdown document navigation and verify the standalone
419
+ retrieval UI at 1920x1080. Tests never kill unrelated port owners.
420
+ - Isolate regression-suite ports and tolerate Windows fixture file release.
421
+ Candidate publication is not full product acceptance; latest remains unchanged.
422
+
423
+ ## [5.0.9-rc.1] - 2026-10-11
424
+
425
+ - Retain classified, bounded and redacted index errors in run details, activity
426
+ and local log/v2 exports. Index-only retries preserve promoted files and do not
427
+ invoke the analysis model again.
428
+ - Accept ZCode conversation evidence, isolate per-project journal failures and
429
+ report the exact blocked sequence without dropping evidence or flooding logs.
430
+ - Synchronize production asset hashes, including the shared favicon. Permit
431
+ exact rc module pins but reject tags, ranges, links and source overrides.
432
+ - Prepare a web-only candidate; latest is not promoted by this release. Existing
433
+ v5 data and third-party integrations are preserved; system acceptance remains
434
+ a separate gate from publication.
435
+
436
+ ## [5.0.8] - 2026-10-10
437
+
438
+ - Repair managed Codex notify chains after scoped npm package or Bridge-home
439
+ changes. Preserve live desktop wrappers and valid third-party notifications;
440
+ unwrap only missing, known Codex runtime wrappers. Unknown notifiers remain
441
+ conflicts, never overwritten. Repeat setup is idempotent; removal unwraps
442
+ capture without deleting existing notifications or evidence.
443
+ - Accept Codex's documented JSON argument as well as legacy stdin notifications.
444
+ Preserve the third-party payload and transport, adapt only the Bridge wake-up
445
+ aliases, and isolate child-process errors between notification branches.
446
+ - Place new notify entries at the TOML root. Back up only the modified setting,
447
+ and refuse stale writes when another program changes the config after preflight.
448
+ - Add real Git/Bridge/journal capture regression with isolated rollout fixtures,
449
+ duplicate-notify and missing-session checks; no model calls or user-data reset.
450
+
451
+ ## [5.0.7] - 2026-10-10
452
+
453
+ - Normalize CLI command case and reject unknown commands, extra arguments and
454
+ invalid ports before any service or data is created.
455
+ - Replace the shared temporary PID and blind orphan scan with per-data-directory
456
+ local control channels. Stop waits for the backend and owned module shutdown;
457
+ stale or unrelated PIDs are never signaled.
458
+ - Add verified local instance inventory (`status --all`), explicit targeted stop
459
+ (`stop --port`) and data-directory selection (`--data`). Display the actual
460
+ port, version and data directory; refuse unverifiable or mismatched targets.
461
+
462
+ ## [5.0.6] - 2026-10-10
463
+
464
+ - Do not mistake unregistered, abandoned legacy chat records for a knowledge
465
+ database on first launch. Preserve their bytes without restoring sessions or
466
+ importing projects; continue rejecting actual old registries and maintenance.
467
+ - Wait for the background server's real HTTP readiness before reporting success
468
+ or opening the browser. Surface startup failures in the invoking terminal with
469
+ a nonzero exit code, and name the exact conflicting data entries.
470
+ - Isolate regression data from the user's default data directory. Add a detached
471
+ npm CLI startup regression from an unrelated working directory.
472
+
473
+ ## [5.0.5] - 2026-10-10
474
+
475
+ - Invalidate in-flight registry snapshots after domain creation, project import,
476
+ ownership changes and wiring repair. A read begun before the write cannot
477
+ hide the newly registered data until the next polling cycle.
478
+ - Includes all knowledge-maintenance, Claude discovery and local diagnostic
479
+ fixes from 5.0.3, plus exact commit retrieval from 5.0.4. No schema migration
480
+ or automatic replay of failed model tasks.
481
+
482
+ ## [5.0.4] - 2026-10-10
483
+
484
+ - Vendor engine 0.2.2: treat a known full/prefix commit SHA as a provenance
485
+ identifier. Unrelated high-scoring vector chunks cannot crowd out the matching
486
+ current knowledge. Preserve ordinary semantic ranking and current-file truth;
487
+ overwritten documents are not attributed to their earlier commit.
488
+ - Includes the empty-knowledge and Claude discovery/diagnostic fixes from 5.0.3.
489
+
490
+ ## [5.0.3] - 2026-10-10
491
+
492
+ - Pin Workbench 0.13.1: reject stale Claude executable overrides without hiding
493
+ a valid installation; discover native/PATH/package entries and probe JS/CJS/MJS
494
+ through Node. Discovery, doctor and runtime failures record their actual cause.
495
+ - Vendor engine 0.2.1: an empty knowledge tree is a valid first-use state. Require
496
+ evidence-backed nonempty Markdown; normalize only missing titles in validated
497
+ staging output and reseal hashes before promotion. Empty/invalid output still
498
+ fails safely with a concrete reason, without overwriting existing knowledge.
499
+ - Route module diagnostics through the supervisor to local product logs and the
500
+ diagnostic page; redact runtime credentials before IPC. Preserve failed runs
501
+ for explicit retry rather than silently replaying model tasks on upgrade.
502
+
503
+ ## [5.0.2] - 2026-10-10
504
+
505
+ - Add ZCode capture to the unified CLI and web System Status connector setup,
506
+ including repair, status and safe removal. Keep unverified ZCode knowledge
507
+ plugin support explicitly separate from working capture hooks.
508
+ - Correct command/config discovery labels and stop treating consumer
509
+ registration or disabled hooks as proof of capture. Report partial failures
510
+ with their operation ID and persist connector errors from both web and CLI.
511
+ - Pin event-bridge 0.7.2: external hooks resolve their own Bridge home without
512
+ inherited environment variables; ZCode events preserve their source. Repair
513
+ older entries in place and retain third-party hooks within mixed groups.
514
+
515
+ ## [5.0.1] - 2026-10-10
516
+
517
+ - Fix project import on Git versions before 2.31: query hooks and common Git
518
+ directories without `--path-format`, then resolve relative paths against the
519
+ Git command's working directory. Reject empty, multi-line or echoed-option
520
+ responses before writing hooks or repository identities.
521
+ - Apply the same correction to commit capture and pin event-bridge console
522
+ 0.7.1 so importing a project and capturing its next commit use consistent
523
+ workspace metadata. No previous data is migrated.
524
+ - Keep import failure feedback visible with its error code and operation ID.
525
+ Persist the actual failed transaction stage; system diagnostics default to
526
+ all projects so failures of not-yet-registered imports are visible/exportable.
527
+
528
+ ## [5.0.0] - 2026-10-10
529
+
530
+ - Fresh-data-only web product. Default state moves to `~/.project-knowledge-v5`;
531
+ no previous knowledge, project registry, unfinished claims or model profiles
532
+ are imported. Explicitly selected old data directories are rejected unchanged.
533
+ - Remove shell migration/cutover and engine `/api/migrate`. Engine 0.2.0 uses
534
+ schema version 3; validate its data generation and runtime authentication
535
+ before registering projects or enabling consumption. System status reports
536
+ safe connection stage/error codes instead of silently waiting for takeover.
537
+ - Isolate Workbench, bridge journals and vector configuration under the new
538
+ product directory. No automatic embedding-credential migration.
539
+ - Queued, unstarted tasks are cancelled on unbind; active knowledge/index write
540
+ leases still block removal. The visible confirmation dialog updates project
541
+ selection immediately and rejects stale registry responses without reloading.
542
+ - Reimport can explicitly replace a leftover knowledge-managed Git Hook. Failed
543
+ imports restore the prior Hook; third-party hooks and existing knowledge files
544
+ are never overwritten. Import tracks HEAD without analyzing historical commits.
545
+
546
+
547
+ ## [4.8.0] - 2026-10-10
548
+
549
+ - Unified brain web product: six real pages for work, retrieval, memories,
550
+ domains/projects and activity. Existing module UIs retain their streaming
551
+ and recovery behavior with one embedded theme and project context.
552
+ - Project import wires all four modules and preserves code/knowledge paths;
553
+ domains and confirmed memories add shared scopes without moving knowledge.
554
+ - The vendored knowledge-engine owns journal consumption, isolated analysis,
555
+ staging promotion and retrieval. Per-project FIFO and two concurrent projects
556
+ persist across recovery; promotion and indexing have separate failure states.
557
+ - Pin the validated module releases: Workbench 0.13.0, vector-hub 1.0.7,
558
+ event-bridge console 0.7.0 and vendored knowledge-engine 0.1.0.
559
+ Runtime file hashes are verified before release, not resolved from `latest`.
560
+ - Web-only release. No new Windows installer or desktop auto-update delivery.
561
+ Regression uses controlled model/embedding doubles; real-model and real-index
562
+ smoke tests are reported separately. Remaining fault combinations are not
563
+ represented as a completed stability certification.
564
+
565
+ ## [4.7.0] - 2026-09-21
566
+
567
+ - All four embedded module dependencies (`claude-ai-workbench`,
568
+ `@sanqianx/vector-hub`, `@sanqianx/ai-coding-event-bridge-console`, plus the
569
+ `@sanqianx/ai-coding-event-bridge` consumer inside the shell) are now pinned
570
+ to `latest`, so a fresh `npm install` pulls whatever the upstream modules
571
+ ship instead of lagging behind the project's npm releases. The legacy
572
+ `@sanqianx/ai-coding-event-bridge` package — which used to be the engine
573
+ library — is deprecated on npm and removed from this project's dependencies;
574
+ its capture engine now ships inside `@sanqianx/ai-coding-event-bridge-console`
575
+ at `src/bridge`, and the four production call sites (hook capture, requirement
576
+ recorder, integration installer, bridge adapter) plus six tests were rewritten
577
+ to import from there. The legacy package's every version carries a deprecation
578
+ message pointing to the new entry.
579
+ - The package is published as `@sanqianx/project-knowledge` (moved from the
580
+ unscoped `project-knowledge`); the unscoped name still resolves to the old
581
+ versions for users who haven't migrated, but new installs land on the
582
+ scoped package.
583
+
584
+ ## [4.6.0] - 2026-09-21
585
+
586
+ - The three embedded module runtimes now ship as real npm dependencies instead
587
+ of the `_modules/` committed snapshot: `claude-ai-workbench@0.4.1`,
588
+ `@sanqianx/vector-hub@1.0.1` and
589
+ `@sanqianx/ai-coding-event-bridge-console@0.4.0` (bringing
590
+ `@sanqianx/ai-coding-event-bridge@0.4.0` transitively). The `_modules/`
591
+ directory, its vendor script and the tarball entry are removed.
592
+ - Why it matters: the snapshot lagged the source repo — npm consumers missed
593
+ the codex resident-bridge Windows fix (per-turn process respawns made every
594
+ turn 5-20s), claude failure-reason surfacing, `/system/doctor` diagnostics
595
+ and the folder-picker foreground/centering fixes. Module upgrades are now a
596
+ one-line version bump verified by `npm ci`, with no manual snapshot step.
597
+ - `module-bridge` resolves each runtime entry through `require.resolve` from
598
+ the installed packages (same supervised spawn, reuse and env-override
599
+ contract as before); the `NODE_PATH` stitching is gone. `release:verify` no
600
+ longer gates on the vendored snapshot.
601
+
602
+ ## [4.5.0] - 2026-09-21
603
+
604
+ - The embedded Agent Terminal's settings view gains a 会话捕获 (capture) tab.
605
+ Terminal conversations remain exempt from Development Conversation capture by
606
+ default — the terminal is internal AI runtime, not the developer's CLI
607
+ record. Flipping the toggle persists the scope, applies it to the runner
608
+ immediately, and marks only NEW terminal sessions with
609
+ `AI_CODING_EVENT_BRIDGE_CAPTURE=1`, so they reach the Bridge journal and the
610
+ 会话浏览 explorer like any CLI tool conversation. Existing sessions are
611
+ unaffected, and nothing changes for standalone terminals that never touch
612
+ the toggle. Ships the updated vendored Agent Terminal runtime.
613
+
614
+ ## [4.4.0] - 2026-09-21
615
+
616
+ - The ai-coding-event-bridge conversation console joins the Agent Terminal and
617
+ vector-hub as the third embedded Control Center module. The vendored runtime
618
+ (console 0.4.0 + its core) ships inside the npm package and starts with the
619
+ shell on 127.0.0.1:8790; the console's dependency on
620
+ `@sanqianx/ai-coding-event-bridge` resolves from a node_modules directory
621
+ vendored inside the console package, so the host package's own older npm
622
+ dependency can never shadow it. The global `node_modules/` gitignore rule
623
+ carries a negation for that directory, and `vendor:modules --check` now
624
+ verifies the runtime is present and git-tracked — the 4.3.0 "runtime missing
625
+ from the tarball" incident class cannot recur for this module either.
626
+ - Module integration follows the established contract: same-origin reverse
627
+ proxy under `/api/eventbridge/`, supervised spawn with reuse of an already
628
+ listening standalone console (`KB_EVENTBRIDGE_COMMAND` override,
629
+ `AI_CODING_EVENT_BRIDGE_HOME` passthrough so the explorer shows the same
630
+ journal the in-process BridgeAdapter writes), idempotent import-time
631
+ registration keyed by Git work tree path using the recommended
632
+ `<knowledge>/dev-conversations` store, removal that keeps journals and sealed
633
+ commit documents, aggregated sidebar projection and module health.
634
+ - The shell UI gains the 会话浏览 view (connect probe, 独立打开 link, per-project
635
+ 桥 badge, import/remove copy) — and the conversation explorer itself learned
636
+ the `kb:sidebar` embed protocol (`?embed=1`, `kb:ready` announcement,
637
+ loopback-only origins), so its project sidebar folds via the ▤ control exactly
638
+ like the terminal and vector-hub embeds. Standalone console opens are
639
+ unaffected.
640
+
641
+ ## [4.3.1] - 2026-09-20
642
+
643
+ - The 4.3.0 npm package could never start the vector-hub module: the global
644
+ `dist/` gitignore rule kept the vendored runtime
645
+ (`_modules/vectorhub/dist/`, 25 files) out of git, so the CI-packed tarball
646
+ shipped without `bin.js` and every fresh install logged "Vendored vector-hub
647
+ runtime not present". The runtime is committed now, and `release:verify`
648
+ gained a vendored-modules gate that fails when a required runtime file is
649
+ missing from disk or not tracked by git — the check that was previously
650
+ wired into nothing.
651
+ - The Control Center's embedded Agent Terminal linked to no project on first
652
+ load. The shell sends `kb:select-project` 150ms after `kb:ready`, but the
653
+ terminal loads its project list only after health + agent discovery, so the
654
+ one-shot selection landed on an empty list: the linkage chip stuck on
655
+ "未登记" and the embed had no project selected, making it impossible to open
656
+ a terminal from the shell. The terminal now re-announces `kb:ready` once its
657
+ projects are loaded, and the shell retries a failed linkage with backoff.
658
+ - Module status probing no longer reports a false "未检测到 … 界面将显示为
659
+ 空白" forever: cold-starting module services are re-probed with backoff
660
+ (up to 10 attempts) before the status is marked down, and the top bar
661
+ 终端/检索 indicator updates when a late probe succeeds.
662
+
663
+ ## [4.3.0] - 2026-09-20
664
+
665
+ - The Agent Terminal and vector-hub module services now ship inside the npm
666
+ package and start with the shell. `npm install -g project-knowledge` is
667
+ self-contained: the Control Center, the embedded terminal (:5760) and the
668
+ vector-hub console (:8787) all come up together on a fresh machine — no
669
+ sibling checkouts required. KB_MODULES_AUTOSTART=0 disables spawning;
670
+ a service already listening on its URL is never double-spawned, so dev
671
+ machines running standalone module instances are unaffected. vector-hub
672
+ needs Node >= 22 — on older runtimes the shell skips spawning it and logs
673
+ a warning. Also fixed a latent spawn bug: quoted paths in module commands
674
+ reached node with the quotes embedded, which crash-looped the (previously
675
+ default-off) autostart path.
676
+
677
+ ## [4.2.20] - 2026-09-20
678
+
679
+ - Startup no longer relocates legacy v4.1.x package-root runtime data. This is
680
+ a fresh knowledge-base system by decision: old data under the npm package
681
+ dir is ignored, not migrated. Previously a conflict between stale
682
+ package-root files and the user data dir aborted startup with "Legacy
683
+ runtime relocation failed", bricking machines whose install carried
684
+ v4.1.x-era files.
685
+
686
+ ## [4.2.19] - 2026-09-20
687
+
688
+ - Background launch is diagnosable and no longer lies about the URL. The
689
+ detached child's stdout/stderr now append to `<data-dir>/launcher.log`, so
690
+ port fallbacks ("Port 5757 was busy, using 5758 instead") and startup
691
+ failures are visible after the fact instead of being silently discarded
692
+ (`stdio: 'ignore'`). The parent no longer prints a guessed URL or races a
693
+ browser open 1.2s after spawn — the child opens the browser itself once it
694
+ is actually listening, with the real port. The free-port probe timeout went
695
+ 1s → 3s to survive slow listen() under antivirus/cold-cache load (a false
696
+ "busy" previously cascaded into "No free port found").
697
+
698
+ ## [4.2.18] - 2026-09-20
699
+
700
+ - Module-embed shell (T0-T4 of docs/ui-integration-repair-plan.md): the Control
701
+ Center UI now embeds the Agent Terminal (:5760) and vector-hub console
702
+ (:8787) as original UIs behind a same-origin proxy (`/api/terminal/*`,
703
+ `/api/vectorhub/*`). Project import registers both modules (wiring table in
704
+ project state); the sidebar aggregates module registrations with per-project
705
+ session history (kb:list-sessions / kb:open-session) — session lifecycle
706
+ (archive/restore) belongs to the terminal module only, the shell keeps a
707
+ read-only projection; per-module sidebar fold toggles on the nav buttons
708
+ (kb:sidebar); project selection drives both modules (kb:select-project)
709
+ with live linkage chips.
710
+ Settings drawer is now 开发对话/日志 only (model settings live in the
711
+ terminal UI). Module removal keeps local knowledge and terminal session
712
+ records (upstream `removeProject?keepSessions=1`). Optional module service
713
+ supervision behind `KB_MODULES_AUTOSTART=1`. Old workbench chat panel and
714
+ its UI tests retired; full suite 115/115 green.
715
+
716
+ ## [4.2.17] - 2026-08-25
717
+
718
+ - Recognized a healthy Project Knowledge fan-out nested inside Codex Desktop's
719
+ computer-use `--previous-notify` wrapper. Integration status and one-click
720
+ repair no longer report a false third-party conflict or attempt to wrap the
721
+ notifier again.
722
+
723
+ ## [4.2.16] - 2026-08-25
724
+
725
+ - Upgraded AI Coding Event Bridge to 0.1.2 so one Codex task can be captured
726
+ across every continuation rollout. Existing single-file cursors migrate in
727
+ place without replaying consumed history, and real nested turn identities
728
+ keep commentary and final responses attached to the correct user prompt.
729
+ - Added a joint Codex / Claude Code / OpenCode restart-and-recovery gate that
730
+ verifies durable capture, control-message exclusion, exact workspace
731
+ attribution, turn grouping, and duplicate-notification idempotency.
732
+ - Kept Windows CDP failure tests fast and reliable by restricting detached
733
+ profile cleanup to actual Chrome/Edge launchers.
734
+
735
+ ## [4.2.15] - 2026-08-25
736
+
737
+ - Repaired Codex Development Conversation turns without rewriting durable
738
+ history: generated control/context records are excluded, orphan assistant
739
+ responses are projected onto the correct user turn within the same session,
740
+ and stale open-turn facts no longer duplicate commit associations.
741
+ - Removed synthetic empty-user and pending-assistant UI messages, with focused
742
+ projection, binding, API, and real-history regression coverage.
743
+
744
+ ## [4.2.14] - 2026-08-25
745
+
746
+ - Recovered commit analysis safely after a server restart by making leftover
747
+ claims terminal without running startup analysis or replaying historical or
748
+ offline commits; the next explicit Git Hook event processes only its own SHA.
749
+ - Restored v4.1.21 Claude Workbench history through the migrated project's
750
+ legacy slug while preserving the original session files and preferring the
751
+ canonical runtime record on duplicate session IDs.
752
+ - Restored historical session selection and live Commit automation visibility
753
+ in the Claude Code UI, including prompts, thinking, tools, permissions,
754
+ retries, results, stop controls, and real browser regression coverage.
755
+
756
+ ## [4.2.13] - 2026-08-25
757
+
758
+ - Restored the globally installed web UI by including `ui/i18n.js` in the
759
+ npm package; a missing or incomplete localization runtime can no longer
760
+ abort project, AI profile, Knowledge Root, and conversation loading.
761
+ - Added package-asset closure validation plus a real
762
+ `npm pack -> npm install -> server -> Chrome` release smoke test, so CI
763
+ rejects tarballs whose UI differs from the tested source tree.
764
+
765
+ ## [4.2.9] - 2026-08-24
766
+
767
+ - Made persisted UI-language selection fully reliable across page reloads and
768
+ slower browser runners: translated labels now re-render, and the document
769
+ language is initialized from the saved preference.
770
+
771
+ ## [4.2.8] - 2026-08-24
772
+
773
+ - Fixed release metadata drift by deriving plugin manifests, marketplace
774
+ metadata, MCP package pins, and both lockfiles from the root package
775
+ version during the standard npm version lifecycle.
776
+ - Added release and tag-version guards to CI and the npm publishing workflow,
777
+ so a mismatched release is rejected before packaging or publishing.
778
+ - Stabilized Windows browser E2E tests by handling Chrome launcher detachment
779
+ and cleaning every test-specific Chrome process by its isolated profile.
780
+
781
+ ## [4.2.7] - 2026-08-24
782
+
783
+ - Made runtime data migration fail closed: existing legacy data is now
784
+ discovered and relocated safely, migration failures prevent startup,
785
+ and settings-only legacy data is preserved instead of being treated as
786
+ a fresh install.
787
+ - Restricted Knowledge Analysis to explicit post-commit hook events.
788
+ Startup, bridge synchronization, historical catch-up, and offline
789
+ commits no longer trigger implicit analysis.
790
+ - Preserved conversation and commit-boundary facts across offline periods
791
+ without allowing those facts to contaminate a later online commit.
792
+
793
+ ## [4.2.6] - 2026-08-20
794
+
795
+ - Hotfix for the v4.2.5 commit-reconciler regression: the post-batch
796
+ re-scan was unconditionally writing `analysis.status='idle'` even
797
+ after a successful batch of commits, clobbering the
798
+ `'state.advanced'` value that `advanceState()` had just set. The CI
799
+ suite surfaced this on a fast runner where the test's state read
800
+ raced ahead of the trailing re-scan; on slower machines the bug
801
+ passed silently. runSweep() now only marks `'idle'` when this call
802
+ never processed any commits, leaving a freshly-promoted batch's
803
+ `state.advanced` visible to the UI.
804
+ - Bumped `plugins/project-knowledge/.mcp.json` from
805
+ `project-knowledge@4.2.4` to `project-knowledge@4.2.6` so the
806
+ integration-adapters MCP-pin assertion matches the package version.
807
+ (The v4.2.5 release had bumped everything except this MCP pin.)
808
+
809
+ 105 root + 2 desktop tests pass.
810
+
811
+ ## [4.2.5] - 2026-08-20
812
+
813
+ - Restored the v4.1.22 → v4.2.x product contract that the recent
814
+ refactor had broken. The shared ` `resolveEffectiveAiProfile` resolver
815
+ is the single source of truth for "which AI profile does this project
816
+ use right now" (project → default → first-usable → AI_PROFILE_REQUIRED),
817
+ and the Workbench / analyzer / CommitReconciler paths no longer
818
+ carry their own drift-prone fallback logic.
819
+ - Hook runtime: post-commit hooks now prefix `ELECTRON_RUN_AS_NODE=1`
820
+ in the shell body so a packaged Desktop install no longer tries to
821
+ launch the Electron GUI from a Git hook invocation. Node ignores the
822
+ env var so CLI installs are unaffected.
823
+ - Hook migration state machine: a missing legacy hook is no longer
824
+ silently marked migrationVersion=2. The new state machine only
825
+ advances migrationVersion when install + readback verify succeed,
826
+ persists third-party conflicts in state.hook.lastConflict for UI
827
+ consumption, and reports status=verified|conflict|pending|failed per
828
+ project.
829
+ - Hook health API: GET /api/projects/:id/hook-status and POST
830
+ /api/projects/:id/hook-repair expose every required field
831
+ (installed / managed / managedVersion / runtimeTarget / lastVerifiedAt
832
+ / conflict / reason / repairAvailable) and refuse to overwrite
833
+ third-party hooks.
834
+ - Import UX: a new preflight endpoint and UI flow (Desktop folder
835
+ picker, knowledge language selector, AI profile selector, optional
836
+ Team Knowledge binding, per-problem action hints, auto preflight on
837
+ every input change, Import button stays disabled until ready=true)
838
+ replace the path-only dialog.
839
+ - Knowledge language control: import + per-project PATCH both accept
840
+ knowledgeLanguage; changing it affects only future generated
841
+ knowledge, never historical files.
842
+ - Project Goal editor: GET/PUT /api/projects/:id/goal atomically reads
843
+ and writes the project's GOAL.md, scoped to its own knowledgePath.
844
+ - UI language toggle (zh-CN / en-US) persists in localStorage and
845
+ re-renders the most-visible labels without a reload.
846
+ - P0 E2E gate proves the four primary contract scenarios (fresh /
847
+ legacy / offline / no-conversation) against the live server.
848
+ 105 root + 2 desktop tests pass; the G00–G08 acceptance gates are
849
+ green.
850
+
851
+ ## [4.2.4] - 2026-08-20
852
+
853
+ - Fixed the Bridge consumer never receiving connector wake-ups on a fresh
854
+ install: `BridgeConsumerService.start(notifyUrl)` ignored its argument, so
855
+ the `project-knowledge` consumer registered with empty metadata. Captured
856
+ conversations piled up in the journal until the next server restart instead
857
+ of appearing in Development Conversation immediately. The wake-up URL now
858
+ lands in the consumer registration and drains fire per event.
859
+ - Projects imported before v4.2.3 (no canonical `repo-identity/v1`) are
860
+ upgraded automatically: on the first consumer drain after updating, each
861
+ legacy project with an existing repository path gets its workspace identity
862
+ resolved and persisted, its conversation baseline established, and its
863
+ external conversations start projecting — no manual migration step. A
864
+ workspace already claimed by another project is never written twice.
865
+ - The Bridge dependency now resolves to `@sanqianx/ai-coding-event-bridge`
866
+ 0.1.1, which accepts Claude Code's real `hook_event_name` payload field
867
+ (previously such payloads were misrouted to the Codex connector and lost as
868
+ capture gaps).
869
+
870
+ ## [4.2.3] - 2026-08-20
871
+
872
+ - Development Conversation now captures real external Claude Code / Codex /
873
+ OpenCode sessions through `ai-coding-event-bridge` (repo-identity/v1 with
874
+ workspaceId as the primary key, durable Bridge-owned turn identity, and
875
+ exact-workspace project matching — unimported workspaces are skipped and
876
+ ACKed, never written into another project).
877
+ - The internal Workbench capture path was removed: sending a Workbench chat
878
+ message no longer records requirements or conversation events (explicit
879
+ `record_requirement` still works), every internal SDK session runs with
880
+ `AI_CODING_EVENT_BRIDGE_CAPTURE=0`, and legacy embedded Workbench pairs are
881
+ excluded from presentation and new commit binding via
882
+ `conversation-exclusions/v1` without rewriting history.
883
+ - Commit conversation snapshots are frozen strictly after
884
+ append-boundary -> drainThrough: no event beyond `boundaryEndCursor`
885
+ (assistant replies included) can enter a snapshot, and imports establish a
886
+ conversation baseline so pre-import history is never backfilled.
887
+ - One Integration Setup action installs Knowledge Integration and Development
888
+ Capture for Claude Code / Codex / OpenCode with separate status reporting,
889
+ third-party config preservation, Codex notify conflict detection, and a
890
+ host-level Bridge consumer that survives per-connector uninstalls; new
891
+ `/api/bridge/*` and `/api/integrations/*` endpoints expose capture health.
892
+ - Windows CI browser tests now fail fast: CDP launch failures clean up the
893
+ spawned browser tree and profile directory, report exit/stderr diagnostics,
894
+ use a dynamically discovered DevTools port with per-request timeouts, and
895
+ the test runner reports `TIMEOUT` explicitly under a configurable budget
896
+ (`PK_TEST_TIMEOUT_MS`, default 90s) instead of hanging for 300 seconds.
897
+
898
+ ## [4.2.2] - 2026-08-19
899
+
900
+ - Rebuilt the web Control Center visual layer to faithfully match the v13
901
+ reference design (`project-knowledge-base-faithful-repair-ui-v10.html`):
902
+ sidebar brand block with the knowledge root path, multi-line project cards
903
+ (name, id, repository path, status dot) with right-click removal, the
904
+ in-main-area header, full-height Workbench panel with chat bubbles, tool
905
+ cards, circular send button and composer toolbar, the reference design
906
+ tokens including the complete dark theme, and responsive breakpoints.
907
+ - Restored the reference Settings drawer structure with separate AI model
908
+ editing (add/save profiles via the API), project model assignment,
909
+ knowledge relations, mature development-conversation turn cards with
910
+ commit labels, and the V7 run-records list geometry.
911
+ - Import view now shows the reference split layout with a post-import
912
+ placement preview; UI contract tests were updated to the reference DOM.
913
+
914
+ ## [4.2.1] - 2026-08-19
915
+
916
+ - Fixed the legacy layout migration failing with `Legacy migration source
917
+ JSON is corrupt` (and the server refusing to start) when any legacy source
918
+ file carries a UTF-8 BOM, which PowerShell and several editors commonly
919
+ write. BOM-prefixed sources are now parsed normally.
920
+
921
+ ## [4.2.0] - 2026-08-19
922
+
923
+ - Completed the v13 refactor: conversation capture contracts, atomic Bridge
924
+ commit boundaries with capture-gap persistence, and frozen
925
+ `CommitConversationSnapshot` binding so post-commit prompts never bind to
926
+ old commits and claims freeze their analyzer evidence.
927
+ - Replaced `patch:null` handling for large diffs with an exact, hash-verified
928
+ patch chunk evidence bundle; commit analysis now carries frozen evidence,
929
+ retrieval, and conversation manifests end to end.
930
+ - Unified user search and commit context selection into one
931
+ `KnowledgeRetrievalService` (hybrid recall, deterministic rerank, chunk
932
+ budgets) with an index source manifest and a Markdown delta overlay so
933
+ fresh knowledge is visible while the derived index is dirty.
934
+ - Logging is now permanent per-day JSONL under `logs/system` and
935
+ `logs/projects/<id>` with reverse-chunk cursors, SSE streaming without
936
+ gaps, and immutable capture policy (no retention/capacity settings).
937
+ - Background work registers per operation with one root `operationId`
938
+ propagated across HTTP, Hook, startup, and reconciler logs, and shutdown
939
+ drains every registered task.
940
+ - Project delete is transactional with a journal, tombstone, and per-stage
941
+ recovery; migration no longer converts legacy logging knobs into settings.
942
+ - Restored the full Control Center web shell (Workbench, Import, Settings)
943
+ with a mature run-records log view and a read-only development-conversation
944
+ page driven by frozen commit snapshots; logs left the standalone console.
945
+ - Added non-release CI (Linux Node 18/24, Windows Node 24) for every push;
946
+ desktop packaging validation is paused for this web-only cycle.
947
+
948
+ ## [4.1.23] - 2026-08-17
949
+
950
+ - Replaced legacy whole-registry project state with schema-v2 settings, a
951
+ minimal project registry, stable per-project config/state, and locked
952
+ requirement JSONL records under one canonical `StorageLayout`.
953
+ - Reduced knowledge analysis to the managed post-commit Hook and startup
954
+ recovery, both routed through one per-project reconciler and one Commit
955
+ prompt. Import now establishes a baseline without AI or placeholder files.
956
+ - Added manifest-validated AI staging, journaled Markdown promotion, crash
957
+ recovery, dirty-index semantics, and a single serialized `IndexService` for
958
+ incremental writes and atomic full rebuilds.
959
+ - Rebuilt logging around six-level `log/v2` JSONL records, recursive secret
960
+ redaction, daily/size rotation, retention/capacity cleanup, cursor queries,
961
+ exports, health state, and orphaned-operation detection.
962
+ - Replaced the duplicate dashboard implementations with one responsive
963
+ light/dark logging console, including operation flows, structured error
964
+ details, pause/refresh, filtering, cursor pagination, and export.
965
+ - Unified server, CLI, MCP, Hook, index, and project path resolution. Read-only
966
+ knowledge search falls back to scoped Markdown when the derived index is
967
+ dirty or unavailable.
968
+ - Added staged `layout-v2` migration with centralized recovery backups,
969
+ source/hash validation, last-step completion, fault recovery, and preservation
970
+ of legacy paths, secrets, Commit pointers, indexes, and logs.
971
+ - Hardened the API by removing wildcard CORS, raw-file access, generic project
972
+ replacement, manual Hook/analysis routes, and stack responses; non-loopback
973
+ binding now requires authentication and Origin validation.
974
+ - Removed CLAUDE.md management, the second automation queue, configurable log
975
+ and index locations, legacy direct database writers, and unused Vue/Tailwind
976
+ browser runtimes.
977
+ - Added Windows end-to-end coverage for online Hook processing, offline Commit
978
+ catch-up, requirement binding, promotion/index completion, structured log
979
+ chains, paths with spaces/non-ASCII text, and immediate recovery of locks
980
+ owned by a crashed process.
981
+ - Hardened release packaging by explicitly mirroring core runtime dependencies
982
+ into the Electron app and allowlisting shipped documentation, preventing
983
+ local review artifacts from leaking into npm or desktop packages.
984
+
985
+ ## [4.1.22] - 2026-07-27
986
+
987
+ - Added a read-only `project-knowledge-mcp` server for OpenCode, Codex, and
988
+ other MCP-compatible coding agents. It resolves the current Git project,
989
+ exposes scoped search/ask/get/history tools, and includes the search-first
990
+ workflow without depending on `CLAUDE.md`.
991
+ - Added a safe keyword-search fallback for legacy Markdown knowledge bases and
992
+ kept routine knowledge writes exclusively in post-commit automation.
993
+ - Added a shared Claude Code/Codex plugin with MCP configuration and a
994
+ search-first `project-knowledge` Skill, plus a native Claude marketplace and
995
+ Codex marketplace manifest.
996
+ - Added an OpenCode adapter and a universal, idempotent integration manager for
997
+ installation, updates, removal, dry-runs, and status checks across Claude
998
+ Code, OpenCode, and Codex.
999
+
1000
+ ## [4.1.21] - 2026-07-27
1001
+
1002
+ - Fixed Windows desktop Claude sessions failing with “executable exists but
1003
+ failed to launch” when a global Claude Code installation exposes `cli.js`
1004
+ but `node` is unavailable in the desktop process PATH. JavaScript Claude
1005
+ entry points now use the application's own Node/Electron runtime.
1006
+ - Added slow-backend and packaged-client regressions covering desktop startup
1007
+ readiness and Claude script launch through the installed Windows executable.
1008
+
1009
+ ## [4.1.20] - 2026-07-27
1010
+
1011
+ - Rebuilt the daily workspace around Claude Code while keeping GitHub/Gitea
1012
+ sign-in, project import, AI setup, project knowledge relations, knowledge
1013
+ storage, embedding model setup, logs, and desktop updates available from one
1014
+ settings drawer.
1015
+ - Moved project removal to a right-click project-list action with confirmation.
1016
+ Projects with a running Claude session or queued automation task now cannot
1017
+ be removed.
1018
+
1019
+ ## [4.1.19] - 2026-07-24
1020
+
1021
+ - Stabilized release tests: expected EventSource cancellation during a page
1022
+ reload is no longer treated as a failed request, and the Windows CLAUDE.md
1023
+ refresh test no longer removes a just-used temporary server directory.
1024
+
1025
+ ## [4.1.18] - 2026-07-23
1026
+
1027
+ - Simplified the daily workspace into a full-width Claude Code interface.
1028
+ - Removed the project-supervision summary, pending-commit and issue panels,
1029
+ dashboard status/goal cards, and manual automation preview/simulation UI.
1030
+
1031
+ ## [4.1.17] - 2026-07-23
1032
+
1033
+ - Rebuilt commit-triggered knowledge automation around persistent per-commit
1034
+ state, ordered recovery, and exactly one AI task per Git commit.
1035
+ - Removed manual draft review, auto-apply controls, and scheduled-task paths;
1036
+ generated knowledge is now written directly through the automated pipeline.
1037
+
1038
+ ## [4.1.16] - 2026-07-22
1039
+
1040
+ - Fixed the desktop client timing out / hanging on the loading screen for large
1041
+ knowledge bases (many projects, multi-GB DB) while the web dashboard opened
1042
+ fine. Root cause was several compounding issues:
1043
+ - Desktop startup probe was too impatient: raised the per-request `/api/state`
1044
+ timeout (1.5 s → 30 s) and the overall backend-ready budgets (owned backend
1045
+ 45 s → 180 s, existing backend 20 s → 60 s) so it waits like a browser does.
1046
+ - Server startup no longer blocks the event loop: the CLAUDE.md audit and
1047
+ orphaned-run cleanup now run in `setImmediate`, so `/api/state` can answer
1048
+ immediately after `listen()`.
1049
+ - `getScheduleInfo()` (which spawns `schtasks`) is now cached for 5 s so
1050
+ repeated `/api/state` hits don't each pay process-spawn latency.
1051
+ - `isProcessAlive` now treats `EPERM` as alive, so a running backend's
1052
+ runtime-endpoint file is no longer deleted (and a duplicate cold-started)
1053
+ when the desktop and CLI run at different privilege levels on Windows.
1054
+ - The dashboard now retries the initial connection every 3 s until it first
1055
+ succeeds, instead of waiting up to 60 s, so a slow-starting backend no
1056
+ longer leaves the page spinning.
1057
+ - Stopped the knowledge-storage relocation from logging
1058
+ `target ... is not empty` on every startup: relocation is now skipped (with a
1059
+ single warning) when the configured storage directory already holds unrelated
1060
+ content, and the existing storage location keeps being used.
1061
+
1062
+ ## [4.1.15] - 2026-07-21
1063
+
1064
+ - Replaced the dashboard's fixed-interval polling with a server-sent-events
1065
+ (SSE) push model. The backend now emits a `state/changed` event over a new
1066
+ `/api/state-stream` channel whenever project state is written or a job
1067
+ starts/finishes, and the frontend refreshes only in response (300 ms
1068
+ debounced). A slow 60 s poll remains as a fallback. Result: changes such as
1069
+ the sidebar pending count and summary cards update within ~1-2 s of the
1070
+ per-commit analysis cycle, while an idle dashboard makes almost no requests
1071
+ instead of hitting the server every 5 s.
1072
+
1073
+ ## [4.1.14] - 2026-07-21
1074
+
1075
+ - Fixed `runCommitAnalysis` to mutate the projects map entry directly
1076
+ (`projects[slug].lastAnalyzedCommit`) instead of a copy. The v4.1.11
1077
+ one-by-one refactor accepted `project = { slug, ...projects[slug],
1078
+ kbPath }`, so `project.lastAnalyzedCommit = ...` mutated a throwaway
1079
+ copy and the `writeProjects` callback persisted the unchanged value.
1080
+ Symptom: the "待分析" count never decreases after analysis; the
1081
+ pending count appears stuck or oscillates between runs because the
1082
+ scan counter and the manual analysis counter diverge.
1083
+
1084
+ ## [4.1.13] - 2026-07-21
1085
+
1086
+ - Bumped the GitHub OAuth HTTP timeout from 20s to 30s in
1087
+ `requestJson` and `requestFormJson` (github-team-store.js) and made
1088
+ the timeout error message actionable: it now names the host that
1089
+ failed and suggests using a Personal Access Token as a workaround
1090
+ when GitHub is unreachable from the host network.
1091
+
1092
+ ## [4.1.12] - 2026-07-21
1093
+
1094
+ - Hid the "Runs / Drafts" sidebar nav entry. All registered projects
1095
+ use `knowledgeMode: autoApply` so manual review is not part of the
1096
+ workflow; the runs view itself is preserved for programmatic access
1097
+ (uncomment the one line in `navItems` to restore the button).
1098
+
1099
+ ## [4.1.11] - 2026-07-21
1100
+
1101
+ - Refactored `runCommitAnalysis` from batch to one-by-one: each pending
1102
+ commit now gets its own run record and its own draft, analyzed in
1103
+ chronological order (FIFO). After every successful single-commit
1104
+ run, `project.lastAnalyzedCommit` advances to that commit's hash so
1105
+ the "待分析" count drops by one per analysis, matching the UI label.
1106
+ Previously a 10-commit batch produced 1 run + 10 drafts and the
1107
+ pending count did not decrease until the user clicked Apply (which
1108
+ could also advance the checkpoint past commits the user had not
1109
+ actually applied drafts for).
1110
+
1111
+ ## [4.1.10] - 2026-07-21
1112
+
1113
+ - Made startup-recovery's staging copy (`prepareKnowledgeWorkspace`) and
1114
+ Claude-executable lookup (`findClaudeExecutableForSdk`) asynchronous
1115
+ so the server's HTTP handlers (notably `/api/state`) stay responsive
1116
+ while pending-commit workers are being dispatched. Previously the
1117
+ desktop client would time out with `backend request timed out` when
1118
+ several projects had pending commits on startup, because the sync
1119
+ `fs.cpSync` and `spawnSync` calls were freezing the event loop for
1120
+ several seconds during `/api/state` polling.
1121
+
1122
+ ## [4.1.9] - 2026-07-21
1123
+
1124
+ - Refused to import or upsert a project whose `kbPath` resolves to the
1125
+ same directory as `gitPath` / `localPath`. Writing the knowledge base
1126
+ inside the source tree pollutes the repo (and trips Windows symlink
1127
+ errors in the staging workspace), so both entry points now return 400.
1128
+
1129
+ ## [4.1.8] - 2026-07-21
1130
+
1131
+ - Stopped the post-commit automation worker from being auto-paused when a
1132
+ user aborts the Claude session in the terminal. Pending commits queued
1133
+ before the abort are now picked up again on the next desktop launch.
1134
+
1135
+ ## [4.1.7] - 2026-07-19
1136
+
1137
+ - Restored GitHub and Gitea login in the Windows desktop client through an
1138
+ acknowledged Electron bridge that opens OAuth pages in the system browser.
1139
+ Browser launch failures are now reported immediately instead of appearing
1140
+ later as an authorization timeout.
1141
+ - Added support for HTTP authorization URLs used by private, intranet Gitea
1142
+ installations while continuing to reject local-file and script URLs at the
1143
+ desktop security boundary.
1144
+ - Forwarded Electron's Windows system-proxy resolution to the backend and made
1145
+ GitHub OAuth plus remote repository discovery proxy-aware, while preserving
1146
+ loopback and `NO_PROXY` bypasses for private Gitea installations.
1147
+ - Verified the full team-knowledge path after desktop migration: GitHub device
1148
+ authorization, Gitea callback/token persistence, remote repository scanning,
1149
+ manifest discovery, cached store loading, and team knowledge-base binding.
1150
+ - Added desktop bridge/security regressions and an end-to-end Gitea OAuth plus
1151
+ remote team-store discovery test.
1152
+
1153
+ ## [4.1.6] - 2026-07-19
1154
+
1155
+ - Replaced overlapping post-commit batches with a single per-project worker
1156
+ that treats Git history as the durable queue. Live hooks and desktop startup
1157
+ recovery now use the same path and process exactly one commit at a time,
1158
+ strictly from oldest to newest.
1159
+ - Preserved the original knowledge contract: every analyzed commit must create
1160
+ an independent `changes/` Markdown record containing its full hash, including
1161
+ test-only, documentation, and infrastructure commits.
1162
+ - Added transactional knowledge workspaces. Claude edits a temporary KB copy;
1163
+ validated Markdown is applied to the live KB only after the session succeeds,
1164
+ and LanceDB must finish before `lastAnalyzedCommit` advances.
1165
+ - Added resumable vector finalization and automatic startup recovery. Index
1166
+ failures retry without rerunning Claude or duplicating Markdown, while an
1167
+ interrupted desktop session resumes from the oldest unfinished commit.
1168
+ - Made Stop pause the project's automatic commit worker, discard uncommitted
1169
+ staged knowledge, and prevent queued work from immediately restarting. The
1170
+ Claude Code UI now provides a dedicated Resume automatic analysis action.
1171
+ - Added end-to-end regressions for duplicate Hook delivery, strict commit order,
1172
+ per-commit changes records, staged Markdown, abort behavior, and vector-index
1173
+ recovery. The complete core suite now contains 53 passing test files.
1174
+
1175
+ ## [4.1.5] - 2026-07-19
1176
+
1177
+ - Added a desktop-client card in Settings that always shows the installed
1178
+ application version and provides Check for updates / Restart and install
1179
+ actions without opening a browser.
1180
+ - Integrated Electron's Squirrel updater with a stable GitHub Latest Release
1181
+ feed. Release automation now uploads `RELEASES` and the full `.nupkg` beside
1182
+ the installer so future desktop versions download and install in-app.
1183
+ - Hardened the PowerShell folder-picker fallback: scripts are unpacked from the
1184
+ desktop ASAR, stdout uses UTF-8, and only an existing absolute directory can
1185
+ be returned. PowerShell banners and error text can never populate a path
1186
+ field.
1187
+ - Added updater lifecycle and folder-output regressions, bringing the complete
1188
+ core suite to 52 passing test files while retaining the native Electron
1189
+ folder dialog introduced in 4.1.4.
1190
+
1191
+ ## [4.1.4] - 2026-07-19
1192
+
1193
+ - Fixed Windows Claude Code discovery so extensionless npm shell shims and
1194
+ command wrappers are never passed to the Agent SDK. The resolver now prefers
1195
+ the installed package's native `bin/claude.exe` and retains `cli.js` only as
1196
+ a legacy fallback.
1197
+ - Changed the post-commit Hook endpoint to acknowledge valid events with HTTP
1198
+ 202 before commit inspection and Claude startup. Dispatch continues in the
1199
+ background, while the Hook accepts every successful 2xx response instead of
1200
+ recording a false timeout/error after a run was already created.
1201
+ - Restored both desktop directory-selection flows with a narrow Electron IPC
1202
+ bridge and native directory dialog. Project import and Team Knowledge folder
1203
+ selection no longer execute a PowerShell script from inside the packaged
1204
+ ASAR or mistake PowerShell banner text for a selected path.
1205
+
1206
+ ## [4.1.3] - 2026-07-19
1207
+
1208
+ - Removed the bundled 218 MiB Claude Code executable from the Windows desktop
1209
+ application. The small Agent SDK control layer now discovers the user's
1210
+ installed Claude Code through `CLAUDE_CODE_EXECPATH`, `PATH`, or the npm
1211
+ global installation and reports a clear error without disabling knowledge
1212
+ management when Claude Code is unavailable.
1213
+ - Removed LanceDB's unused optional embedding-provider stack and its duplicate
1214
+ Transformers.js 3.0.2 / ONNX Runtime 1.19.2 dependency tree while retaining
1215
+ the application's supported Transformers.js 3.8.1 embedding service.
1216
+ - Pruned non-Windows and non-x64 ONNX binaries, browser-only ONNX Web runtimes,
1217
+ Transformers browser builds, source maps, and unused platform packages from
1218
+ the Windows x64 bundle.
1219
+ - Added packaged runtime probes for LanceDB, Transformers.js, ONNX Runtime, and
1220
+ the real 512-dimensional `bge-small-zh-v1.5` embedding model, plus release
1221
+ size auditing that rejects bundled Claude binaries, duplicate runtimes, and
1222
+ oversized artifacts.
1223
+ - Reduced the measured Windows installer from 476.0 MiB to 221.1 MiB and the
1224
+ installed application bundle from 1,491.1 MiB to 617.5 MiB without changing
1225
+ existing model caches, Markdown sources, LanceDB data, or storage paths.
1226
+
1227
+ ## [4.1.2] - 2026-07-16
1228
+
1229
+ - Made the desktop dependency lock reproducible under the newer npm version on
1230
+ GitHub's Windows runner by explicitly locking the encoding compatibility
1231
+ dependency used by the packaging tree.
1232
+ - Made the desktop release workflow fail immediately when a native npm command
1233
+ fails instead of allowing PowerShell to continue into a misleading later
1234
+ step.
1235
+
1236
+ ## [4.1.1] - 2026-07-16
1237
+
1238
+ - Fixed Windows GitHub Actions browser discovery for the `windows-2025`
1239
+ runner by detecting system-level Chrome and Microsoft Edge installations.
1240
+ - Restored the release gate for all three real-browser UI suites so the
1241
+ Windows desktop installer can be built, smoke-tested, and uploaded only
1242
+ after the complete 50-file core regression suite passes.
1243
+
1244
+ ## [4.1.0] - 2026-07-16
1245
+
1246
+ - Added a Windows x64 Electron desktop application and Squirrel installer that
1247
+ reuse the existing configuration, configured knowledge root, model cache,
1248
+ Markdown sources, Team Knowledge Mode, and LanceDB without copying or
1249
+ re-vectorizing user data.
1250
+ - Added single-instance and system-tray lifecycle behavior: closing the window
1251
+ keeps Git hooks available, while an explicit tray Quit stops only a backend
1252
+ owned by the desktop application.
1253
+ - Added an atomic, local-only runtime endpoint record so CLI, desktop, and
1254
+ existing Git hooks discover the active fallback port dynamically and never
1255
+ open competing LanceDB writers.
1256
+ - Made the desktop application safely attach to an already-running npm CLI and
1257
+ leave that external backend alive when the desktop window exits.
1258
+ - Added hardened Electron navigation, context isolation, sandboxing, denied
1259
+ permission requests, bounded desktop backend logs, Squirrel lifecycle event
1260
+ handling, and explicit native-module ASAR unpacking.
1261
+ - Added Windows release automation that runs all 50 core regression files,
1262
+ desktop unit tests, a packaged EXE/API smoke test, and packaged LanceDB native
1263
+ read/write tests before uploading the installer and SHA-256 to GitHub
1264
+ Releases. The existing npm provenance publish workflow remains unchanged.
1265
+
1266
+ ## [4.0.4] - 2026-07-16
1267
+
1268
+ - Added a Settings-based Markdown knowledge health audit for every registered
1269
+ personal and team knowledge base, with per-project file size, deterministic
1270
+ fixes, structural errors, and semantic-review findings.
1271
+ - Added safe batch or per-project optimization with retained backups under the
1272
+ configured knowledge root, atomic writes, formatting repair, compact index
1273
+ regeneration, and automatic LanceDB refresh for migrated projects.
1274
+ - Reduced generated change indexes to the latest 40 entries with bounded cells
1275
+ and generated-file markers; a real 125 KiB legacy index now rebuilds to about
1276
+ 9 KiB without deleting its source change documents.
1277
+ - Prevented background AI automation from writing `00-index.md`, injected
1278
+ mandatory in-place-update hygiene rules even for custom prompts, and rebuilt
1279
+ compatibility indexes after every successful automatic update.
1280
+ - Preserved Team Knowledge Mode by de-duplicating shared physical KB paths
1281
+ during maintenance while refreshing every aliased vector space.
1282
+ - Expanded the complete regression suite to 48 passing test files.
1283
+
1284
+ ## [4.0.3] - 2026-07-15
1285
+
1286
+ - Added an embedding-model setup panel with one-click download and real
1287
+ inference verification, configurable Hugging Face endpoint/mirror, local
1288
+ model directory, offline mode, and copyable PowerShell environment-variable
1289
+ examples.
1290
+ - Stop a migration batch before changing any project when the shared embedding
1291
+ model cannot load, instead of reporting the same model failure once for every
1292
+ project.
1293
+ - Surface migration failures through a prominent settings panel, a one-time
1294
+ browser alert, detailed per-project errors, and direct retry actions.
1295
+ - Persist model settings and verified download state while rejecting partial
1296
+ cache files or verification results from a different model configuration.
1297
+ - Expanded the complete regression suite to 46 passing test files.
1298
+
1299
+ ## [4.0.2] - 2026-07-15
1300
+
1301
+ - Store LanceDB, its maintenance metadata, and retained database backups under
1302
+ `<configured knowledge root>/.project-knowledge/` instead of a fixed app-data
1303
+ location.
1304
+ - Automatically relocate v4.0.0/v4.0.1 databases on startup to the knowledge
1305
+ root already selected in Settings.
1306
+ - Safely relocate and verify the database before saving a changed knowledge
1307
+ root, including cross-volume copies, target-conflict protection, and retained
1308
+ backup path rebasing.
1309
+ - Display the effective vector database path directly below the Knowledge Store
1310
+ root setting.
1311
+ - Expanded the complete regression suite to 45 passing test files, including
1312
+ real LanceDB startup and live root-change relocation tests.
1313
+
1314
+ ## [4.0.1] - 2026-07-15
1315
+
1316
+ - Excluded generated `00-index.md` files from embedding and removed stale
1317
+ derived-index rows while retaining the Markdown files for legacy and Team
1318
+ Knowledge Mode compatibility.
1319
+ - Replaced unbounded Tags and change lists in generated Markdown indexes with
1320
+ compact, capped navigation metadata; all module links remain available.
1321
+ - Stopped running LanceDB compaction after every commit. Maintenance now runs
1322
+ only after bounded mutation thresholds and never rewrites the oversized
1323
+ v4.0.0 full-text index in place.
1324
+ - Added a compact full-text schema that indexes `chunk_text` once with Chinese
1325
+ bigrams instead of storing and indexing a second full document copy.
1326
+ - Added one-click, atomic database rebuilding with disk statistics, vector and
1327
+ keyword verification, optional retained backup, and manual rollback.
1328
+ - Added upgrade and regression coverage for old v4.0.0 databases; the complete
1329
+ suite now contains 43 passing test files.
1330
+
1331
+ ## [4.0.0] - 2026-07-15
1332
+
1333
+ - Added a local LanceDB knowledge store containing original text, metadata,
1334
+ and 512-dimensional `Xenova/bge-small-zh-v1.5` embeddings.
1335
+ - Added incremental Markdown indexing with heading-aware chunks, content-hash
1336
+ skips, stale-chunk deletion, Chinese n-gram/BM25 search, and hybrid RRF.
1337
+ - Added scoped `search`, `get`, `ask`, and `history` HTTP/CLI tools that return
1338
+ readable source text without exposing raw vectors.
1339
+ - Added explicit, bidirectional, non-transitive related-project search scopes;
1340
+ writes remain restricted to each project's primary space.
1341
+ - Preserved Team Knowledge Mode: Git remains the portable Markdown transport,
1342
+ stable team `kbId` values map to local spaces, and vectors stay local.
1343
+ - Added resumable one-click migration for all legacy KBs with backups,
1344
+ verification probes, per-project atomic cutover, retry, and rollback.
1345
+ - Centralized Claude Code instructions in one user-relative file and added a
1346
+ safe bulk refresh for all managed `CLAUDE.md` blocks independent of Hooks.
1347
+ - Enforced development-time read-only KB access; post-commit automation owns
1348
+ routine updates and re-indexes migrated projects after successful runs.
1349
+ - Added configurable mirrored/offline embedding model locations through
1350
+ `KB_EMBEDDING_REMOTE_HOST` and `KB_EMBEDDING_LOCAL_PATH`.
1351
+ - Expanded the regression suite to 41 test files.
1352
+
1353
+ ## [2.4.7] - 2026-07-01
1354
+
1355
+ - Initial public Apache-2.0 release of the local-first `project-knowledge`
1356
+ core.
1357
+ - Includes the CLI, local dashboard, Git scanner, project registry,
1358
+ knowledge-base workflow, AI profile support, prompt registry, templates,
1359
+ and regression tests.
1360
+ - Keeps runtime data, local project knowledge bases, API keys, generated AI
1361
+ drafts, logs, and local maintenance notes outside the public repository.