This website requires JavaScript.
18d01b64d7
chore(context): restore the root rules in AGENTS.md and system-prompt.txt (#200 ) (#201 )
main
mathias
2026-10-09 06:02:43 +00:00
5dfd2c0f7e
docs: main is protected, ship by PR (local-dev#42)
mathias and Claude Sonnet 5.5
2026-10-08 08:34:50 +02:00
22d0653b61
test(watcher): a marker link planted during the run is refused and not retried (#158 )
fix/pipeline-writes-158
mathias and Claude Opus 5.5
2026-10-05 23:47:24 +02:00
cdcff126ef
test(brain_edit): the rollback test proves the swap happened (#192 )
fix/edit-path-io-192
mathias and Claude Opus 5.5
2026-10-05 23:43:27 +02:00
d6ddac4a03
fix(metrics): label an unmatched request "unmatched", never its raw path (#185 )
mathias and Claude Opus 5.5
2026-10-05 23:42:45 +02:00
1a2a93d2f4
fix(watcher): refusals end in a terminal state; pin every converted writer (#158 )
mathias and Claude Opus 5.5
2026-10-05 23:40:19 +02:00
07ea5b01ec
fix(notes): the edit lock excludes other processes; pin OpenLock and the rollback (#192 )
mathias and Claude Opus 5.5
2026-10-05 23:36:56 +02:00
497cd5b6f3
fix(brain_edit): snapshot, rollback and lock file go through the brain root (#192 )
mathias and Claude Opus 5.5
2026-10-05 23:24:41 +02:00
4422dd1f69
test(symlinkguard): synchronise the alert-queue tests on observable completion (#193 )
mathias and Claude Opus 5.5
2026-10-05 23:33:55 +02:00
f65f0b7826
fix(audit): each ntfy alert source sends its own title (#163 )
mathias and Claude Opus 5.5
2026-10-05 23:28:38 +02:00
77c44f298c
fix: pipeline, backfill, watcher and archive writes go through the brain root (#158 part B)
mathias and Claude Opus 5.5
2026-10-05 22:54:53 +02:00
f4636c7ef0
fix: creating and generated writes go through the brain root (#188 , #158 part A) (#189 )
mathias and Claude Opus 5.5
2026-10-05 21:25:54 +00:00
ac84ddf5a9
test: pin CreateRegular directly and promote/reject with in-brain targets (#188 )
fix/create-regular-188
mathias and Claude Opus 5.5
2026-10-05 23:19:02 +02:00
bd989f887f
fix(linkcheck): keep the write when the link index cannot be built (#178 ) (#191 )
mathias and Claude Opus 5.5
2026-10-05 21:16:04 +00:00
4770f97ffd
fix(symlinkguard): report and remove FIFOs, sockets and devices too (#179 ) (#190 )
mathias and Claude Opus 5.5
2026-10-05 21:15:57 +00:00
db18785bfc
test: pin the edit symlink refusal, AppendRegular's clean check and Remove (#188 )
mathias and Claude Opus 5.5
2026-10-05 22:57:26 +02:00
e614d39e06
test(symlinkguard): an unremovable special file must not be reported as removed (#179 )
fix/guard-special-179
mathias and Claude Opus 5.5
2026-10-05 22:55:36 +02:00
edcfe9e9bc
test(symlinkguard): pin the alert for a special file Watch cannot remove (#179 )
mathias and Claude Opus 5.5
2026-10-05 22:51:19 +02:00
2f8b03fe15
fix(linkcheck): keep the write when the link index cannot be built (#178 )
fix/linkcheck-keeps-write-178
mathias and Claude Opus 5.5
2026-10-05 22:44:45 +02:00
f1f975d281
fix(symlinkguard): report and remove FIFOs, sockets and devices too (#179 )
mathias and Claude Opus 5.5
2026-10-05 22:42:44 +02:00
138d6e2545
fix: generated and promoted writes go through the brain root (#188 , #158 )
mathias and Claude Opus 5.5
2026-10-05 22:39:41 +02:00
41b7105b31
fix(brainfs,api): PutRegular/AppendRegular; brain_write creates through the brain root (#188 )
mathias and Claude Opus 5.5
2026-10-05 22:35:19 +02:00
ddd4bdc2ac
fix(brainfs): refuse a file behind a symlinked directory for reads and writes (#173 ) (#187 )
mathias and Claude Opus 5.5
2026-10-05 20:17:37 +00:00
1fff54769d
fix(tunnel): DetectTunnels walks and reads through brainfs (#174 , #157 slice 5b) (#186 )
mathias and Claude Opus 5.5
2026-10-05 20:12:44 +00:00
0c3e82ca0a
test(brainfs): per-caller in-brain symlink targets for slices 1-3 (#171 ) (#172 )
mathias
2026-10-05 19:36:31 +00:00
9a288bea6f
fix(brainfs,session): clean paths only; session logs open through the brain root (#173 )
fix/write-dir-redirect-173
mathias and Claude Opus 5.5
2026-10-05 21:08:47 +02:00
1c9c218dbf
test(tunnel): pin the raced read, the walk error and the _index.md skip (#174 )
fix/tunnel-detect-174
mathias and Claude Opus 5.5
2026-10-05 21:03:31 +02:00
eedb110be5
fix(pipeline,classification): read the brain through brainfs (#157 , slice 6) (#176 )
mathias and Claude Opus 5.5
2026-10-05 18:54:42 +00:00
87dace37b1
fix(brainfs): refuse a file behind a symlinked directory for reads and writes (#173 )
mathias and Claude Opus 5.5
2026-10-05 20:54:00 +02:00
da020d1e6c
fix(tunnel): DetectTunnels walks and reads through brainfs (#174 , #157 slice 5b)
mathias and Claude Opus 5.5
2026-10-05 20:51:31 +02:00
b8ea201bd3
test(pipeline): the page-swap test's positive control asserts the source ref (#157 )
fix/pipeline-root-157
mathias and Claude Opus 5.5
2026-10-05 20:48:25 +02:00
b71fc2e19a
test(pipeline): pin BackfillRefs' page read with a swap race (#157 )
mathias and Claude Opus 5.5
2026-10-05 09:27:38 +02:00
aee5f66398
fix(pipeline,classification): read the brain through brainfs (#157 , slice 6)
mathias and Claude Opus 5.5
2026-10-05 07:13:39 +02:00
febab3e45d
fix: brain_tunnel, brain_update and session_log confine caller-supplied paths (#169 ) (#170 )
mathias and Claude Opus 5.5
2026-10-05 18:47:07 +00:00
bdc1e51a1a
fix(ingestion): build /mcp's bearer and the metrics wrap inside buildMux (#154 ) (#183 )
v0.24.0
mathias
2026-10-05 17:48:44 +00:00
8c48e2e343
fix(symlinkguard): deliver alerts beside the scan, not inside it (#164 ) (#180 )
mathias
2026-10-05 14:48:16 +00:00
4c7fcb6bdc
test(ingestion): /mcp's JWT validator and resource_metadata; narrow comments
w3/154-mcp-auth-wiring
mathias and Claude Opus 5.5
2026-10-05 16:34:16 +02:00
4a1abafd8f
fix(ingestion): build /mcp's bearer and the metrics wrap inside buildMux
mathias and Claude Opus 5.5
2026-10-05 09:41:30 +02:00
c0be5c473c
fix(ingestion): bump mcp-chassis to v0.7.1; log auth rejections; label refused REST requests by route (#181 )
mathias
2026-10-05 14:40:20 +00:00
cce4dc3093
Merge origin/main into fix/tunnel-traversal (conflict-only)
fix/tunnel-traversal
mathias and Claude Opus 5.5
2026-10-05 16:37:53 +02:00
1cf05fdf15
test(search): in-brain Query race queries the inside note too
test/in-brain-targets-171
mathias and Claude Opus 5.5
2026-10-05 16:20:41 +02:00
51183d64d8
Merge remote-tracking branch 'origin/main' into merge-check
mathias
2026-10-05 16:17:54 +02:00
0bd0fbf03e
test(brainfstest): swap-race asserts fail when nothing was tested
mathias and Claude Opus 5.5
2026-10-05 09:32:25 +02:00
ef39435252
fix(brain): wing indexes and the link check read through brainfs (#157 , slice 5a) (#175 )
mathias and Claude Opus 5.5
2026-10-05 07:26:12 +00:00
f969d97c16
test(notes): in-brain symlink target for ReadScoped, the sixth slice 1-3 caller
mathias and Claude Opus 5.5
2026-10-05 07:20:59 +02:00
a83f0cb381
test(search): name the in-brain swap-race tests after what they sample
mathias and Claude Opus 5.5
2026-10-05 07:19:27 +02:00
8fdf7284aa
fix(linkcheck): skip a linked tree that is not a real directory (#157 )
fix/brain-scan-root-157
mathias and Claude Opus 5.5
2026-10-05 07:17:43 +02:00
6e3c51c952
fix(brain): wing indexes and the link check read through brainfs (#157 , slice 5a)
mathias and Claude Opus 5.5
2026-10-05 07:09:03 +02:00
bf3646c0c7
test(brainfs): per-caller in-brain symlink targets for slices 1-3 (#171 )
mathias and Claude Opus 5.5
2026-10-05 07:02:41 +02:00
b6ef11600b
fix(deps): bump x/net and x/text past called vulns
v0.23.1
mathias and Claude Opus 5.5
2026-10-05 06:59:31 +02:00
432e09d122
test(ingestion): OIDC discovery 502s then 200 against a real issuer (#83 )
mathias and Claude Opus 5.5
2026-10-05 06:57:45 +02:00
6325c2b414
test(session): pin the id '/' ban and the FIFO O_NONBLOCK guard (#169 )
mathias and Claude Opus 5.5
2026-10-05 06:54:11 +02:00
b3d782b25e
fix(update,session): brain_update and session_log confine caller paths (#169 )
mathias and Claude Opus 5.5
2026-10-04 22:38:08 +02:00
e548b97ba4
fix(tunnel): brain_tunnel cannot write outside the wiki or through symlinks
mathias and Claude Opus 5.5
2026-10-04 22:23:45 +02:00
77e32de33c
fix(graph,wiki): read the brain through brainfs (#157 , slice 4) (#168 )
v0.23.0
mathias and Claude Opus 5.5
2026-10-05 04:53:34 +00:00
d90ce66fb2
fix(brainfs): refuse an in-brain file swapped in behind a symlink; in-brain test targets (#157 )
fix/graph-wiki-root-157
mathias and Claude Opus 5.5
2026-10-04 22:34:46 +02:00
c7a6429bae
fix(graph,wiki): read the brain through brainfs (#157 , slice 4)
mathias and Claude Opus 5.5
2026-10-04 22:17:44 +02:00
57d0fb0fae
fix(vectorstore): walk and read the brain through brainfs (#157 , slice 3) (#166 )
v0.22.0
mathias and Claude Opus 5.5
2026-10-04 06:35:17 +00:00
31071bc9b1
fix(brainfs): check every component of the walk root (#157 )
fix/vectorstore-root-157
mathias and Claude Opus 5.5
2026-10-04 08:16:50 +02:00
66b6cf8a77
fix(brainfs): refuse a symlinked walk root (#157 )
mathias and Claude Opus 5.5
2026-10-04 08:11:16 +02:00
74a9621ba6
fix(vectorstore): walk and read the brain through brainfs (#157 , slice 3)
mathias and Claude Opus 5.5
2026-10-04 08:02:16 +02:00
27a01dd2af
fix(brain): context, brain_get and brain_read read through brainfs (#157 , slice 2) (#165 )
v0.21.1
mathias and Claude Opus 5.5
2026-10-04 05:59:55 +00:00
02cecb25b1
fix(brainfs): bound the read in ReadRegularMax; honest test names (#157 )
fix/notes-root-157
mathias and Claude Opus 5.5
2026-10-04 00:33:36 +02:00
b6f7dac46e
fix(brain): context, brain_get and brain_read read through brainfs (#157 , slice 2)
mathias and Claude Opus 5.5
2026-10-04 00:22:47 +02:00
eb77305580
fix(search): walk and read the brain through an os.Root (#157 , slice 1) (#161 )
v0.21.0
mathias
2026-10-03 19:34:46 +00:00
c986df6799
feat(ingestion): runtime symlink tripwire removes what it finds, 30s scans (#157 ) (#160 )
mathias
2026-10-03 19:34:19 +00:00
fd33e04467
test(search): hold a writer on swapped-in FIFOs; await the swapper
fix/search-root-157
mathias and Claude Opus 5.5
2026-10-03 18:32:40 +02:00
4ba9d20b4e
fix(ingestion): tripwire alerts survive outages; drop only permanent rejections
fix/brainwide-root-157
mathias and Claude Opus 5.5
2026-10-03 18:30:46 +02:00
ffe46c7077
test(brainfs): pin the handle check with a FIFO held open by a writer
mathias and Claude Opus 5.5
2026-10-03 18:26:27 +02:00
01de163452
fix(ingestion): bound the tripwire's alerts; test removal guards; deflake race tests
mathias and Claude Opus 5.5
2026-10-03 18:24:13 +02:00
9c9ba31770
fix(search): walk and read the brain through an os.Root (#157 , slice 1)
mathias and Claude Opus 5.5
2026-10-03 18:18:54 +02:00
504feb372f
feat(ingestion): the runtime symlink tripwire removes what it finds
mathias and Claude Opus 5.5
2026-10-03 18:16:43 +02:00
687afa0145
fix(ingestion): brain/raw/ readers go through an os.Root; symlinks are inert (#153 ) (#156 )
v0.20.1
mathias
2026-10-03 15:30:49 +00:00
8e88dded4b
test(api): race the pdf/docmark temp-copy path too
fix/raw-symlinks-153
mathias and Claude Opus 5.5
2026-10-03 17:24:08 +02:00
cad389f62f
feat(ingestion): symlink tripwire for the Syncthing-shared brain dir (#157 ) (#159 )
v0.20.0
mathias
2026-10-03 15:23:06 +00:00
cda18e6db8
fix(ingestion): an unlistable brain root is a scan error, not clean
feat/symlink-tripwire-157
mathias and Claude Opus 5.5
2026-10-03 17:14:46 +02:00
956ad8b9fb
fix(ingestion): close the PR #159 review findings on the symlink tripwire
mathias and Claude Opus 5.5
2026-10-03 17:11:45 +02:00
d5b2be0ecf
test(ingestion): behavioural race tests for raw/ reads; tighten the lint
mathias and Claude Opus 5.5
2026-10-03 17:07:58 +02:00
796d226497
feat(ingestion): symlink tripwire for the Syncthing-shared brain dir
mathias and Claude Opus 5.5
2026-10-03 17:04:41 +02:00
809420070b
test(extract): enforce the raw/ open discipline with the Go parser
mathias and Claude Opus 5.5
2026-10-03 17:03:09 +02:00
87c80e4e82
fix(ingestion): close the PR #156 review findings on raw/ reads
mathias and Claude Opus 5.5
2026-10-03 16:59:08 +02:00
8a91feb02b
fix(ingestion): every brain/raw/ reader goes through an os.Root; symlinks are inert
mathias and Claude Opus 5.5
2026-10-03 16:47:43 +02:00
cfe3f24e25
fix(ingestion): authenticate the REST API; confine ingest paths to brain/raw/ (#149 ) (#152 )
v0.19.1
mathias
2026-10-03 14:38:07 +00:00
b5c227179f
fix(ingestion): close the PR #152 review findings on REST auth
fix/rest-auth-149
mathias and Claude Opus 5.5
2026-10-03 16:32:20 +02:00
21a53c4159
fix(ingestion): confine /ingest-path and brain_ingest paths to brain/raw/
mathias and Claude Opus 5.5
2026-10-03 16:17:45 +02:00
99fedeaa98
fix(ingestion): authenticate the REST API as a whole, not route by route
mathias and Claude Opus 5.5
2026-10-03 16:17:45 +02:00
a6da93332d
feat(brain): audit-log every tools/call; server-owned write provenance (#147 )
v0.19.0
mathias and Claude Opus 5.5
2026-10-01 21:06:36 +00:00
f21be1aef6
chore(context): re-sync adapters after root brain-scoping correction
mathias and Claude Opus 5.5
2026-10-01 20:42:10 +02:00
3c70b6f367
fix(claudewatcher): scrub credentials embedded in URL userinfo
v0.18.4
mathias and Claude Opus 5
2026-09-30 16:08:17 +02:00
b3b555fa23
chore(context): adopt canonical context-sync.sh and re-sync adapters
mathias and Claude Opus 5
2026-09-30 10:36:40 +02:00
e9805c7eb6
chore(context): regenerate derived adapters from the canonical root context
mathias and Claude Opus 5
2026-09-25 07:34:25 +02:00
3d5af85713
fix(frontmatter): consolidate 3 independent fence-parsers into one (#139 )
mathias
2026-09-23 13:07:32 +00:00
c6341f020a
feat(server): say at startup when alerting is unconfigured (#107 ) (#140 )
mathias and Claude Sonnet 5
2026-09-23 13:02:40 +00:00
e157311cd8
fix(mcp): validate the claim envelope before brain_edit writes too (#136 )
mathias and Claude Sonnet 5
2026-09-23 10:28:07 +00:00
442557ca31
docs(mcp): document checkClaimEnvelope's accepted v1 gap
fix/123-brain-edit-envelope-check
mathias and Claude Sonnet 5
2026-09-23 12:25:30 +02:00
42578c21b9
fix(mcp): fold YAML block-scalar continuations before validating the envelope
mathias and Claude Sonnet 5
2026-09-23 10:51:09 +02:00
1d67e16c0d
fix(mcp): strip a leading UTF-8 BOM before frontmatter fence detection
mathias and Claude Sonnet 5
2026-09-23 10:44:54 +02:00
4f75279ceb
fix(mcp): normalize CRLF before frontmatter fence detection
mathias and Claude Sonnet 5
2026-09-23 10:40:00 +02:00
110e8b8f75
fix(mcp): reject edits that strip a note's frontmatter fence
mathias and Claude Sonnet 5
2026-09-23 10:32:46 +02:00
0f932d8f77
fix(mcp): drop the containment gate, always validate the post-edit envelope
mathias and Claude Sonnet 5
2026-09-23 10:27:30 +02:00