@sanqianx/project-knowledge 4.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +17 -0
- package/CHANGELOG.md +780 -0
- package/LICENSE +201 -0
- package/NOTICE +5 -0
- package/README.md +266 -0
- package/_site/README.md +30 -0
- package/_site/_test/ai-profile-resolver-test.js +137 -0
- package/_site/_test/ai-profile-test.js +75 -0
- package/_site/_test/ai-vendor-presets-test.js +91 -0
- package/_site/_test/automation-queue-test.js +14 -0
- package/_site/_test/automation-ui-test.js +40 -0
- package/_site/_test/background-task-registry-test.js +43 -0
- package/_site/_test/baseline-schema-test.js +91 -0
- package/_site/_test/bin-cli-test.js +218 -0
- package/_site/_test/bridge-adapter-test.js +95 -0
- package/_site/_test/bridge-consumer-service-test.js +310 -0
- package/_site/_test/cdp-browser-failure-test.js +100 -0
- package/_site/_test/chat-claudecodeui-match-test.js +92 -0
- package/_site/_test/claude-executable-discovery-test.js +90 -0
- package/_site/_test/claude-session-lifecycle-sweep-test.js +252 -0
- package/_site/_test/claude-workbench-test.js +170 -0
- package/_site/_test/client-capture-restart-e2e-test.js +189 -0
- package/_site/_test/codex-conversation-projection-test.js +59 -0
- package/_site/_test/codex-notify-fanout-test.js +45 -0
- package/_site/_test/commit-boundary-freeze-test.js +147 -0
- package/_site/_test/commit-conversation-binding-test.js +99 -0
- package/_site/_test/commit-evidence-test.js +110 -0
- package/_site/_test/context-pack-test.js +198 -0
- package/_site/_test/conversation-api-test.js +119 -0
- package/_site/_test/conversation-store-test.js +136 -0
- package/_site/_test/cross-repo-isolation-e2e-test.js +187 -0
- package/_site/_test/data-dir-migration-test.js +77 -0
- package/_site/_test/desktop-browser-compat-test.js +28 -0
- package/_site/_test/desktop-hook-runtime-regression-test.js +204 -0
- package/_site/_test/embedding-config-test.js +32 -0
- package/_site/_test/explicit-commit-processor-test.js +37 -0
- package/_site/_test/fixtures/fake-browser-exit.js +10 -0
- package/_site/_test/fixtures/fake-browser-hang.js +10 -0
- package/_site/_test/fixtures/make-git-repos.js +89 -0
- package/_site/_test/folder-picker-output-test.js +19 -0
- package/_site/_test/full-integration-e2e-test.js +165 -0
- package/_site/_test/git-validation-test.js +81 -0
- package/_site/_test/hook-runtime-endpoint-test.js +88 -0
- package/_site/_test/hook-status-repair-api-test.js +152 -0
- package/_site/_test/hook-trigger-test.js +85 -0
- package/_site/_test/hook-worktree-test.js +42 -0
- package/_site/_test/import-preflight-api-test.js +233 -0
- package/_site/_test/import-ui-flow-test.js +171 -0
- package/_site/_test/index-builder-test.js +41 -0
- package/_site/_test/index-writer-concurrency-test.js +135 -0
- package/_site/_test/integration-adapters-test.js +243 -0
- package/_site/_test/integration-capture-setup-test.js +108 -0
- package/_site/_test/integration-surface-coverage-test.js +165 -0
- package/_site/_test/kb-framework-test.js +57 -0
- package/_site/_test/kbpath-follow-test.js +63 -0
- package/_site/_test/knowledge-db-test.js +144 -0
- package/_site/_test/knowledge-language-control-test.js +170 -0
- package/_site/_test/knowledge-maintenance-test.js +40 -0
- package/_site/_test/knowledge-migration-test.js +75 -0
- package/_site/_test/knowledge-promotion-recovery-test.js +260 -0
- package/_site/_test/knowledge-query-test.js +54 -0
- package/_site/_test/knowledge-retrieval-service-test.js +77 -0
- package/_site/_test/knowledge-scopes-test.js +37 -0
- package/_site/_test/knowledge-storage-location-test.js +28 -0
- package/_site/_test/knowledge-storage-startup-test.js +52 -0
- package/_site/_test/knowledge-store-logs-supervision-test.js +89 -0
- package/_site/_test/legacy-claude-session-alias-test.js +106 -0
- package/_site/_test/legacy-forward-compat-test.js +257 -0
- package/_site/_test/legacy-project-upgrade-e2e-test.js +363 -0
- package/_site/_test/legacy-routes-removed-test.js +47 -0
- package/_site/_test/legacy-workbench-exclusion-test.js +92 -0
- package/_site/_test/log-redaction-test.js +58 -0
- package/_site/_test/logging-api-test.js +89 -0
- package/_site/_test/logging-sse-no-gap-test.js +88 -0
- package/_site/_test/logging-ui-test.js +104 -0
- package/_site/_test/markdown-delta-overlay-test.js +85 -0
- package/_site/_test/markdown-maintenance-api-test.js +75 -0
- package/_site/_test/markdown-maintenance-test.js +11 -0
- package/_site/_test/mcp-server-test.js +149 -0
- package/_site/_test/model-context-windows-test.js +89 -0
- package/_site/_test/module-bridge-eventbridge-test.js +193 -0
- package/_site/_test/non-release-ci-test.js +34 -0
- package/_site/_test/offline-boundary-isolation-test.js +32 -0
- package/_site/_test/orphaned-claim-recovery-test.js +80 -0
- package/_site/_test/p0-data-migration-characterization-test.js +37 -0
- package/_site/_test/p0-e2e-gate-test.js +347 -0
- package/_site/_test/package-boundary-test.js +42 -0
- package/_site/_test/package-startup-test.js +56 -0
- package/_site/_test/packaged-ui-smoke-test.js +79 -0
- package/_site/_test/path-consistency-test.js +151 -0
- package/_site/_test/pending-sweep-test.js +9 -0
- package/_site/_test/post-commit-automation-test.js +87 -0
- package/_site/_test/pr-consumer-contract-test.js +55 -0
- package/_site/_test/project-control-panel-task14-test.js +63 -0
- package/_site/_test/project-delete-recovery-test.js +64 -0
- package/_site/_test/project-goal-editor-test.js +145 -0
- package/_site/_test/project-layout-v2-migration-test.js +127 -0
- package/_site/_test/project-lifecycle-transaction-test.js +106 -0
- package/_site/_test/project-remove-running-guard-test.js +79 -0
- package/_site/_test/project-store-test.js +90 -0
- package/_site/_test/prompt-settings-test.js +115 -0
- package/_site/_test/protected-architecture-gate-test.js +123 -0
- package/_site/_test/refactor-characterization-test.js +36 -0
- package/_site/_test/release-version-sync-test.js +98 -0
- package/_site/_test/requirement-binding-test.js +113 -0
- package/_site/_test/requirement-recorder-test.js +173 -0
- package/_site/_test/run-all-tests.js +156 -0
- package/_site/_test/runtime-endpoint-test.js +64 -0
- package/_site/_test/scanner-test.js +83 -0
- package/_site/_test/server-runtime-migration-safety-test.js +27 -0
- package/_site/_test/server-security-test.js +96 -0
- package/_site/_test/sessions-stream-test.js +92 -0
- package/_site/_test/shared-contracts-test.js +58 -0
- package/_site/_test/simple-import-test.js +97 -0
- package/_site/_test/startup-analysis-disabled-test.js +16 -0
- package/_site/_test/storage-foundation-test.js +78 -0
- package/_site/_test/structured-logger-test.js +101 -0
- package/_site/_test/task15-20-ui-flow-test.js +148 -0
- package/_site/_test/team-knowledge-store-sparse-checkout-test.js +196 -0
- package/_site/_test/team-knowledge-store-test.js +131 -0
- package/_site/_test/tracking-start-test.js +143 -0
- package/_site/_test/ui-i18n-toggle-test.js +114 -0
- package/_site/_test/ui-smoke-test.js +73 -0
- package/_site/_test/v4122-upgrade-data-contract-test.js +56 -0
- package/_site/_test/workbench-permission-test.js +118 -0
- package/_site/_test/workspace-ui-contract-test.js +43 -0
- package/_site/lib/ai-profile-resolver.js +78 -0
- package/_site/lib/ai-vendor-presets.js +83 -0
- package/_site/lib/ai-workspace.js +104 -0
- package/_site/lib/atomic-file.js +204 -0
- package/_site/lib/automation-config.js +140 -0
- package/_site/lib/bridge-adapter.js +256 -0
- package/_site/lib/bridge-consumer-service.js +402 -0
- package/_site/lib/claude-cli-runner.js +1599 -0
- package/_site/lib/commit-conversation-binder.js +246 -0
- package/_site/lib/commit-processing-ledger.js +27 -0
- package/_site/lib/commit-prompt.js +202 -0
- package/_site/lib/commit-reconciler.js +444 -0
- package/_site/lib/context-pack-builder.js +299 -0
- package/_site/lib/contracts.js +279 -0
- package/_site/lib/conversation-exclusions.js +204 -0
- package/_site/lib/conversation-query-service.js +161 -0
- package/_site/lib/conversation-store.js +385 -0
- package/_site/lib/data-dir.js +81 -0
- package/_site/lib/data-state-classifier.js +40 -0
- package/_site/lib/embedding-service.js +85 -0
- package/_site/lib/evidence-bundle.js +228 -0
- package/_site/lib/folder-picker-output.js +24 -0
- package/_site/lib/git-runner.js +62 -0
- package/_site/lib/github-team-store.js +1175 -0
- package/_site/lib/hook-manager.js +202 -0
- package/_site/lib/index-builder.js +157 -0
- package/_site/lib/index-service.js +173 -0
- package/_site/lib/integration-installer.js +907 -0
- package/_site/lib/kb-framework.js +191 -0
- package/_site/lib/kb-validator.js +124 -0
- package/_site/lib/knowledge-db.js +363 -0
- package/_site/lib/knowledge-promotion.js +435 -0
- package/_site/lib/knowledge-retrieval-service.js +401 -0
- package/_site/lib/knowledge-schema.js +121 -0
- package/_site/lib/knowledge-tool-runtime.js +359 -0
- package/_site/lib/legacy-data-manifest.js +26 -0
- package/_site/lib/llm-client.js +173 -0
- package/_site/lib/markdown-knowledge-indexer.js +230 -0
- package/_site/lib/migration-service.js +442 -0
- package/_site/lib/model-context-windows.js +82 -0
- package/_site/lib/module-bridge.js +496 -0
- package/_site/lib/post-commit-automation.js +141 -0
- package/_site/lib/project-lifecycle-service.js +511 -0
- package/_site/lib/project-registry-store.js +129 -0
- package/_site/lib/project-store.js +262 -0
- package/_site/lib/prompt-registry.js +148 -0
- package/_site/lib/requirement-adapters.js +10 -0
- package/_site/lib/requirement-binder.js +112 -0
- package/_site/lib/requirement-recorder.js +278 -0
- package/_site/lib/runtime-endpoint.js +160 -0
- package/_site/lib/scanner.js +298 -0
- package/_site/lib/server-app.js +1520 -0
- package/_site/lib/settings-store.js +113 -0
- package/_site/lib/storage-layout.js +162 -0
- package/_site/lib/structured-logger.js +574 -0
- package/_site/scripts/codex-notify-fanout.cjs +51 -0
- package/_site/scripts/folder-picker.ps1 +156 -0
- package/_site/scripts/hook-trigger.js +156 -0
- package/_site/scripts/sync-release-version.js +158 -0
- package/_site/server.js +12 -0
- package/_site/start.bat +26 -0
- package/_site/stop.bat +11 -0
- package/bin/project-knowledge-integrations.js +241 -0
- package/bin/project-knowledge-kb.js +65 -0
- package/bin/project-knowledge-mcp.js +195 -0
- package/bin/project-knowledge.js +439 -0
- package/claude-prompts.json +21 -0
- package/docs/README.zh-CN.md +175 -0
- package/docs/assets/architecture.svg +182 -0
- package/docs/assets/dashboard.png +0 -0
- package/docs/assets/draft-review.png +0 -0
- package/docs/assets/logo.svg +50 -0
- package/docs/assets/runs-drafts.png +0 -0
- package/docs/assets/settings.png +0 -0
- package/docs/project-registry-schema.md +33 -0
- package/docs/team-knowledge-mode-a-plan.md +73 -0
- package/docs/testing-strategy.md +33 -0
- package/package.json +100 -0
- package/plugins/project-knowledge/.claude-plugin/plugin.json +19 -0
- package/plugins/project-knowledge/.codex-plugin/plugin.json +38 -0
- package/plugins/project-knowledge/.mcp.json +14 -0
- package/plugins/project-knowledge/opencode/project-knowledge.md +3 -0
- package/plugins/project-knowledge/skills/project-knowledge/SKILL.md +28 -0
- package/plugins/project-knowledge/skills/project-knowledge/agents/openai.yaml +11 -0
- package/templates/change.md +30 -0
- package/templates/project-readme.md +52 -0
- package/ui/app.css +58 -0
- package/ui/app.js +607 -0
- package/ui/favicon.svg +38 -0
- package/ui/i18n.js +146 -0
- package/ui/index.html +162 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,780 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [4.6.0] - 2026-09-21
|
|
4
|
+
|
|
5
|
+
- The three embedded module runtimes now ship as real npm dependencies instead
|
|
6
|
+
of the `_modules/` committed snapshot: `claude-ai-workbench@0.4.1`,
|
|
7
|
+
`@sanqianx/vector-hub@1.0.1` and
|
|
8
|
+
`@sanqianx/ai-coding-event-bridge-console@0.4.0` (bringing
|
|
9
|
+
`@sanqianx/ai-coding-event-bridge@0.4.0` transitively). The `_modules/`
|
|
10
|
+
directory, its vendor script and the tarball entry are removed.
|
|
11
|
+
- Why it matters: the snapshot lagged the source repo — npm consumers missed
|
|
12
|
+
the codex resident-bridge Windows fix (per-turn process respawns made every
|
|
13
|
+
turn 5-20s), claude failure-reason surfacing, `/system/doctor` diagnostics
|
|
14
|
+
and the folder-picker foreground/centering fixes. Module upgrades are now a
|
|
15
|
+
one-line version bump verified by `npm ci`, with no manual snapshot step.
|
|
16
|
+
- `module-bridge` resolves each runtime entry through `require.resolve` from
|
|
17
|
+
the installed packages (same supervised spawn, reuse and env-override
|
|
18
|
+
contract as before); the `NODE_PATH` stitching is gone. `release:verify` no
|
|
19
|
+
longer gates on the vendored snapshot.
|
|
20
|
+
|
|
21
|
+
## [4.5.0] - 2026-09-21
|
|
22
|
+
|
|
23
|
+
- The embedded Agent Terminal's settings view gains a 会话捕获 (capture) tab.
|
|
24
|
+
Terminal conversations remain exempt from Development Conversation capture by
|
|
25
|
+
default — the terminal is internal AI runtime, not the developer's CLI
|
|
26
|
+
record. Flipping the toggle persists the scope, applies it to the runner
|
|
27
|
+
immediately, and marks only NEW terminal sessions with
|
|
28
|
+
`AI_CODING_EVENT_BRIDGE_CAPTURE=1`, so they reach the Bridge journal and the
|
|
29
|
+
会话浏览 explorer like any CLI tool conversation. Existing sessions are
|
|
30
|
+
unaffected, and nothing changes for standalone terminals that never touch
|
|
31
|
+
the toggle. Ships the updated vendored Agent Terminal runtime.
|
|
32
|
+
|
|
33
|
+
## [4.4.0] - 2026-09-21
|
|
34
|
+
|
|
35
|
+
- The ai-coding-event-bridge conversation console joins the Agent Terminal and
|
|
36
|
+
vector-hub as the third embedded Control Center module. The vendored runtime
|
|
37
|
+
(console 0.4.0 + its core) ships inside the npm package and starts with the
|
|
38
|
+
shell on 127.0.0.1:8790; the console's dependency on
|
|
39
|
+
`@sanqianx/ai-coding-event-bridge` resolves from a node_modules directory
|
|
40
|
+
vendored inside the console package, so the host package's own older npm
|
|
41
|
+
dependency can never shadow it. The global `node_modules/` gitignore rule
|
|
42
|
+
carries a negation for that directory, and `vendor:modules --check` now
|
|
43
|
+
verifies the runtime is present and git-tracked — the 4.3.0 "runtime missing
|
|
44
|
+
from the tarball" incident class cannot recur for this module either.
|
|
45
|
+
- Module integration follows the established contract: same-origin reverse
|
|
46
|
+
proxy under `/api/eventbridge/`, supervised spawn with reuse of an already
|
|
47
|
+
listening standalone console (`KB_EVENTBRIDGE_COMMAND` override,
|
|
48
|
+
`AI_CODING_EVENT_BRIDGE_HOME` passthrough so the explorer shows the same
|
|
49
|
+
journal the in-process BridgeAdapter writes), idempotent import-time
|
|
50
|
+
registration keyed by Git work tree path using the recommended
|
|
51
|
+
`<knowledge>/dev-conversations` store, removal that keeps journals and sealed
|
|
52
|
+
commit documents, aggregated sidebar projection and module health.
|
|
53
|
+
- The shell UI gains the 会话浏览 view (connect probe, 独立打开 link, per-project
|
|
54
|
+
桥 badge, import/remove copy) — and the conversation explorer itself learned
|
|
55
|
+
the `kb:sidebar` embed protocol (`?embed=1`, `kb:ready` announcement,
|
|
56
|
+
loopback-only origins), so its project sidebar folds via the ▤ control exactly
|
|
57
|
+
like the terminal and vector-hub embeds. Standalone console opens are
|
|
58
|
+
unaffected.
|
|
59
|
+
|
|
60
|
+
## [4.3.1] - 2026-09-20
|
|
61
|
+
|
|
62
|
+
- The 4.3.0 npm package could never start the vector-hub module: the global
|
|
63
|
+
`dist/` gitignore rule kept the vendored runtime
|
|
64
|
+
(`_modules/vectorhub/dist/`, 25 files) out of git, so the CI-packed tarball
|
|
65
|
+
shipped without `bin.js` and every fresh install logged "Vendored vector-hub
|
|
66
|
+
runtime not present". The runtime is committed now, and `release:verify`
|
|
67
|
+
gained a vendored-modules gate that fails when a required runtime file is
|
|
68
|
+
missing from disk or not tracked by git — the check that was previously
|
|
69
|
+
wired into nothing.
|
|
70
|
+
- The Control Center's embedded Agent Terminal linked to no project on first
|
|
71
|
+
load. The shell sends `kb:select-project` 150ms after `kb:ready`, but the
|
|
72
|
+
terminal loads its project list only after health + agent discovery, so the
|
|
73
|
+
one-shot selection landed on an empty list: the linkage chip stuck on
|
|
74
|
+
"未登记" and the embed had no project selected, making it impossible to open
|
|
75
|
+
a terminal from the shell. The terminal now re-announces `kb:ready` once its
|
|
76
|
+
projects are loaded, and the shell retries a failed linkage with backoff.
|
|
77
|
+
- Module status probing no longer reports a false "未检测到 … 界面将显示为
|
|
78
|
+
空白" forever: cold-starting module services are re-probed with backoff
|
|
79
|
+
(up to 10 attempts) before the status is marked down, and the top bar
|
|
80
|
+
终端/检索 indicator updates when a late probe succeeds.
|
|
81
|
+
|
|
82
|
+
## [4.3.0] - 2026-09-20
|
|
83
|
+
|
|
84
|
+
- The Agent Terminal and vector-hub module services now ship inside the npm
|
|
85
|
+
package and start with the shell. `npm install -g project-knowledge` is
|
|
86
|
+
self-contained: the Control Center, the embedded terminal (:5760) and the
|
|
87
|
+
vector-hub console (:8787) all come up together on a fresh machine — no
|
|
88
|
+
sibling checkouts required. KB_MODULES_AUTOSTART=0 disables spawning;
|
|
89
|
+
a service already listening on its URL is never double-spawned, so dev
|
|
90
|
+
machines running standalone module instances are unaffected. vector-hub
|
|
91
|
+
needs Node >= 22 — on older runtimes the shell skips spawning it and logs
|
|
92
|
+
a warning. Also fixed a latent spawn bug: quoted paths in module commands
|
|
93
|
+
reached node with the quotes embedded, which crash-looped the (previously
|
|
94
|
+
default-off) autostart path.
|
|
95
|
+
|
|
96
|
+
## [4.2.20] - 2026-09-20
|
|
97
|
+
|
|
98
|
+
- Startup no longer relocates legacy v4.1.x package-root runtime data. This is
|
|
99
|
+
a fresh knowledge-base system by decision: old data under the npm package
|
|
100
|
+
dir is ignored, not migrated. Previously a conflict between stale
|
|
101
|
+
package-root files and the user data dir aborted startup with "Legacy
|
|
102
|
+
runtime relocation failed", bricking machines whose install carried
|
|
103
|
+
v4.1.x-era files.
|
|
104
|
+
|
|
105
|
+
## [4.2.19] - 2026-09-20
|
|
106
|
+
|
|
107
|
+
- Background launch is diagnosable and no longer lies about the URL. The
|
|
108
|
+
detached child's stdout/stderr now append to `<data-dir>/launcher.log`, so
|
|
109
|
+
port fallbacks ("Port 5757 was busy, using 5758 instead") and startup
|
|
110
|
+
failures are visible after the fact instead of being silently discarded
|
|
111
|
+
(`stdio: 'ignore'`). The parent no longer prints a guessed URL or races a
|
|
112
|
+
browser open 1.2s after spawn — the child opens the browser itself once it
|
|
113
|
+
is actually listening, with the real port. The free-port probe timeout went
|
|
114
|
+
1s → 3s to survive slow listen() under antivirus/cold-cache load (a false
|
|
115
|
+
"busy" previously cascaded into "No free port found").
|
|
116
|
+
|
|
117
|
+
## [4.2.18] - 2026-09-20
|
|
118
|
+
|
|
119
|
+
- Module-embed shell (T0-T4 of docs/ui-integration-repair-plan.md): the Control
|
|
120
|
+
Center UI now embeds the Agent Terminal (:5760) and vector-hub console
|
|
121
|
+
(:8787) as original UIs behind a same-origin proxy (`/api/terminal/*`,
|
|
122
|
+
`/api/vectorhub/*`). Project import registers both modules (wiring table in
|
|
123
|
+
project state); the sidebar aggregates module registrations with per-project
|
|
124
|
+
session history (kb:list-sessions / kb:open-session) — session lifecycle
|
|
125
|
+
(archive/restore) belongs to the terminal module only, the shell keeps a
|
|
126
|
+
read-only projection; per-module sidebar fold toggles on the nav buttons
|
|
127
|
+
(kb:sidebar); project selection drives both modules (kb:select-project)
|
|
128
|
+
with live linkage chips.
|
|
129
|
+
Settings drawer is now 开发对话/日志 only (model settings live in the
|
|
130
|
+
terminal UI). Module removal keeps local knowledge and terminal session
|
|
131
|
+
records (upstream `removeProject?keepSessions=1`). Optional module service
|
|
132
|
+
supervision behind `KB_MODULES_AUTOSTART=1`. Old workbench chat panel and
|
|
133
|
+
its UI tests retired; full suite 115/115 green.
|
|
134
|
+
|
|
135
|
+
## [4.2.17] - 2026-08-25
|
|
136
|
+
|
|
137
|
+
- Recognized a healthy Project Knowledge fan-out nested inside Codex Desktop's
|
|
138
|
+
computer-use `--previous-notify` wrapper. Integration status and one-click
|
|
139
|
+
repair no longer report a false third-party conflict or attempt to wrap the
|
|
140
|
+
notifier again.
|
|
141
|
+
|
|
142
|
+
## [4.2.16] - 2026-08-25
|
|
143
|
+
|
|
144
|
+
- Upgraded AI Coding Event Bridge to 0.1.2 so one Codex task can be captured
|
|
145
|
+
across every continuation rollout. Existing single-file cursors migrate in
|
|
146
|
+
place without replaying consumed history, and real nested turn identities
|
|
147
|
+
keep commentary and final responses attached to the correct user prompt.
|
|
148
|
+
- Added a joint Codex / Claude Code / OpenCode restart-and-recovery gate that
|
|
149
|
+
verifies durable capture, control-message exclusion, exact workspace
|
|
150
|
+
attribution, turn grouping, and duplicate-notification idempotency.
|
|
151
|
+
- Kept Windows CDP failure tests fast and reliable by restricting detached
|
|
152
|
+
profile cleanup to actual Chrome/Edge launchers.
|
|
153
|
+
|
|
154
|
+
## [4.2.15] - 2026-08-25
|
|
155
|
+
|
|
156
|
+
- Repaired Codex Development Conversation turns without rewriting durable
|
|
157
|
+
history: generated control/context records are excluded, orphan assistant
|
|
158
|
+
responses are projected onto the correct user turn within the same session,
|
|
159
|
+
and stale open-turn facts no longer duplicate commit associations.
|
|
160
|
+
- Removed synthetic empty-user and pending-assistant UI messages, with focused
|
|
161
|
+
projection, binding, API, and real-history regression coverage.
|
|
162
|
+
|
|
163
|
+
## [4.2.14] - 2026-08-25
|
|
164
|
+
|
|
165
|
+
- Recovered commit analysis safely after a server restart by making leftover
|
|
166
|
+
claims terminal without running startup analysis or replaying historical or
|
|
167
|
+
offline commits; the next explicit Git Hook event processes only its own SHA.
|
|
168
|
+
- Restored v4.1.21 Claude Workbench history through the migrated project's
|
|
169
|
+
legacy slug while preserving the original session files and preferring the
|
|
170
|
+
canonical runtime record on duplicate session IDs.
|
|
171
|
+
- Restored historical session selection and live Commit automation visibility
|
|
172
|
+
in the Claude Code UI, including prompts, thinking, tools, permissions,
|
|
173
|
+
retries, results, stop controls, and real browser regression coverage.
|
|
174
|
+
|
|
175
|
+
## [4.2.13] - 2026-08-25
|
|
176
|
+
|
|
177
|
+
- Restored the globally installed web UI by including `ui/i18n.js` in the
|
|
178
|
+
npm package; a missing or incomplete localization runtime can no longer
|
|
179
|
+
abort project, AI profile, Knowledge Root, and conversation loading.
|
|
180
|
+
- Added package-asset closure validation plus a real
|
|
181
|
+
`npm pack -> npm install -> server -> Chrome` release smoke test, so CI
|
|
182
|
+
rejects tarballs whose UI differs from the tested source tree.
|
|
183
|
+
|
|
184
|
+
## [4.2.9] - 2026-08-24
|
|
185
|
+
|
|
186
|
+
- Made persisted UI-language selection fully reliable across page reloads and
|
|
187
|
+
slower browser runners: translated labels now re-render, and the document
|
|
188
|
+
language is initialized from the saved preference.
|
|
189
|
+
|
|
190
|
+
## [4.2.8] - 2026-08-24
|
|
191
|
+
|
|
192
|
+
- Fixed release metadata drift by deriving plugin manifests, marketplace
|
|
193
|
+
metadata, MCP package pins, and both lockfiles from the root package
|
|
194
|
+
version during the standard npm version lifecycle.
|
|
195
|
+
- Added release and tag-version guards to CI and the npm publishing workflow,
|
|
196
|
+
so a mismatched release is rejected before packaging or publishing.
|
|
197
|
+
- Stabilized Windows browser E2E tests by handling Chrome launcher detachment
|
|
198
|
+
and cleaning every test-specific Chrome process by its isolated profile.
|
|
199
|
+
|
|
200
|
+
## [4.2.7] - 2026-08-24
|
|
201
|
+
|
|
202
|
+
- Made runtime data migration fail closed: existing legacy data is now
|
|
203
|
+
discovered and relocated safely, migration failures prevent startup,
|
|
204
|
+
and settings-only legacy data is preserved instead of being treated as
|
|
205
|
+
a fresh install.
|
|
206
|
+
- Restricted Knowledge Analysis to explicit post-commit hook events.
|
|
207
|
+
Startup, bridge synchronization, historical catch-up, and offline
|
|
208
|
+
commits no longer trigger implicit analysis.
|
|
209
|
+
- Preserved conversation and commit-boundary facts across offline periods
|
|
210
|
+
without allowing those facts to contaminate a later online commit.
|
|
211
|
+
|
|
212
|
+
## [4.2.6] - 2026-08-20
|
|
213
|
+
|
|
214
|
+
- Hotfix for the v4.2.5 commit-reconciler regression: the post-batch
|
|
215
|
+
re-scan was unconditionally writing `analysis.status='idle'` even
|
|
216
|
+
after a successful batch of commits, clobbering the
|
|
217
|
+
`'state.advanced'` value that `advanceState()` had just set. The CI
|
|
218
|
+
suite surfaced this on a fast runner where the test's state read
|
|
219
|
+
raced ahead of the trailing re-scan; on slower machines the bug
|
|
220
|
+
passed silently. runSweep() now only marks `'idle'` when this call
|
|
221
|
+
never processed any commits, leaving a freshly-promoted batch's
|
|
222
|
+
`state.advanced` visible to the UI.
|
|
223
|
+
- Bumped `plugins/project-knowledge/.mcp.json` from
|
|
224
|
+
`project-knowledge@4.2.4` to `project-knowledge@4.2.6` so the
|
|
225
|
+
integration-adapters MCP-pin assertion matches the package version.
|
|
226
|
+
(The v4.2.5 release had bumped everything except this MCP pin.)
|
|
227
|
+
|
|
228
|
+
105 root + 2 desktop tests pass.
|
|
229
|
+
|
|
230
|
+
## [4.2.5] - 2026-08-20
|
|
231
|
+
|
|
232
|
+
- Restored the v4.1.22 → v4.2.x product contract that the recent
|
|
233
|
+
refactor had broken. The shared ` `resolveEffectiveAiProfile` resolver
|
|
234
|
+
is the single source of truth for "which AI profile does this project
|
|
235
|
+
use right now" (project → default → first-usable → AI_PROFILE_REQUIRED),
|
|
236
|
+
and the Workbench / analyzer / CommitReconciler paths no longer
|
|
237
|
+
carry their own drift-prone fallback logic.
|
|
238
|
+
- Hook runtime: post-commit hooks now prefix `ELECTRON_RUN_AS_NODE=1`
|
|
239
|
+
in the shell body so a packaged Desktop install no longer tries to
|
|
240
|
+
launch the Electron GUI from a Git hook invocation. Node ignores the
|
|
241
|
+
env var so CLI installs are unaffected.
|
|
242
|
+
- Hook migration state machine: a missing legacy hook is no longer
|
|
243
|
+
silently marked migrationVersion=2. The new state machine only
|
|
244
|
+
advances migrationVersion when install + readback verify succeed,
|
|
245
|
+
persists third-party conflicts in state.hook.lastConflict for UI
|
|
246
|
+
consumption, and reports status=verified|conflict|pending|failed per
|
|
247
|
+
project.
|
|
248
|
+
- Hook health API: GET /api/projects/:id/hook-status and POST
|
|
249
|
+
/api/projects/:id/hook-repair expose every required field
|
|
250
|
+
(installed / managed / managedVersion / runtimeTarget / lastVerifiedAt
|
|
251
|
+
/ conflict / reason / repairAvailable) and refuse to overwrite
|
|
252
|
+
third-party hooks.
|
|
253
|
+
- Import UX: a new preflight endpoint and UI flow (Desktop folder
|
|
254
|
+
picker, knowledge language selector, AI profile selector, optional
|
|
255
|
+
Team Knowledge binding, per-problem action hints, auto preflight on
|
|
256
|
+
every input change, Import button stays disabled until ready=true)
|
|
257
|
+
replace the path-only dialog.
|
|
258
|
+
- Knowledge language control: import + per-project PATCH both accept
|
|
259
|
+
knowledgeLanguage; changing it affects only future generated
|
|
260
|
+
knowledge, never historical files.
|
|
261
|
+
- Project Goal editor: GET/PUT /api/projects/:id/goal atomically reads
|
|
262
|
+
and writes the project's GOAL.md, scoped to its own knowledgePath.
|
|
263
|
+
- UI language toggle (zh-CN / en-US) persists in localStorage and
|
|
264
|
+
re-renders the most-visible labels without a reload.
|
|
265
|
+
- P0 E2E gate proves the four primary contract scenarios (fresh /
|
|
266
|
+
legacy / offline / no-conversation) against the live server.
|
|
267
|
+
105 root + 2 desktop tests pass; the G00–G08 acceptance gates are
|
|
268
|
+
green.
|
|
269
|
+
|
|
270
|
+
## [4.2.4] - 2026-08-20
|
|
271
|
+
|
|
272
|
+
- Fixed the Bridge consumer never receiving connector wake-ups on a fresh
|
|
273
|
+
install: `BridgeConsumerService.start(notifyUrl)` ignored its argument, so
|
|
274
|
+
the `project-knowledge` consumer registered with empty metadata. Captured
|
|
275
|
+
conversations piled up in the journal until the next server restart instead
|
|
276
|
+
of appearing in Development Conversation immediately. The wake-up URL now
|
|
277
|
+
lands in the consumer registration and drains fire per event.
|
|
278
|
+
- Projects imported before v4.2.3 (no canonical `repo-identity/v1`) are
|
|
279
|
+
upgraded automatically: on the first consumer drain after updating, each
|
|
280
|
+
legacy project with an existing repository path gets its workspace identity
|
|
281
|
+
resolved and persisted, its conversation baseline established, and its
|
|
282
|
+
external conversations start projecting — no manual migration step. A
|
|
283
|
+
workspace already claimed by another project is never written twice.
|
|
284
|
+
- The Bridge dependency now resolves to `@sanqianx/ai-coding-event-bridge`
|
|
285
|
+
0.1.1, which accepts Claude Code's real `hook_event_name` payload field
|
|
286
|
+
(previously such payloads were misrouted to the Codex connector and lost as
|
|
287
|
+
capture gaps).
|
|
288
|
+
|
|
289
|
+
## [4.2.3] - 2026-08-20
|
|
290
|
+
|
|
291
|
+
- Development Conversation now captures real external Claude Code / Codex /
|
|
292
|
+
OpenCode sessions through `ai-coding-event-bridge` (repo-identity/v1 with
|
|
293
|
+
workspaceId as the primary key, durable Bridge-owned turn identity, and
|
|
294
|
+
exact-workspace project matching — unimported workspaces are skipped and
|
|
295
|
+
ACKed, never written into another project).
|
|
296
|
+
- The internal Workbench capture path was removed: sending a Workbench chat
|
|
297
|
+
message no longer records requirements or conversation events (explicit
|
|
298
|
+
`record_requirement` still works), every internal SDK session runs with
|
|
299
|
+
`AI_CODING_EVENT_BRIDGE_CAPTURE=0`, and legacy embedded Workbench pairs are
|
|
300
|
+
excluded from presentation and new commit binding via
|
|
301
|
+
`conversation-exclusions/v1` without rewriting history.
|
|
302
|
+
- Commit conversation snapshots are frozen strictly after
|
|
303
|
+
append-boundary -> drainThrough: no event beyond `boundaryEndCursor`
|
|
304
|
+
(assistant replies included) can enter a snapshot, and imports establish a
|
|
305
|
+
conversation baseline so pre-import history is never backfilled.
|
|
306
|
+
- One Integration Setup action installs Knowledge Integration and Development
|
|
307
|
+
Capture for Claude Code / Codex / OpenCode with separate status reporting,
|
|
308
|
+
third-party config preservation, Codex notify conflict detection, and a
|
|
309
|
+
host-level Bridge consumer that survives per-connector uninstalls; new
|
|
310
|
+
`/api/bridge/*` and `/api/integrations/*` endpoints expose capture health.
|
|
311
|
+
- Windows CI browser tests now fail fast: CDP launch failures clean up the
|
|
312
|
+
spawned browser tree and profile directory, report exit/stderr diagnostics,
|
|
313
|
+
use a dynamically discovered DevTools port with per-request timeouts, and
|
|
314
|
+
the test runner reports `TIMEOUT` explicitly under a configurable budget
|
|
315
|
+
(`PK_TEST_TIMEOUT_MS`, default 90s) instead of hanging for 300 seconds.
|
|
316
|
+
|
|
317
|
+
## [4.2.2] - 2026-08-19
|
|
318
|
+
|
|
319
|
+
- Rebuilt the web Control Center visual layer to faithfully match the v13
|
|
320
|
+
reference design (`project-knowledge-base-faithful-repair-ui-v10.html`):
|
|
321
|
+
sidebar brand block with the knowledge root path, multi-line project cards
|
|
322
|
+
(name, id, repository path, status dot) with right-click removal, the
|
|
323
|
+
in-main-area header, full-height Workbench panel with chat bubbles, tool
|
|
324
|
+
cards, circular send button and composer toolbar, the reference design
|
|
325
|
+
tokens including the complete dark theme, and responsive breakpoints.
|
|
326
|
+
- Restored the reference Settings drawer structure with separate AI model
|
|
327
|
+
editing (add/save profiles via the API), project model assignment,
|
|
328
|
+
knowledge relations, mature development-conversation turn cards with
|
|
329
|
+
commit labels, and the V7 run-records list geometry.
|
|
330
|
+
- Import view now shows the reference split layout with a post-import
|
|
331
|
+
placement preview; UI contract tests were updated to the reference DOM.
|
|
332
|
+
|
|
333
|
+
## [4.2.1] - 2026-08-19
|
|
334
|
+
|
|
335
|
+
- Fixed the legacy layout migration failing with `Legacy migration source
|
|
336
|
+
JSON is corrupt` (and the server refusing to start) when any legacy source
|
|
337
|
+
file carries a UTF-8 BOM, which PowerShell and several editors commonly
|
|
338
|
+
write. BOM-prefixed sources are now parsed normally.
|
|
339
|
+
|
|
340
|
+
## [4.2.0] - 2026-08-19
|
|
341
|
+
|
|
342
|
+
- Completed the v13 refactor: conversation capture contracts, atomic Bridge
|
|
343
|
+
commit boundaries with capture-gap persistence, and frozen
|
|
344
|
+
`CommitConversationSnapshot` binding so post-commit prompts never bind to
|
|
345
|
+
old commits and claims freeze their analyzer evidence.
|
|
346
|
+
- Replaced `patch:null` handling for large diffs with an exact, hash-verified
|
|
347
|
+
patch chunk evidence bundle; commit analysis now carries frozen evidence,
|
|
348
|
+
retrieval, and conversation manifests end to end.
|
|
349
|
+
- Unified user search and commit context selection into one
|
|
350
|
+
`KnowledgeRetrievalService` (hybrid recall, deterministic rerank, chunk
|
|
351
|
+
budgets) with an index source manifest and a Markdown delta overlay so
|
|
352
|
+
fresh knowledge is visible while the derived index is dirty.
|
|
353
|
+
- Logging is now permanent per-day JSONL under `logs/system` and
|
|
354
|
+
`logs/projects/<id>` with reverse-chunk cursors, SSE streaming without
|
|
355
|
+
gaps, and immutable capture policy (no retention/capacity settings).
|
|
356
|
+
- Background work registers per operation with one root `operationId`
|
|
357
|
+
propagated across HTTP, Hook, startup, and reconciler logs, and shutdown
|
|
358
|
+
drains every registered task.
|
|
359
|
+
- Project delete is transactional with a journal, tombstone, and per-stage
|
|
360
|
+
recovery; migration no longer converts legacy logging knobs into settings.
|
|
361
|
+
- Restored the full Control Center web shell (Workbench, Import, Settings)
|
|
362
|
+
with a mature run-records log view and a read-only development-conversation
|
|
363
|
+
page driven by frozen commit snapshots; logs left the standalone console.
|
|
364
|
+
- Added non-release CI (Linux Node 18/24, Windows Node 24) for every push;
|
|
365
|
+
desktop packaging validation is paused for this web-only cycle.
|
|
366
|
+
|
|
367
|
+
## [4.1.23] - 2026-08-17
|
|
368
|
+
|
|
369
|
+
- Replaced legacy whole-registry project state with schema-v2 settings, a
|
|
370
|
+
minimal project registry, stable per-project config/state, and locked
|
|
371
|
+
requirement JSONL records under one canonical `StorageLayout`.
|
|
372
|
+
- Reduced knowledge analysis to the managed post-commit Hook and startup
|
|
373
|
+
recovery, both routed through one per-project reconciler and one Commit
|
|
374
|
+
prompt. Import now establishes a baseline without AI or placeholder files.
|
|
375
|
+
- Added manifest-validated AI staging, journaled Markdown promotion, crash
|
|
376
|
+
recovery, dirty-index semantics, and a single serialized `IndexService` for
|
|
377
|
+
incremental writes and atomic full rebuilds.
|
|
378
|
+
- Rebuilt logging around six-level `log/v2` JSONL records, recursive secret
|
|
379
|
+
redaction, daily/size rotation, retention/capacity cleanup, cursor queries,
|
|
380
|
+
exports, health state, and orphaned-operation detection.
|
|
381
|
+
- Replaced the duplicate dashboard implementations with one responsive
|
|
382
|
+
light/dark logging console, including operation flows, structured error
|
|
383
|
+
details, pause/refresh, filtering, cursor pagination, and export.
|
|
384
|
+
- Unified server, CLI, MCP, Hook, index, and project path resolution. Read-only
|
|
385
|
+
knowledge search falls back to scoped Markdown when the derived index is
|
|
386
|
+
dirty or unavailable.
|
|
387
|
+
- Added staged `layout-v2` migration with centralized recovery backups,
|
|
388
|
+
source/hash validation, last-step completion, fault recovery, and preservation
|
|
389
|
+
of legacy paths, secrets, Commit pointers, indexes, and logs.
|
|
390
|
+
- Hardened the API by removing wildcard CORS, raw-file access, generic project
|
|
391
|
+
replacement, manual Hook/analysis routes, and stack responses; non-loopback
|
|
392
|
+
binding now requires authentication and Origin validation.
|
|
393
|
+
- Removed CLAUDE.md management, the second automation queue, configurable log
|
|
394
|
+
and index locations, legacy direct database writers, and unused Vue/Tailwind
|
|
395
|
+
browser runtimes.
|
|
396
|
+
- Added Windows end-to-end coverage for online Hook processing, offline Commit
|
|
397
|
+
catch-up, requirement binding, promotion/index completion, structured log
|
|
398
|
+
chains, paths with spaces/non-ASCII text, and immediate recovery of locks
|
|
399
|
+
owned by a crashed process.
|
|
400
|
+
- Hardened release packaging by explicitly mirroring core runtime dependencies
|
|
401
|
+
into the Electron app and allowlisting shipped documentation, preventing
|
|
402
|
+
local review artifacts from leaking into npm or desktop packages.
|
|
403
|
+
|
|
404
|
+
## [4.1.22] - 2026-07-27
|
|
405
|
+
|
|
406
|
+
- Added a read-only `project-knowledge-mcp` server for OpenCode, Codex, and
|
|
407
|
+
other MCP-compatible coding agents. It resolves the current Git project,
|
|
408
|
+
exposes scoped search/ask/get/history tools, and includes the search-first
|
|
409
|
+
workflow without depending on `CLAUDE.md`.
|
|
410
|
+
- Added a safe keyword-search fallback for legacy Markdown knowledge bases and
|
|
411
|
+
kept routine knowledge writes exclusively in post-commit automation.
|
|
412
|
+
- Added a shared Claude Code/Codex plugin with MCP configuration and a
|
|
413
|
+
search-first `project-knowledge` Skill, plus a native Claude marketplace and
|
|
414
|
+
Codex marketplace manifest.
|
|
415
|
+
- Added an OpenCode adapter and a universal, idempotent integration manager for
|
|
416
|
+
installation, updates, removal, dry-runs, and status checks across Claude
|
|
417
|
+
Code, OpenCode, and Codex.
|
|
418
|
+
|
|
419
|
+
## [4.1.21] - 2026-07-27
|
|
420
|
+
|
|
421
|
+
- Fixed Windows desktop Claude sessions failing with “executable exists but
|
|
422
|
+
failed to launch” when a global Claude Code installation exposes `cli.js`
|
|
423
|
+
but `node` is unavailable in the desktop process PATH. JavaScript Claude
|
|
424
|
+
entry points now use the application's own Node/Electron runtime.
|
|
425
|
+
- Added slow-backend and packaged-client regressions covering desktop startup
|
|
426
|
+
readiness and Claude script launch through the installed Windows executable.
|
|
427
|
+
|
|
428
|
+
## [4.1.20] - 2026-07-27
|
|
429
|
+
|
|
430
|
+
- Rebuilt the daily workspace around Claude Code while keeping GitHub/Gitea
|
|
431
|
+
sign-in, project import, AI setup, project knowledge relations, knowledge
|
|
432
|
+
storage, embedding model setup, logs, and desktop updates available from one
|
|
433
|
+
settings drawer.
|
|
434
|
+
- Moved project removal to a right-click project-list action with confirmation.
|
|
435
|
+
Projects with a running Claude session or queued automation task now cannot
|
|
436
|
+
be removed.
|
|
437
|
+
|
|
438
|
+
## [4.1.19] - 2026-07-24
|
|
439
|
+
|
|
440
|
+
- Stabilized release tests: expected EventSource cancellation during a page
|
|
441
|
+
reload is no longer treated as a failed request, and the Windows CLAUDE.md
|
|
442
|
+
refresh test no longer removes a just-used temporary server directory.
|
|
443
|
+
|
|
444
|
+
## [4.1.18] - 2026-07-23
|
|
445
|
+
|
|
446
|
+
- Simplified the daily workspace into a full-width Claude Code interface.
|
|
447
|
+
- Removed the project-supervision summary, pending-commit and issue panels,
|
|
448
|
+
dashboard status/goal cards, and manual automation preview/simulation UI.
|
|
449
|
+
|
|
450
|
+
## [4.1.17] - 2026-07-23
|
|
451
|
+
|
|
452
|
+
- Rebuilt commit-triggered knowledge automation around persistent per-commit
|
|
453
|
+
state, ordered recovery, and exactly one AI task per Git commit.
|
|
454
|
+
- Removed manual draft review, auto-apply controls, and scheduled-task paths;
|
|
455
|
+
generated knowledge is now written directly through the automated pipeline.
|
|
456
|
+
|
|
457
|
+
## [4.1.16] - 2026-07-22
|
|
458
|
+
|
|
459
|
+
- Fixed the desktop client timing out / hanging on the loading screen for large
|
|
460
|
+
knowledge bases (many projects, multi-GB DB) while the web dashboard opened
|
|
461
|
+
fine. Root cause was several compounding issues:
|
|
462
|
+
- Desktop startup probe was too impatient: raised the per-request `/api/state`
|
|
463
|
+
timeout (1.5 s → 30 s) and the overall backend-ready budgets (owned backend
|
|
464
|
+
45 s → 180 s, existing backend 20 s → 60 s) so it waits like a browser does.
|
|
465
|
+
- Server startup no longer blocks the event loop: the CLAUDE.md audit and
|
|
466
|
+
orphaned-run cleanup now run in `setImmediate`, so `/api/state` can answer
|
|
467
|
+
immediately after `listen()`.
|
|
468
|
+
- `getScheduleInfo()` (which spawns `schtasks`) is now cached for 5 s so
|
|
469
|
+
repeated `/api/state` hits don't each pay process-spawn latency.
|
|
470
|
+
- `isProcessAlive` now treats `EPERM` as alive, so a running backend's
|
|
471
|
+
runtime-endpoint file is no longer deleted (and a duplicate cold-started)
|
|
472
|
+
when the desktop and CLI run at different privilege levels on Windows.
|
|
473
|
+
- The dashboard now retries the initial connection every 3 s until it first
|
|
474
|
+
succeeds, instead of waiting up to 60 s, so a slow-starting backend no
|
|
475
|
+
longer leaves the page spinning.
|
|
476
|
+
- Stopped the knowledge-storage relocation from logging
|
|
477
|
+
`target ... is not empty` on every startup: relocation is now skipped (with a
|
|
478
|
+
single warning) when the configured storage directory already holds unrelated
|
|
479
|
+
content, and the existing storage location keeps being used.
|
|
480
|
+
|
|
481
|
+
## [4.1.15] - 2026-07-21
|
|
482
|
+
|
|
483
|
+
- Replaced the dashboard's fixed-interval polling with a server-sent-events
|
|
484
|
+
(SSE) push model. The backend now emits a `state/changed` event over a new
|
|
485
|
+
`/api/state-stream` channel whenever project state is written or a job
|
|
486
|
+
starts/finishes, and the frontend refreshes only in response (300 ms
|
|
487
|
+
debounced). A slow 60 s poll remains as a fallback. Result: changes such as
|
|
488
|
+
the sidebar pending count and summary cards update within ~1-2 s of the
|
|
489
|
+
per-commit analysis cycle, while an idle dashboard makes almost no requests
|
|
490
|
+
instead of hitting the server every 5 s.
|
|
491
|
+
|
|
492
|
+
## [4.1.14] - 2026-07-21
|
|
493
|
+
|
|
494
|
+
- Fixed `runCommitAnalysis` to mutate the projects map entry directly
|
|
495
|
+
(`projects[slug].lastAnalyzedCommit`) instead of a copy. The v4.1.11
|
|
496
|
+
one-by-one refactor accepted `project = { slug, ...projects[slug],
|
|
497
|
+
kbPath }`, so `project.lastAnalyzedCommit = ...` mutated a throwaway
|
|
498
|
+
copy and the `writeProjects` callback persisted the unchanged value.
|
|
499
|
+
Symptom: the "待分析" count never decreases after analysis; the
|
|
500
|
+
pending count appears stuck or oscillates between runs because the
|
|
501
|
+
scan counter and the manual analysis counter diverge.
|
|
502
|
+
|
|
503
|
+
## [4.1.13] - 2026-07-21
|
|
504
|
+
|
|
505
|
+
- Bumped the GitHub OAuth HTTP timeout from 20s to 30s in
|
|
506
|
+
`requestJson` and `requestFormJson` (github-team-store.js) and made
|
|
507
|
+
the timeout error message actionable: it now names the host that
|
|
508
|
+
failed and suggests using a Personal Access Token as a workaround
|
|
509
|
+
when GitHub is unreachable from the host network.
|
|
510
|
+
|
|
511
|
+
## [4.1.12] - 2026-07-21
|
|
512
|
+
|
|
513
|
+
- Hid the "Runs / Drafts" sidebar nav entry. All registered projects
|
|
514
|
+
use `knowledgeMode: autoApply` so manual review is not part of the
|
|
515
|
+
workflow; the runs view itself is preserved for programmatic access
|
|
516
|
+
(uncomment the one line in `navItems` to restore the button).
|
|
517
|
+
|
|
518
|
+
## [4.1.11] - 2026-07-21
|
|
519
|
+
|
|
520
|
+
- Refactored `runCommitAnalysis` from batch to one-by-one: each pending
|
|
521
|
+
commit now gets its own run record and its own draft, analyzed in
|
|
522
|
+
chronological order (FIFO). After every successful single-commit
|
|
523
|
+
run, `project.lastAnalyzedCommit` advances to that commit's hash so
|
|
524
|
+
the "待分析" count drops by one per analysis, matching the UI label.
|
|
525
|
+
Previously a 10-commit batch produced 1 run + 10 drafts and the
|
|
526
|
+
pending count did not decrease until the user clicked Apply (which
|
|
527
|
+
could also advance the checkpoint past commits the user had not
|
|
528
|
+
actually applied drafts for).
|
|
529
|
+
|
|
530
|
+
## [4.1.10] - 2026-07-21
|
|
531
|
+
|
|
532
|
+
- Made startup-recovery's staging copy (`prepareKnowledgeWorkspace`) and
|
|
533
|
+
Claude-executable lookup (`findClaudeExecutableForSdk`) asynchronous
|
|
534
|
+
so the server's HTTP handlers (notably `/api/state`) stay responsive
|
|
535
|
+
while pending-commit workers are being dispatched. Previously the
|
|
536
|
+
desktop client would time out with `backend request timed out` when
|
|
537
|
+
several projects had pending commits on startup, because the sync
|
|
538
|
+
`fs.cpSync` and `spawnSync` calls were freezing the event loop for
|
|
539
|
+
several seconds during `/api/state` polling.
|
|
540
|
+
|
|
541
|
+
## [4.1.9] - 2026-07-21
|
|
542
|
+
|
|
543
|
+
- Refused to import or upsert a project whose `kbPath` resolves to the
|
|
544
|
+
same directory as `gitPath` / `localPath`. Writing the knowledge base
|
|
545
|
+
inside the source tree pollutes the repo (and trips Windows symlink
|
|
546
|
+
errors in the staging workspace), so both entry points now return 400.
|
|
547
|
+
|
|
548
|
+
## [4.1.8] - 2026-07-21
|
|
549
|
+
|
|
550
|
+
- Stopped the post-commit automation worker from being auto-paused when a
|
|
551
|
+
user aborts the Claude session in the terminal. Pending commits queued
|
|
552
|
+
before the abort are now picked up again on the next desktop launch.
|
|
553
|
+
|
|
554
|
+
## [4.1.7] - 2026-07-19
|
|
555
|
+
|
|
556
|
+
- Restored GitHub and Gitea login in the Windows desktop client through an
|
|
557
|
+
acknowledged Electron bridge that opens OAuth pages in the system browser.
|
|
558
|
+
Browser launch failures are now reported immediately instead of appearing
|
|
559
|
+
later as an authorization timeout.
|
|
560
|
+
- Added support for HTTP authorization URLs used by private, intranet Gitea
|
|
561
|
+
installations while continuing to reject local-file and script URLs at the
|
|
562
|
+
desktop security boundary.
|
|
563
|
+
- Forwarded Electron's Windows system-proxy resolution to the backend and made
|
|
564
|
+
GitHub OAuth plus remote repository discovery proxy-aware, while preserving
|
|
565
|
+
loopback and `NO_PROXY` bypasses for private Gitea installations.
|
|
566
|
+
- Verified the full team-knowledge path after desktop migration: GitHub device
|
|
567
|
+
authorization, Gitea callback/token persistence, remote repository scanning,
|
|
568
|
+
manifest discovery, cached store loading, and team knowledge-base binding.
|
|
569
|
+
- Added desktop bridge/security regressions and an end-to-end Gitea OAuth plus
|
|
570
|
+
remote team-store discovery test.
|
|
571
|
+
|
|
572
|
+
## [4.1.6] - 2026-07-19
|
|
573
|
+
|
|
574
|
+
- Replaced overlapping post-commit batches with a single per-project worker
|
|
575
|
+
that treats Git history as the durable queue. Live hooks and desktop startup
|
|
576
|
+
recovery now use the same path and process exactly one commit at a time,
|
|
577
|
+
strictly from oldest to newest.
|
|
578
|
+
- Preserved the original knowledge contract: every analyzed commit must create
|
|
579
|
+
an independent `changes/` Markdown record containing its full hash, including
|
|
580
|
+
test-only, documentation, and infrastructure commits.
|
|
581
|
+
- Added transactional knowledge workspaces. Claude edits a temporary KB copy;
|
|
582
|
+
validated Markdown is applied to the live KB only after the session succeeds,
|
|
583
|
+
and LanceDB must finish before `lastAnalyzedCommit` advances.
|
|
584
|
+
- Added resumable vector finalization and automatic startup recovery. Index
|
|
585
|
+
failures retry without rerunning Claude or duplicating Markdown, while an
|
|
586
|
+
interrupted desktop session resumes from the oldest unfinished commit.
|
|
587
|
+
- Made Stop pause the project's automatic commit worker, discard uncommitted
|
|
588
|
+
staged knowledge, and prevent queued work from immediately restarting. The
|
|
589
|
+
Claude Code UI now provides a dedicated Resume automatic analysis action.
|
|
590
|
+
- Added end-to-end regressions for duplicate Hook delivery, strict commit order,
|
|
591
|
+
per-commit changes records, staged Markdown, abort behavior, and vector-index
|
|
592
|
+
recovery. The complete core suite now contains 53 passing test files.
|
|
593
|
+
|
|
594
|
+
## [4.1.5] - 2026-07-19
|
|
595
|
+
|
|
596
|
+
- Added a desktop-client card in Settings that always shows the installed
|
|
597
|
+
application version and provides Check for updates / Restart and install
|
|
598
|
+
actions without opening a browser.
|
|
599
|
+
- Integrated Electron's Squirrel updater with a stable GitHub Latest Release
|
|
600
|
+
feed. Release automation now uploads `RELEASES` and the full `.nupkg` beside
|
|
601
|
+
the installer so future desktop versions download and install in-app.
|
|
602
|
+
- Hardened the PowerShell folder-picker fallback: scripts are unpacked from the
|
|
603
|
+
desktop ASAR, stdout uses UTF-8, and only an existing absolute directory can
|
|
604
|
+
be returned. PowerShell banners and error text can never populate a path
|
|
605
|
+
field.
|
|
606
|
+
- Added updater lifecycle and folder-output regressions, bringing the complete
|
|
607
|
+
core suite to 52 passing test files while retaining the native Electron
|
|
608
|
+
folder dialog introduced in 4.1.4.
|
|
609
|
+
|
|
610
|
+
## [4.1.4] - 2026-07-19
|
|
611
|
+
|
|
612
|
+
- Fixed Windows Claude Code discovery so extensionless npm shell shims and
|
|
613
|
+
command wrappers are never passed to the Agent SDK. The resolver now prefers
|
|
614
|
+
the installed package's native `bin/claude.exe` and retains `cli.js` only as
|
|
615
|
+
a legacy fallback.
|
|
616
|
+
- Changed the post-commit Hook endpoint to acknowledge valid events with HTTP
|
|
617
|
+
202 before commit inspection and Claude startup. Dispatch continues in the
|
|
618
|
+
background, while the Hook accepts every successful 2xx response instead of
|
|
619
|
+
recording a false timeout/error after a run was already created.
|
|
620
|
+
- Restored both desktop directory-selection flows with a narrow Electron IPC
|
|
621
|
+
bridge and native directory dialog. Project import and Team Knowledge folder
|
|
622
|
+
selection no longer execute a PowerShell script from inside the packaged
|
|
623
|
+
ASAR or mistake PowerShell banner text for a selected path.
|
|
624
|
+
|
|
625
|
+
## [4.1.3] - 2026-07-19
|
|
626
|
+
|
|
627
|
+
- Removed the bundled 218 MiB Claude Code executable from the Windows desktop
|
|
628
|
+
application. The small Agent SDK control layer now discovers the user's
|
|
629
|
+
installed Claude Code through `CLAUDE_CODE_EXECPATH`, `PATH`, or the npm
|
|
630
|
+
global installation and reports a clear error without disabling knowledge
|
|
631
|
+
management when Claude Code is unavailable.
|
|
632
|
+
- Removed LanceDB's unused optional embedding-provider stack and its duplicate
|
|
633
|
+
Transformers.js 3.0.2 / ONNX Runtime 1.19.2 dependency tree while retaining
|
|
634
|
+
the application's supported Transformers.js 3.8.1 embedding service.
|
|
635
|
+
- Pruned non-Windows and non-x64 ONNX binaries, browser-only ONNX Web runtimes,
|
|
636
|
+
Transformers browser builds, source maps, and unused platform packages from
|
|
637
|
+
the Windows x64 bundle.
|
|
638
|
+
- Added packaged runtime probes for LanceDB, Transformers.js, ONNX Runtime, and
|
|
639
|
+
the real 512-dimensional `bge-small-zh-v1.5` embedding model, plus release
|
|
640
|
+
size auditing that rejects bundled Claude binaries, duplicate runtimes, and
|
|
641
|
+
oversized artifacts.
|
|
642
|
+
- Reduced the measured Windows installer from 476.0 MiB to 221.1 MiB and the
|
|
643
|
+
installed application bundle from 1,491.1 MiB to 617.5 MiB without changing
|
|
644
|
+
existing model caches, Markdown sources, LanceDB data, or storage paths.
|
|
645
|
+
|
|
646
|
+
## [4.1.2] - 2026-07-16
|
|
647
|
+
|
|
648
|
+
- Made the desktop dependency lock reproducible under the newer npm version on
|
|
649
|
+
GitHub's Windows runner by explicitly locking the encoding compatibility
|
|
650
|
+
dependency used by the packaging tree.
|
|
651
|
+
- Made the desktop release workflow fail immediately when a native npm command
|
|
652
|
+
fails instead of allowing PowerShell to continue into a misleading later
|
|
653
|
+
step.
|
|
654
|
+
|
|
655
|
+
## [4.1.1] - 2026-07-16
|
|
656
|
+
|
|
657
|
+
- Fixed Windows GitHub Actions browser discovery for the `windows-2025`
|
|
658
|
+
runner by detecting system-level Chrome and Microsoft Edge installations.
|
|
659
|
+
- Restored the release gate for all three real-browser UI suites so the
|
|
660
|
+
Windows desktop installer can be built, smoke-tested, and uploaded only
|
|
661
|
+
after the complete 50-file core regression suite passes.
|
|
662
|
+
|
|
663
|
+
## [4.1.0] - 2026-07-16
|
|
664
|
+
|
|
665
|
+
- Added a Windows x64 Electron desktop application and Squirrel installer that
|
|
666
|
+
reuse the existing configuration, configured knowledge root, model cache,
|
|
667
|
+
Markdown sources, Team Knowledge Mode, and LanceDB without copying or
|
|
668
|
+
re-vectorizing user data.
|
|
669
|
+
- Added single-instance and system-tray lifecycle behavior: closing the window
|
|
670
|
+
keeps Git hooks available, while an explicit tray Quit stops only a backend
|
|
671
|
+
owned by the desktop application.
|
|
672
|
+
- Added an atomic, local-only runtime endpoint record so CLI, desktop, and
|
|
673
|
+
existing Git hooks discover the active fallback port dynamically and never
|
|
674
|
+
open competing LanceDB writers.
|
|
675
|
+
- Made the desktop application safely attach to an already-running npm CLI and
|
|
676
|
+
leave that external backend alive when the desktop window exits.
|
|
677
|
+
- Added hardened Electron navigation, context isolation, sandboxing, denied
|
|
678
|
+
permission requests, bounded desktop backend logs, Squirrel lifecycle event
|
|
679
|
+
handling, and explicit native-module ASAR unpacking.
|
|
680
|
+
- Added Windows release automation that runs all 50 core regression files,
|
|
681
|
+
desktop unit tests, a packaged EXE/API smoke test, and packaged LanceDB native
|
|
682
|
+
read/write tests before uploading the installer and SHA-256 to GitHub
|
|
683
|
+
Releases. The existing npm provenance publish workflow remains unchanged.
|
|
684
|
+
|
|
685
|
+
## [4.0.4] - 2026-07-16
|
|
686
|
+
|
|
687
|
+
- Added a Settings-based Markdown knowledge health audit for every registered
|
|
688
|
+
personal and team knowledge base, with per-project file size, deterministic
|
|
689
|
+
fixes, structural errors, and semantic-review findings.
|
|
690
|
+
- Added safe batch or per-project optimization with retained backups under the
|
|
691
|
+
configured knowledge root, atomic writes, formatting repair, compact index
|
|
692
|
+
regeneration, and automatic LanceDB refresh for migrated projects.
|
|
693
|
+
- Reduced generated change indexes to the latest 40 entries with bounded cells
|
|
694
|
+
and generated-file markers; a real 125 KiB legacy index now rebuilds to about
|
|
695
|
+
9 KiB without deleting its source change documents.
|
|
696
|
+
- Prevented background AI automation from writing `00-index.md`, injected
|
|
697
|
+
mandatory in-place-update hygiene rules even for custom prompts, and rebuilt
|
|
698
|
+
compatibility indexes after every successful automatic update.
|
|
699
|
+
- Preserved Team Knowledge Mode by de-duplicating shared physical KB paths
|
|
700
|
+
during maintenance while refreshing every aliased vector space.
|
|
701
|
+
- Expanded the complete regression suite to 48 passing test files.
|
|
702
|
+
|
|
703
|
+
## [4.0.3] - 2026-07-15
|
|
704
|
+
|
|
705
|
+
- Added an embedding-model setup panel with one-click download and real
|
|
706
|
+
inference verification, configurable Hugging Face endpoint/mirror, local
|
|
707
|
+
model directory, offline mode, and copyable PowerShell environment-variable
|
|
708
|
+
examples.
|
|
709
|
+
- Stop a migration batch before changing any project when the shared embedding
|
|
710
|
+
model cannot load, instead of reporting the same model failure once for every
|
|
711
|
+
project.
|
|
712
|
+
- Surface migration failures through a prominent settings panel, a one-time
|
|
713
|
+
browser alert, detailed per-project errors, and direct retry actions.
|
|
714
|
+
- Persist model settings and verified download state while rejecting partial
|
|
715
|
+
cache files or verification results from a different model configuration.
|
|
716
|
+
- Expanded the complete regression suite to 46 passing test files.
|
|
717
|
+
|
|
718
|
+
## [4.0.2] - 2026-07-15
|
|
719
|
+
|
|
720
|
+
- Store LanceDB, its maintenance metadata, and retained database backups under
|
|
721
|
+
`<configured knowledge root>/.project-knowledge/` instead of a fixed app-data
|
|
722
|
+
location.
|
|
723
|
+
- Automatically relocate v4.0.0/v4.0.1 databases on startup to the knowledge
|
|
724
|
+
root already selected in Settings.
|
|
725
|
+
- Safely relocate and verify the database before saving a changed knowledge
|
|
726
|
+
root, including cross-volume copies, target-conflict protection, and retained
|
|
727
|
+
backup path rebasing.
|
|
728
|
+
- Display the effective vector database path directly below the Knowledge Store
|
|
729
|
+
root setting.
|
|
730
|
+
- Expanded the complete regression suite to 45 passing test files, including
|
|
731
|
+
real LanceDB startup and live root-change relocation tests.
|
|
732
|
+
|
|
733
|
+
## [4.0.1] - 2026-07-15
|
|
734
|
+
|
|
735
|
+
- Excluded generated `00-index.md` files from embedding and removed stale
|
|
736
|
+
derived-index rows while retaining the Markdown files for legacy and Team
|
|
737
|
+
Knowledge Mode compatibility.
|
|
738
|
+
- Replaced unbounded Tags and change lists in generated Markdown indexes with
|
|
739
|
+
compact, capped navigation metadata; all module links remain available.
|
|
740
|
+
- Stopped running LanceDB compaction after every commit. Maintenance now runs
|
|
741
|
+
only after bounded mutation thresholds and never rewrites the oversized
|
|
742
|
+
v4.0.0 full-text index in place.
|
|
743
|
+
- Added a compact full-text schema that indexes `chunk_text` once with Chinese
|
|
744
|
+
bigrams instead of storing and indexing a second full document copy.
|
|
745
|
+
- Added one-click, atomic database rebuilding with disk statistics, vector and
|
|
746
|
+
keyword verification, optional retained backup, and manual rollback.
|
|
747
|
+
- Added upgrade and regression coverage for old v4.0.0 databases; the complete
|
|
748
|
+
suite now contains 43 passing test files.
|
|
749
|
+
|
|
750
|
+
## [4.0.0] - 2026-07-15
|
|
751
|
+
|
|
752
|
+
- Added a local LanceDB knowledge store containing original text, metadata,
|
|
753
|
+
and 512-dimensional `Xenova/bge-small-zh-v1.5` embeddings.
|
|
754
|
+
- Added incremental Markdown indexing with heading-aware chunks, content-hash
|
|
755
|
+
skips, stale-chunk deletion, Chinese n-gram/BM25 search, and hybrid RRF.
|
|
756
|
+
- Added scoped `search`, `get`, `ask`, and `history` HTTP/CLI tools that return
|
|
757
|
+
readable source text without exposing raw vectors.
|
|
758
|
+
- Added explicit, bidirectional, non-transitive related-project search scopes;
|
|
759
|
+
writes remain restricted to each project's primary space.
|
|
760
|
+
- Preserved Team Knowledge Mode: Git remains the portable Markdown transport,
|
|
761
|
+
stable team `kbId` values map to local spaces, and vectors stay local.
|
|
762
|
+
- Added resumable one-click migration for all legacy KBs with backups,
|
|
763
|
+
verification probes, per-project atomic cutover, retry, and rollback.
|
|
764
|
+
- Centralized Claude Code instructions in one user-relative file and added a
|
|
765
|
+
safe bulk refresh for all managed `CLAUDE.md` blocks independent of Hooks.
|
|
766
|
+
- Enforced development-time read-only KB access; post-commit automation owns
|
|
767
|
+
routine updates and re-indexes migrated projects after successful runs.
|
|
768
|
+
- Added configurable mirrored/offline embedding model locations through
|
|
769
|
+
`KB_EMBEDDING_REMOTE_HOST` and `KB_EMBEDDING_LOCAL_PATH`.
|
|
770
|
+
- Expanded the regression suite to 41 test files.
|
|
771
|
+
|
|
772
|
+
## [2.4.7] - 2026-07-01
|
|
773
|
+
|
|
774
|
+
- Initial public Apache-2.0 release of the local-first `project-knowledge`
|
|
775
|
+
core.
|
|
776
|
+
- Includes the CLI, local dashboard, Git scanner, project registry,
|
|
777
|
+
knowledge-base workflow, AI profile support, prompt registry, templates,
|
|
778
|
+
and regression tests.
|
|
779
|
+
- Keeps runtime data, local project knowledge bases, API keys, generated AI
|
|
780
|
+
drafts, logs, and local maintenance notes outside the public repository.
|