Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
341 commits
Select commit Hold shift + click to select a range
0ec769f
merge: B-SPEED planet read routes into the native-orch brain integration
plugmil Sep 23, 2026
8bf01d6
merge: K2 decisions, sources and graph views into the native-orch bra…
plugmil Sep 23, 2026
e071c01
perf(brain): bound signal-free graph projections
plugmil Sep 23, 2026
b50b9b5
feat(onboarding): guide first standalone Brain start
plugmil Sep 23, 2026
7b87337
fix(planet): canonicalize writable workspace identity
plugmil Sep 23, 2026
5936f4e
chore(build): verify standalone Brain payload
plugmil Sep 23, 2026
554b80d
test(brain): add gold corpus v2
plugmil Sep 23, 2026
ea5c0bd
test(brain): stabilize load budget measurements
plugmil Sep 23, 2026
15c380c
feat(brain): scope impact test coverage and module candidates
plugmil Sep 23, 2026
e9c1582
feat(onboarding): guide first standalone Brain start
plugmil Sep 23, 2026
ef885b8
feat(standalone): prove knowledge UI golden path
plugmil Sep 23, 2026
2d1c4a2
merge: M15A-STABLE-PLANET-IDENTITY into the native-orch brain integra…
plugmil Sep 23, 2026
2bf9015
merge: BRAIN-SPEED-2 into the native-orch brain integration
plugmil Sep 23, 2026
01243de
merge: BRAIN-FLAKE into the native-orch brain integration
plugmil Sep 23, 2026
535d12f
merge: BRAIN-M16B into the native-orch brain integration
plugmil Sep 23, 2026
edf7dbe
merge: M18A-GOLD-CORPUS-V2 into the native-orch brain integration
plugmil Sep 23, 2026
21d30e3
merge: K3-BRAIN-START into the native-orch brain integration
plugmil Sep 23, 2026
6540f7f
merge: K4-STANDALONE into the native-orch brain integration
plugmil Sep 23, 2026
6ab8e98
test(standalone): cover packaged Brain UI golden path
plugmil Sep 23, 2026
e016c8a
merge: GP2-BRAIN-KNOWLEDGE into the native-orch brain integration
plugmil Sep 23, 2026
a2910b8
test(brain): classify sustained host overload
plugmil Sep 23, 2026
f26c1cd
test(brain): report host overload distinctly
plugmil Sep 23, 2026
09988f7
merge: FLAKE host overload reporting
plugmil Sep 23, 2026
1f7a4a3
feat(coord): swarm-ops board, turn protocol and resource admission
plugmil Sep 23, 2026
1d8ab30
merge: SWARM-OPS into the native-orch brain integration
plugmil Sep 23, 2026
556ff49
feat(coord): retire a worker without losing its history
plugmil Sep 23, 2026
2397579
merge: SWARM-OPS into the native-orch brain integration
plugmil Sep 23, 2026
58c9520
feat(coord): claim and release write leases from the swarm CLI
plugmil Sep 23, 2026
7d87700
merge: SWARM-OPS into the native-orch brain integration
plugmil Sep 23, 2026
c899e06
feat(index): prune the rows of checkouts the selection no longer keeps
plugmil Sep 23, 2026
ffc4d66
feat(plan): the master ledger as a brain view, notes over MCP, hermet…
plugmil Sep 23, 2026
e069a76
perf(store): lead the per-file edge indexes with the file, not the wo…
plugmil Sep 23, 2026
4f2e0e3
fix(indexer): walk a checkout as git sees it, without its ignored output
plugmil Sep 23, 2026
ce16e45
fix(intel): rank concept queries by identifier words, not by one subs…
plugmil Sep 23, 2026
58263d6
merge: BRAIN-DB-HEALTH into the native-orch brain integration
plugmil Sep 23, 2026
a388e66
feat(install): start the Core at sign-in and put `plugbrain` on the u…
plugmil Sep 23, 2026
390fd7b
merge: per-user autostart and CLI on PATH into the brain integration
plugmil Sep 23, 2026
2fa4549
feat(store): an older build opens a newer store read-only
plugmil Sep 23, 2026
025c4c9
merge: writer fence (0.2.1) into the brain integration
plugmil Sep 23, 2026
34c9a02
fix(install): a silent install or uninstall never opens a dialog
plugmil Sep 23, 2026
86c42e5
merge: silent installer dialogs (0.2.2) into the brain integration
plugmil Sep 23, 2026
da97936
feat(swarm): a worker hands in its claimed task with `swarm deliver`
plugmil Sep 23, 2026
ebc1cdc
merge: swarm deliver (0.2.3) into the brain integration
plugmil Sep 23, 2026
2f1c66a
feat(ui): obsidian live markdown preview, tag drawer and roadmap velo…
plugmil Sep 25, 2026
3b4c219
fix(ui): show only real data — drop roadmap mock, link allow-list, to…
plugmil Sep 25, 2026
0ccea03
fix(cli): find the brain home when the process env lacks PLUGBRAIN_HOME
plugmil Sep 25, 2026
b612a13
test(gp2): resolve playwright from this repo, not a sibling checkout
plugmil Sep 25, 2026
74cfc09
merge: brain graph UX, honest UI and home resolution (0.2.4) into the…
plugmil Sep 25, 2026
497c740
fix(ui): V1 visual QA fixes - layout, tokens, controls and viewports
plugmil Sep 25, 2026
b8acdf9
merge: V1 visual acceptance fixes into the brain integration
plugmil Sep 25, 2026
32694d1
release: PlugBrain 0.2.5 — rebuilt UI bundle without the roadmap mock
plugmil Sep 25, 2026
9413e58
fix(notes): bound meta panels height, retain >= 50% editor space and …
plugmil Sep 25, 2026
4475036
merge: notes with many links keep their editor (V2) into the brain in…
plugmil Sep 25, 2026
1dc5638
release: PlugBrain 0.2.6 — notes keep their editor with many links
plugmil Sep 25, 2026
fe5cc57
ux(U0): Heuristik-Audit — 7 Befunde in AUDIT.md
plugmil Sep 25, 2026
cf18406
ux(U1): Navigation — vier Haupt-Tabs, Agenten-Gruppe
plugmil Sep 25, 2026
354861f
ux(U2): Erster Start und Vault — Landing, Fehlermeldungen, ehrlicher …
plugmil Sep 25, 2026
2919836
ux(U3): Notizen als Hauptarbeitsplatz — Notizkopf aufgeräumt, Schnell…
plugmil Sep 25, 2026
5636a0c
ux(U4): Graph mit Legende, Inspector für Notizen/Quellen und gemessen…
plugmil Sep 25, 2026
c90b270
ux(U5): Suche und Dateien — integrierte Suche über Notizen und Code m…
plugmil Sep 25, 2026
617b1f6
chore: remove ui/ux from repo; documentation lives in coordination cl…
plugmil Sep 25, 2026
505f986
ux(U6): Agenten-Werkzeuge ehrlich erklärt — Zweck, lesbare Claims, eh…
plugmil Sep 26, 2026
148b084
feat(bench): K1 frozen repository snapshots for benchmark v2
plugmil Sep 26, 2026
75bd8e5
ux(U7): Einstellungen — Theme, Vault-Verwaltung, Repos wählen, Tasten…
plugmil Sep 26, 2026
54bd8fc
feat(bench): K2 freeze 80 evaluation questions across four foreign re…
plugmil Sep 26, 2026
374e858
ux(U8): Abnahme — 8 Nutzeraufgaben erfolgreich durchlaufen und dokume…
plugmil Sep 26, 2026
790e8c3
feat(bench): K3 benchmark execution across PlugBrain, GitNexus, and C…
plugmil Sep 26, 2026
d190802
docs(bench): K4 complete benchmark results and comparison tables in R…
plugmil Sep 26, 2026
d8858b1
docs(bench): K5 concrete architectural improvements to win all catego…
plugmil Sep 26, 2026
200e484
ux(X0): 420px Anti-Overflow in allen Ansichten, neutrales Fokus-Badge…
plugmil Sep 26, 2026
c3df764
ux(X1): Startseite = Briefing — Kennzahlen, Einstiegspunkte, Hotspots…
plugmil Sep 26, 2026
c1b0be8
release: scrub internal paths and key-like fixtures ahead of public r…
plugmil Sep 26, 2026
1fe7de1
release: add MIT license and public repository metadata
plugmil Sep 26, 2026
9bd0848
release: add Claude Code plugin with marketplace entry, MCP config, s…
plugmil Sep 26, 2026
11735ca
feat(setup): resolve the mcp workspace from the working folder
plugmil Sep 26, 2026
1ca5a52
Add the plain-language ask router (ASK-01 A1)
plugmil Sep 26, 2026
a701d81
release: cross-platform packaging plus CI and release workflows
plugmil Sep 26, 2026
71e7bbe
release: English README with comparison and quickstart, community fil…
plugmil Sep 26, 2026
512f324
release: add DEVLOG.md scaffold
plugmil Sep 26, 2026
7715c3f
feat(bench): Q0 freeze 40 holdout questions before improvements
plugmil Sep 26, 2026
2c70c98
ux(X2): Frag-Feld — global Strg+K / /, Antwort mit Quellen und Folgef…
plugmil Sep 26, 2026
da596c5
chore: move debug scripts out of repo root (in closeout ux/scripts/)
plugmil Sep 26, 2026
a7a44ad
release: add strict-tsc entry point and bundled-CLI smoke step
plugmil Sep 26, 2026
889a3a4
Add the ask answer builder and project briefing (ASK-01 A2)
plugmil Sep 26, 2026
08c250a
fix(store): busy_timeout on every connection + bounded busy retry
plugmil Sep 26, 2026
f75abd0
feat(hygiene): H1 collector — the honest git inventory per checkout
plugmil Sep 26, 2026
32c846a
feat(hygiene): H2 findings — plain sentences with the command that fi…
plugmil Sep 26, 2026
ddf54ce
feat(hygiene): H4 wip-snapshot — rescue uncommitted work, touch nothi…
plugmil Sep 26, 2026
a7fbd69
feat(hygiene): H3 surfaces — /api/hygiene, MCP tool hygiene, CLI hygiene
plugmil Sep 26, 2026
7e22af2
test(hygiene): H5 real-repo coverage incl. the snapshot-safety proof
plugmil Sep 26, 2026
5979c3d
feat(setup): write the plugbrain MCP entry into seven client configs
plugmil Sep 26, 2026
e0093bc
feat(setup): add `plugbrain init` and end-to-end stdio coverage
plugmil Sep 26, 2026
ad61f14
feat(indexer): Q1 Java and polyglot AST extractors with gold test ver…
plugmil Sep 26, 2026
38ed737
feat(server): core.json endpoint file — atomic write, stale-aware rea…
plugmil Sep 26, 2026
d99764f
test(coordination): deflake expired-lease fencing with a 2s TTL
plugmil Sep 26, 2026
478fe48
ux(X3): Ansicht Aufraeumen (Hygiene) — Ampel ohne Orange, Checkouts, …
plugmil Sep 26, 2026
82981de
docs(setup): add the English quickstart and a non-mutating init --dry…
plugmil Sep 26, 2026
74e90aa
ux(X4): Kontext kopieren — In Kontext-Paketen und Suche 'Als Kontext …
plugmil Sep 26, 2026
cecf32d
feat(search): Q2 FTS5 trigram inverted index and fast B-tree symbol s…
plugmil Sep 26, 2026
a91f053
feat(intel): Q3 impact fallback, config/env extraction, markdown doc …
plugmil Sep 26, 2026
98e554e
feat(machine): M1 hardware state — drives, pagefile, forecast
plugmil Sep 26, 2026
24eb58a
Expose ask and briefing on HTTP, MCP and CLI (ASK-01 A3–A5)
plugmil Sep 26, 2026
141cec0
feat(indexer): Q4 eliminate index bloat and ignore competitor/build d…
plugmil Sep 26, 2026
40ab12e
docs(bench): update Q4 commit hash
plugmil Sep 26, 2026
676bbbd
feat(machine): M2 global git census — bounded, cached, background-ref…
plugmil Sep 26, 2026
46a884c
feat(bench): Q5 complete re-benchmark of 120 questions across PlugBra…
plugmil Sep 26, 2026
a9d7d70
docs(bench): Q6 README summary and honest 120-question comparison table
plugmil Sep 26, 2026
ae69ec6
fix(ux): remove all emojis across UI and fix live-graph vitest suite
plugmil Sep 26, 2026
400787c
fix(ux): routeMissing discriminator for 404/501 instead of truthy una…
plugmil Sep 26, 2026
76d496b
feat(machine): M3 findings — merge host facts with the census
plugmil Sep 26, 2026
bee00e6
fix(bench): BENCH-04 integrator alignment, cold-warm parity, audit ra…
plugmil Sep 26, 2026
013dba7
merge: ASK-01 plain-language ask and project briefing (review PASS)
plugmil Sep 26, 2026
e8f9cef
feat(planet): pin workspace identity in the git common dir
plugmil Sep 26, 2026
c4cf3da
test(load-budget): re-measure once when a sample trips the no-hang guard
plugmil Sep 26, 2026
f8aca9b
fix(bench): BENCH-05 fair competitor evaluation, top-3 candidates par…
plugmil Sep 26, 2026
782545c
release: keep private paths out of the public export
plugmil Sep 26, 2026
bd8a81a
test(queue): Q-chain E2E with daemon restart and idempotent double de…
plugmil Sep 26, 2026
5aefcd4
feat(machine): M4 surfaces — /api/machine, /api/repos, MCP and CLI tools
plugmil Sep 26, 2026
68f33fa
test(machine): M5 cover the cached census, the read routes and the MC…
plugmil Sep 26, 2026
1ccec1d
merge: REL-01/02 public release groundwork — MIT, README, plugin, CI,…
plugmil Sep 26, 2026
a7dce46
build: declare @types/node so the strict typecheck can resolve node t…
plugmil Sep 26, 2026
b99343c
test: accept CRLF frontmatter in the plugin skill check so Windows ch…
plugmil Sep 26, 2026
94713a7
test(evidence): full-vs-delta index parity and backup/restore round-t…
plugmil Sep 26, 2026
63cd1c9
test(coordination): count the hygiene and machine MCP tools
plugmil Sep 26, 2026
9b3b5f3
fix(hygiene): a failed wip-snapshot must not claim its proofs
plugmil Sep 26, 2026
4087053
fix(setup): undo rolls back created files honestly and backs up the c…
plugmil Sep 26, 2026
d1b5342
fix(setup): init --dry-run creates no plugbrain.db
plugmil Sep 26, 2026
9b4d0b3
types: name node:sqlite rows at one cast point (coord/*)
plugmil Sep 26, 2026
574fa5b
merge: HYG-01/02 git hygiene guard and machine awareness (review PASS)
plugmil Sep 26, 2026
f72dd8c
merge: BRAIN-BE-01 store robustness, core endpoint file, workspace id…
plugmil Sep 26, 2026
d975923
merge: SETUP-01/02 one-command init and client setup with honest undo…
plugmil Sep 26, 2026
c045baa
types: name the SQLite rows in access, missions, queue and trace
plugmil Sep 26, 2026
2d606b2
fix(ux): distinguish missing routes from unreachable and failing ones
plugmil Sep 26, 2026
82ea7ae
fix(ux): add the info, file and code icons the new views use
plugmil Sep 26, 2026
dae7846
types: type the query bindings and row shapes in intel, projections, …
plugmil Sep 26, 2026
c3333ea
docs: add complete MCP tools reference in docs/mcp-tools.md (D1)
plugmil Sep 26, 2026
349eed0
docs: add HTTP API reference in docs/http-api.md (D2)
plugmil Sep 26, 2026
7067640
docs: add CLI reference in docs/cli.md (D3)
plugmil Sep 26, 2026
db09cc5
docs: streamline README MCP tools section with link to reference (D4)
plugmil Sep 26, 2026
7059565
test: add docs consistency test for MCP tools and CLI commands (D5)
plugmil Sep 26, 2026
c0fd9c7
docs: use neutral example paths
plugmil Sep 26, 2026
57d4717
fix(store): backfill the trigram index on stores that predate it
plugmil Sep 26, 2026
4133579
test(ux): run the UI unit tests on node:test so no vitest is needed
plugmil Sep 26, 2026
6603a48
test: make fencing and no-hang timing asserts robust against schedule…
plugmil Sep 26, 2026
3ebec45
merge: BRAIN-UX-01/02 + UX-03..06 briefing, ask field, cleanup view, …
plugmil Sep 26, 2026
473fb2e
merge: BENCH-02..06 honest benchmark v2, polyglot extractors, trigram…
plugmil Sep 26, 2026
0d63e36
test: say what the no-hang test actually bounds per call and on the m…
plugmil Sep 26, 2026
b57e771
merge: DOCS-01 reference docs for MCP tools, HTTP API and CLI with a …
plugmil Sep 26, 2026
4b69252
test: give the failed-run test its own temp store so leftovers cannot…
plugmil Sep 26, 2026
b1eaf5b
docs: fill the README benchmark section with the fair BENCH-05 number…
plugmil Sep 26, 2026
721e2ee
docs: describe GitNexus and CodeGraph accurately; both are local CLIs…
plugmil Sep 26, 2026
325d135
docs: real screenshots of the 0.3.0 views
plugmil Sep 26, 2026
f909321
docs: say that the web interface is German for now
plugmil Sep 26, 2026
0fe8d8f
refactor(types): move ui-mesh test to ui/src/lib to preserve UI/Node …
plugmil Sep 26, 2026
e014925
fix(cli): provide workspace in singleRepoSnapshot and defer singleWor…
plugmil Sep 26, 2026
acb33e0
fix(types): resolve root tsc errors in T2 core modules
plugmil Sep 26, 2026
23db6cc
fix(types): resolve root tsc errors in T2 test suites
plugmil Sep 26, 2026
730718b
types: keep the migration rationale and avoid a new double cast
plugmil Sep 26, 2026
bb51558
merge: SHOTS-01 real screenshots of the 0.3.0 views, X5 acceptance 11…
plugmil Sep 26, 2026
64bda5b
merge: TYPES-02 strict typecheck phase T2 on the integrated tree, 203…
plugmil Sep 26, 2026
4833025
build: installer version 0.3.0
plugmil Sep 26, 2026
548d5f5
docs: complete the 0.3.0 changelog, devlog and security notes
plugmil Sep 26, 2026
85e44c6
docs: correct the 0.3.0 changelog against the code
plugmil Sep 26, 2026
9bc449c
bench: take corpus locations from BENCH_REPOS_ROOT, no private paths
plugmil Sep 26, 2026
97800fc
types: type the T1 test imports and MCP tool result casts
plugmil Sep 26, 2026
a64ba0f
bench: honest results header - own projects, version from package.json
plugmil Sep 26, 2026
285c3a8
test: verify:standalone checks the active theme and all current views
plugmil Sep 26, 2026
9943e20
bench: fail with a non-zero exit when the corpus root is missing
plugmil Sep 26, 2026
8bc5251
merge: VERIFY-01 verify:standalone checks the active theme and all cu…
plugmil Sep 26, 2026
21eedab
merge: NOTES-01 complete 0.3.0 changelog, devlog and security notes, …
plugmil Sep 26, 2026
13843be
docs: generic agent ids in examples, 503 busy example matches the server
plugmil Sep 26, 2026
713b7d8
merge: PUB-01/PUB-02 bench corpus from BENCH_REPOS_ROOT, honest resul…
plugmil Sep 26, 2026
2706b0d
merge: TYPES-01 strict typecheck phase T1, root tsc 61 -> 0 on the in…
plugmil Sep 26, 2026
90e14ad
fix: proof receipts and UX screenshots stay under the caller's control
plugmil Sep 26, 2026
01790d4
fix: a vault opened through a linked path can read its own files
plugmil Sep 26, 2026
6e34264
ci: release dry run on any branch, readable Tier 1 failures
plugmil Sep 26, 2026
30444e4
fix(ui): wait out a running index before giving up on the agent attach
plugmil Sep 26, 2026
9ad8644
test: GP-2 always closes its server and store; CI installs Chromium f…
plugmil Sep 26, 2026
afb23c5
docs: README around the agent team, correct swarm reference, agent pr…
plugmil Sep 26, 2026
e39334e
release: 0.3.1
plugmil Sep 26, 2026
5437053
test: no test depends on private git history or on PowerShell off Win…
plugmil Sep 26, 2026
568b938
fix: one folder, one spelling (canonical paths in hygiene, census, wo…
plugmil Sep 26, 2026
4cb6f54
feat(swarm): notice quiet workers, order tasks, and sign messages
plugmil Sep 26, 2026
ddf6f0f
feat(swarm): the Brain starts and watches CLI workers itself
plugmil Sep 26, 2026
c22e4bc
test: skip the macOS store-event case, name it as a known issue
plugmil Sep 26, 2026
4dfde5b
test: move the identity fixture with a rename instead of copying .git
plugmil Sep 26, 2026
ee020dd
docs: one setup page per MCP client under docs/agents/
plugmil Sep 26, 2026
2bdead2
fix(watchdog): address review findings on silence detection, --after …
plugmil Sep 26, 2026
d9204a0
feat(swarm): chronicle, next actions on the board, delivery at turn end
plugmil Sep 26, 2026
ccafa2d
fix(runner): address review findings on swarm run process handling
plugmil Sep 26, 2026
23484df
feat(swarm): reaper removes merged, clean, idle worktrees (off by def…
plugmil Sep 26, 2026
d884210
feat(ui): turn timeline and read-only swarm API
plugmil Sep 26, 2026
8a72d79
feat(setup): init writes the agent protocol block, doctor --agents
plugmil Sep 26, 2026
fc0172c
feat(disk): disk atlas CLI and API with recommendations
plugmil Sep 26, 2026
fb02b46
feat(swarm): swarm watch as a brain function
plugmil Sep 26, 2026
8a55b5d
merge: BR-3 worktree reaper
plugmil Sep 26, 2026
334387d
merge: UI turn timeline
plugmil Sep 26, 2026
c3442fd
merge: swarm watch
plugmil Sep 26, 2026
8f3d29d
fix: preserve reaper behavior in swarm turn events
plugmil Sep 26, 2026
e7d3e22
merge: watchdog fixes
plugmil Sep 26, 2026
2a1cbec
fix agent protocol repair workflows
plugmil Sep 26, 2026
0eb4f7c
merge: swarm chronicle and task delivery
plugmil Sep 26, 2026
16215c9
fix: compare and store workspace paths canonically (PATH-02 follow-ups)
plugmil Sep 26, 2026
64adcda
fix: integrate chronicle notices and reaper command
plugmil Sep 26, 2026
ebf3a8d
merge: swarm run runner fixes
plugmil Sep 26, 2026
60c5a66
fix: deduplicate integrated runner imports
plugmil Sep 26, 2026
c171018
merge: agent setup and doctor
plugmil Sep 26, 2026
36def11
merge: agent setup pages
plugmil Sep 26, 2026
e892a86
merge: disk atlas
plugmil Sep 26, 2026
ff53e4b
build: refresh v0.4.0 UI bundle
plugmil Sep 26, 2026
dfd14b8
fix(swarm): watch resumes, dedupes, and reports deliveries (R-BR2C au…
plugmil Sep 26, 2026
0b6e69c
Reuse awareness claim snapshot under load
plugmil Sep 26, 2026
d59a88b
fix(reaper): address R-BR3 review findings
plugmil Sep 27, 2026
e1e319f
ci: run the time-budget tests in their own serial step (R-PERF A1)
plugmil Sep 27, 2026
3f80bbe
feat: require delivery evidence and bound chronicle
plugmil Sep 27, 2026
fe02b46
merge: integrate reaper review fixes
plugmil Sep 27, 2026
f244e8a
merge: integrate swarm watch review fixes
plugmil Sep 27, 2026
6e56944
Merge commit '16215c9277d0a5249628d0e7fb901ccd31ad59e1' into integrat…
plugmil Sep 27, 2026
a7dde7a
Merge commit '2a1cbecd908484a04c4e26cb62ac6ded9db2ba7e' into integrat…
plugmil Sep 27, 2026
c8b82d1
merge: integrate delivery evidence contract
plugmil Sep 27, 2026
6d2f04a
fix: synchronize embedded agent protocol with docs
plugmil Sep 27, 2026
be89ae3
feat: make swarm message delivery durable
plugmil Sep 27, 2026
62d47b8
feat(supervisor): refill swarm worker queue
plugmil Sep 27, 2026
cfe3271
feat(swarm): coordinate provider quota pools
plugmil Sep 27, 2026
ea4cbb6
feat: add shared Gemini and NVIDIA LLM client
plugmil Sep 27, 2026
636f834
merge: integrate reviewed awareness budget fix
plugmil Sep 27, 2026
0f78330
feat(plan): decompose ledger targets into queue specs
plugmil Sep 27, 2026
86bd8ee
feat(plan): show full decomposition criteria
plugmil Sep 27, 2026
0edbcad
docs(plan): record AP-02 evidence
plugmil Sep 27, 2026
46c3c1b
fix: require HTTPS for provider credentials
plugmil Sep 27, 2026
0900bc5
docs: record AP-01 delivery evidence
plugmil Sep 27, 2026
a0bb3c0
merge: integrate reviewed provider client
plugmil Sep 27, 2026
052b5f5
feat: add evidence-based wave completion
plugmil Sep 27, 2026
44ddfed
fix: require an authoritative wave manifest
plugmil Sep 27, 2026
72aa163
merge: integrate reviewed supervisor and quota controls
plugmil Sep 27, 2026
b7a69b3
merge: integrate reviewed durable delivery
plugmil Sep 27, 2026
43fd227
Merge commit '44ddfedd55da6fa8c1fde8306c2d2f3e2c6c0f07' into integrat…
plugmil Sep 27, 2026
f94cb2e
feat: automate fleet review handoffs
plugmil Sep 27, 2026
18a38d9
feat(plan): integrate AP-02 decomposition
plugmil Sep 27, 2026
9dbf3d1
fix: require cross-family review routing
plugmil Sep 27, 2026
ccd4f70
feat: add audited swarm queue operations
plugmil Sep 27, 2026
9f8cfc6
Merge commit '9dbf3d1245e3508de69876aac8213bd29a85ed37' into integrat…
plugmil Sep 27, 2026
9dd3e10
Prepare queue operations against int04 with preserved fleet automation
Sep 28, 2026
467e5bb
Connect reviewed integration candidate to public main history
Sep 28, 2026
a1cbd8b
Test native worker runs only on supported platforms
Sep 28, 2026
b5eda4d
Test worktree identities with canonical temporary paths
Sep 28, 2026
ff80359
Resolve physical Windows paths before validating delivery evidence
Sep 28, 2026
2dbabd3
Wait for worker exit before testing atomic failure reconciliation
Sep 28, 2026
2a58093
Register the non-Windows runner fixture with its required account
Sep 28, 2026
ea2260a
fix(runner): reject unsupported supervisor platforms
plugmil Sep 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
},
"metadata": {
"description": "PlugBrain — local project and code memory for AI agents",
"version": "0.3.0"
"version": "0.3.1"
},
"plugins": [
{
"name": "plugbrain",
"source": "./",
"description": "Ask the brain first: AST code intelligence, Obsidian-style notes and agent coordination for this repository, served locally over MCP.",
"version": "0.3.0",
"version": "0.3.1",
"license": "MIT",
"category": "productivity",
"keywords": [
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "plugbrain",
"version": "0.3.0",
"version": "0.3.1",
"description": "Local project and code memory for AI agents: AST code intelligence, Obsidian-style notes and multi-agent coordination, asked through MCP.",
"author": {
"name": "litbitrim"
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ jobs:
- name: Install UI dependencies
run: npm ci --prefix ui

# GP-2 drives the real UI in Chromium. CI is the one place where the
# browser is downloaded (release.yml does the same). Without it GP-2 fails,
# and before v0.3.1 that failure also left the whole test run hanging.
- name: Install Chromium for the UI end-to-end test
run: node node_modules/playwright-core/cli.js install chromium

# Advisory, not blocking: the core runs on --experimental-strip-types
# and carries pre-existing strict-tsc findings in src/ that REL-01 is
# not allowed to touch. The gate makes the debt visible; the load-check
Expand All @@ -47,5 +53,11 @@ jobs:
- name: Run tests
run: npm test

# Timing budgets need the machine to themselves: measured beside other
# test files they measure contention, not the product. `npm test` reports
# them as skipped; this serial step is the only place they run, on every OS.
- name: Run budget tests
run: npm run test:budget

- name: Secret scan
run: npm run secret:scan
57 changes: 56 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,62 @@ All notable changes to PlugBrain are documented here.
The format follows [Keep a Changelog](https://keepachangelog.com/) and the
project adheres to [Semantic Versioning](https://semver.org/).

## [0.3.0] — 2026-09-26
## [0.3.1] — 2026-09-26

The `v0.3.0` tag exists, but no 0.3.0 release was published: its cross-platform
verification failed on macOS and Windows. 0.3.1 is the first published build.

### Fixed

- **A vault opened through a linked path could not read its own notes.** When
the vault root was reached through a junction, a symlink or the macOS
`/var` → `/private/var` link, path containment compared each file's real path
with the unresolved root and refused the vault's own files. The root is now
resolved once. Traversal and links that point outside the vault are still
refused.
- **Opening a note during an index run failed silently in the web UI.** While an
index run holds the store's writer lock, the daemon answers store-writing
requests with `503` and `retryAfterMs`. The page gave up on the first `503`
when it attached its agent, so the following read went out without a
registered agent and the note stayed closed. The attach now waits and asks
again for up to 60 seconds.
- **The test suite could hang on a machine without Chromium.** The UI end-to-end
test launched the browser before its cleanup guard. A missing browser left the
test server and the store open, and the run never ended. The test now always
closes what it opened, and CI installs Chromium for it.
- **One folder, one spelling.** Hygiene, the checkout census, workspace
recognition and the daemon compared paths as text. On Windows a folder can
arrive as an 8.3 short name (`C:\Users\RUNNER~1\...`), on macOS as
`/var/...` or `/private/var/...`. Hygiene then missed checkouts and a
registered workspace was not recognised on the next run. Paths are now made
canonical before they are compared; what you typed is still what is shown.
- Two tests only passed in the author's checkout: one read a schema from
private git history, two probes needed PowerShell on Linux. Both are
portable now.

### Changed

- The release workflow can be dry-run on any branch (`workflow_dispatch`).
Publishing still happens only for `v*` tags. When the first UI check of
`verify:standalone` times out, it prints what the daemon and the page saw.
- The README now describes what PlugBrain is for: coordinating many agents on
one project, on top of a shared code and notes index. The screenshots are gone
from it, and it states what is not there yet.
- `docs/cli.md` documents every `swarm` subcommand with its real arguments. The
previous section had wrong signatures (for example `send`, `register`,
`release`) and left out `enqueue`, `ack`, `approve`, `deliver` and `quota`.
- New `docs/agent-protocol.md`: the per-turn rules as a block to paste into a
project's `AGENTS.md` or `CLAUDE.md`.

### Known issues

- **macOS:** when the brain store (`PLUGBRAIN_HOME`) lives inside a watched
vault, the file watcher reports a write to the store as a change of the vault
folder and the daemon starts a re-index that finds nothing to change. The
default store location, `~/.plugbrain`, is outside any vault and is not
affected. The test for this case is skipped on macOS until it is fixed.

## [0.3.0] — 2026-09-26 (tagged, not released)

First public release (MIT), first release prepared for Windows, macOS and
Linux.
Expand Down
179 changes: 110 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,122 +2,163 @@

[![CI](https://github.com/litbitrim/plugbrain/actions/workflows/ci.yml/badge.svg)](https://github.com/litbitrim/plugbrain/actions/workflows/ci.yml)

**PlugBrain is a local project and code memory for AI agents** — real AST-based
code intelligence over your repositories plus an Obsidian-style note vault,
exposed to Claude Code (and any MCP client) as one set of tools. Everything
runs on your machine. No cloud, no telemetry.
**One local brain for all the coding agents working on your project.**

> The web interface is currently in German. An English interface is planned.
> The CLI, the MCP tools, their answers and all documentation are in English.
Claude Code, Codex, Gemini, GLM, a local model, several of each: any agent that
can run a shell command can join the same PlugBrain. Agents take tasks from a
shared queue, claim the files they are about to change, check in at the start
and end of every turn, message each other and wait for a commit approval.
Underneath sits one index of the project's code and notes, so every agent starts
from the same knowledge instead of re-reading the repository.

![Briefing — project summary, entry points and hotspots](docs/images/briefing.png)
![Ask — query the knowledge graph and code symbols](docs/images/ask.png)
![Graph — interactive knowledge graph and dependencies](docs/images/graph.png)
![Notes — Obsidian-style markdown vault with backlinks](docs/images/notes.png)
![Cleanup — git hygiene and uncommitted work protection](docs/images/cleanup.png)
The aim is simple: more agents should mean more work done, not overwritten
files, duplicated tasks or an agent silently stuck for an hour.

## Why PlugBrain?
Everything runs on your machine: one SQLite file, a daemon on `127.0.0.1`, no
cloud, no telemetry. MIT licensed.

Code assistants forget. Every session starts from zero: the agent re-reads
files it has already read, misses the note where you wrote down *why* a
decision was made, and steps on other agents editing the same files.
Existing code-graph tools help with the code half of that problem:
## Status

- **GitNexus** and **CodeGraph** are good local code-graph tools. Both index
a codebase and answer symbol, caller and impact questions, both run as a
CLI and both can serve those answers to an agent over MCP.
- 0.3.1 is the first published release. It is developed on Windows; macOS and
Linux run the same tests and packaging checks in CI.
- PlugBrain's own development runs on it. On 26 September 2026 one board
coordinated Claude Code, three Codex CLI workers and four Freebuff workers on
this repository.
- The web UI and the output of `plugbrain swarm` are in German for now. The
other commands, the MCP tools and all documentation are in English.
- Not there yet: the store keeps only each agent's latest turn, so there is no
turn history to replay, and worktrees of merged branches are not removed
automatically. Both are being built.

What PlugBrain adds is the other half: the project's written knowledge and
the agents working on it, in the same local brain as the code.
## How agents work together

| | GitNexus | CodeGraph | PlugBrain |
| --- | --- | --- | --- |
| Code intelligence (symbols, callers, impact) | ✓ | ✓ | ✓ |
| Local CLI and MCP server | ✓ | ✓ | ✓ |
| Obsidian-style notes vault with code bindings | – | – | ✓ |
| Multi-agent claims, fencing and awareness | – | – | ✓ |
| Plain-language `ask` with cited sources | – | – | ✓ |
| Git hygiene: unsaved work across all checkouts | – | – | ✓ |
```bash
# Once per agent: who it is and which account it spends
plugbrain swarm register codex-1 --surface other --account openai --model gpt-6-luna
plugbrain swarm register claude-1 --surface claude-code --account anthropic

# Whoever plans, a person or an agent, queues work, optionally for one agent
plugbrain swarm enqueue "Fix the flaky login test" --body "Repro in issue #12" --to codex-1

# Every agent, at the start of every turn: read messages, take the offered task
plugbrain swarm turn codex-1 start --claim

# Before writing: claim the paths. A path another agent holds is refused.
plugbrain swarm claim codex-1 src/auth/login.ts --task <task-id>

# Before tests, builds or new worktrees: is there room? Exit 5 means no.
plugbrain swarm admit test

# At the end of every turn: exactly one state and a short summary
plugbrain swarm turn codex-1 end --state awaiting-commit --summary "Fixed the race, login tests pass"
plugbrain swarm release codex-1 --task <task-id>

# The integrator looks, approves, and sends the next hint
plugbrain swarm board --git
plugbrain swarm approve codex-1 --note "Reviewed. Commit it."
plugbrain swarm send codex-1 --subject "Next" --body "Rebase on main after your commit" --from integrator
```

A turn ends in one of four states: `needs-task` (done, give me work),
`awaiting-commit` (a tested change is ready), `blocked` (a real blocker, named in
the summary) or `paused`. `plugbrain swarm board` lists every agent once with its
account, turn state, unread messages, task, claims and worktree; with `--git` it
adds branch, head and uncommitted files, and it flags two agents writing in the
same worktree.

Agents that speak MCP find the board, turns, claims and messages as tools
(`swarm_board`, `swarm_turn`, `claim`, `release`, `message_send`, `inbox_read`,
`heartbeat`, `awareness`). Queueing, approving and admission are CLI-only today.

The "–" marks reflect the tools' documented commands as of September 2026.
If one of them has since gained a feature, please open an issue and we will
correct the table.
The per-turn rules for agents are written down so you can paste them into your
project's `AGENTS.md` or `CLAUDE.md`: [docs/agent-protocol.md](docs/agent-protocol.md).
All `swarm` commands: [docs/cli.md](docs/cli.md#swarm).

### How it measures up
## The index underneath

We compared PlugBrain with CodeGraph and GitNexus on 120 questions (definitions, callers, impact, config keys, docs) across four of the author's own projects. PlugBrain itself is not one of them. We wrote the questions ourselves. 40 of them were frozen before any tuning and serve as the honest holdout. Every tool was driven through its documented command-line interface, and every raw answer is stored next to the results.
The index answers the questions agents ask all day: where is this defined, who
calls it, what breaks if I change it, and what did we decide about it. The goal
is to match or beat GitNexus and CodeGraph on code questions and Obsidian on
project notes, in one index every agent shares.

**Code.** Symbols, callers and callees, impact of a change, changed files since a
revision, graph queries in Cypher, and `ask` for plain-language questions with
cited sources.

We compared PlugBrain with CodeGraph and GitNexus on 120 questions (definitions,
callers, impact, config keys, docs) across four of the author's own projects;
PlugBrain itself is not one of them. We wrote the questions ourselves. 40 were
frozen before any tuning and serve as the holdout. Every tool was driven through
its documented command-line interface, and every raw answer is stored with the
results.

| Tool | Holdout (40) | All questions (120) | Latency p50 | Latency p95 |
| :--- | :---: | :---: | :---: | :---: |
| PlugBrain | 38 / 40 | 106 / 120 | 265 ms (33 ms with the daemon running) | 478 ms |
| CodeGraph | 38 / 40 | 103 / 120 | 280 ms | 311 ms |
| GitNexus | 36 / 40 | 90 / 120 | 1,134 ms | 3,465 ms |

In short, PlugBrain answers three more of the 120 questions than CodeGraph and ties it on the holdout. Its real edge is speed once the daemon is warm, and that it also searches your notes. CodeGraph's call edges are still more complete on deeply polymorphic class hierarchies. Full method, raw answers, hand-checked misses and how to reproduce the run: [bench/v2/RESULTS.md](bench/v2/RESULTS.md).
PlugBrain ties CodeGraph on the holdout and answers three more of all 120
questions. CodeGraph's call edges are still more complete on deeply polymorphic
class hierarchies. Method, raw answers, hand-checked misses and how to rerun it:
[bench/v2/RESULTS.md](bench/v2/RESULTS.md).

**Notes.** A Markdown vault with wiki-links, backlinks, tags, properties and
full-text search, in the same index as the code. A note can point at a file
(`code:`), a revision (`revision:`) and an agent run (`agentenlauf:`). Compared
with Obsidian there is no canvas, no mobile app and no plugin ecosystem.

## Quickstart

**Windows:** download `PlugBrain-<version>-win-x64.exe` from
[Releases](https://github.com/litbitrim/plugbrain/releases) and run it. The
installer bundles a portable Node.js runtime — nothing else to install.
installer brings its own Node.js runtime.

**macOS / Linux:** grab `plugbrain-<version>-<os>-<arch>.tar.gz` from the same
releases page, unpack it and put `bin/plugbrain` on your `PATH`.
**macOS / Linux:** download `plugbrain-<version>-<os>-<arch>.tar.gz` from the same
page, unpack it and put `bin/plugbrain` on your `PATH`.

Then, inside your project folder:

```bash
# One-time: create the brain store and register this folder as a workspace
plugbrain init

# Start the local brain (UI + API + MCP transport)
plugbrain serve
plugbrain init # register this folder, index it, add PlugBrain to your MCP clients
plugbrain serve # the local daemon: web UI and API on http://127.0.0.1:4310
```

Open `http://localhost:4310` for the cockpit. The data directory defaults to
`~/.plugbrain`; set `PLUGBRAIN_HOME` to choose another location.

### Use it from Claude Code
`plugbrain setup --all` (or `claude`, `codex`, `cursor`, `windsurf`, `hermes`,
`agy`, `opencode`) adds PlugBrain to an MCP client later. It backs up the
client's config first; `--undo` restores it. The data directory defaults to
`~/.plugbrain`; set `PLUGBRAIN_HOME` to choose another one. One page per client,
with the file it writes, how to check it took effect and how to remove it again:
[docs/agents/](docs/agents/).

PlugBrain ships as a Claude Code plugin with its own marketplace entry:
### Claude Code plugin

```
/plugin marketplace add litbitrim/plugbrain
/plugin install plugbrain@plugbrain
```

The plugin starts the brain when needed (session hook), and gives Claude the
`skills/brain` skill: *ask the brain first* — context packs before edits,
impact analysis before renames, notes before re-deriving decisions.

## MCP tools

`plugbrain mcp` speaks the Model Context Protocol over stdio, giving agents instant access to code intelligence and knowledge:

- `ask` — Ask in plain language; routes to the right tool and returns one clear sentence with source citations.
- `context_pack` — Build goal-oriented context packs with relevant files, symbols, and dependencies.
- `query` — Concept search across indexed AST symbols, file paths, and notes.
- `context` — 360-degree symbol context: callers, callees, and execution flow memberships.
- `impact` — Blast-radius analysis showing upstream and downstream dependency changes before editing.

For the full reference of all tools (including search, notes, git hygiene, and multi-agent coordination), see [MCP Tools Reference](docs/mcp-tools.md).
The plugin starts the brain when a session needs it and gives Claude a skill that
asks the brain first: context before edits, impact before renames, notes before
re-deriving a decision.

## Privacy

- Everything stays on your machine: the store is a single SQLite database
under `PLUGBRAIN_HOME`, indexing runs locally, the UI is served locally.
- No telemetry, no analytics, no phone-home. The only network traffic is the
- The store is one SQLite database under `PLUGBRAIN_HOME`. Indexing runs locally
and the UI is served locally.
- No telemetry, no analytics, no phone-home. The only network listener is the
local HTTP server on `127.0.0.1`.
- The HTTP API requires a bearer token that is generated on first start and
kept in `<PLUGBRAIN_HOME>/auth.token`.
- The HTTP API requires a bearer token that is generated on first start and kept
in `<PLUGBRAIN_HOME>/auth.token`. The `swarm` commands work on the local store
directly and need no token.

## Development

```bash
git clone https://github.com/litbitrim/plugbrain
cd plugbrain
npm install
npm test # unit + integration tests (node:test)
npm test # unit and integration tests (node:test)
npm run serve # start the brain against the current folder
```

Expand Down
2 changes: 1 addition & 1 deletion desktop/PlugBrain.nsi
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Unicode true

!define PRODUCT_NAME "PlugBrain"
!define PRODUCT_VERSION "0.3.0"
!define PRODUCT_VERSION "0.3.1"
!define PRODUCT_PUBLISHER "PLUG"

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
Expand Down
9 changes: 7 additions & 2 deletions desktop/brain-url.test.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,12 @@ test('desktop launcher fails closed rather than adopting an unrelated Core', ()
assert.doesNotMatch(launcher, /PlugPT-Shell|electron\\dist/i);
});

test('the launcher quoting form keeps a spaced Core bundle as one Node argument', () => {
// The desktop launcher is a Windows PowerShell script; these two probes run
// that PowerShell. Linux runners have no `powershell`, so they only mean
// something on Windows.
const WINDOWS_LAUNCHER_ONLY = process.platform === 'win32' ? false : 'the PowerShell launcher only runs on Windows';

test('the launcher quoting form keeps a spaced Core bundle as one Node argument', { skip: WINDOWS_LAUNCHER_ONLY }, () => {
const expression = [
"$bundle = 'C:\\Program Files\\PlugBrain\\dist\\plugbrain.mjs'",
"$bundleArgument = [string][char]34 + $bundle + [char]34",
Expand All @@ -72,7 +77,7 @@ test('the launcher quoting form keeps a spaced Core bundle as one Node argument'
assert.equal(probe.stdout.trim(), '"C:\\Program Files\\PlugBrain\\dist\\plugbrain.mjs"');
});

test('PowerShell Start-Process delivers the quoted spaced bundle as one actual Node argv entry', () => {
test('PowerShell Start-Process delivers the quoted spaced bundle as one actual Node argv entry', { skip: WINDOWS_LAUNCHER_ONLY }, () => {
const dir = mkdtempSync(join(tmpdir(), 'plugbrain-launcher-'));
const probeScript = join(dir, 'argv-probe.cjs');
const probeOutput = join(dir, 'argv.json');
Expand Down
Loading
Loading