Block a user
fix: creating and generated writes go through the brain root (#188, #158 part A)
SECURITY: symlinks anywhere in the Syncthing-shared brain dir are followed by search, vectorstore, context and graph readers
SECURITY: symlinks anywhere in the Syncthing-shared brain dir are followed by search, vectorstore, context and graph readers
Done. Every brain reader in the server now goes through brainfs. Slice 5b, DetectTunnels (PR #186, fixes #174), is merged and live: the pod restarted cleanly and the graph backfill indexed…
fix(brainfs): refuse a file behind a symlinked directory for reads and writes (#173)
Writes follow a static intermediate in-brain directory symlink (brain_update, brain_tunnel, session_log)
DetectTunnels blocks on a FIFO under wiki/, hanging brain_update and brain_write
fix(tunnel): DetectTunnels walks and reads through brainfs (#174, #157 slice 5b)
#157 slices 1–3: per-caller tests with in-brain symlink targets (search, hydrate, vectorstore, context excerpt, ReadNote)
test(brainfs): per-caller in-brain symlink targets for slices 1-3 (#171)
fix(brainfs): refuse a file behind a symlinked directory for reads and writes (#173)
pr-gatekeeper round 2: PASS (head 9a288be). No merge:
pr-gatekeeper round 2: PASS (head 9a288be). No merge: risk/high, so Mathias approves.
fix(tunnel): DetectTunnels walks and reads through brainfs (#174, #157 slice 5b)
Gatekeeper review, round 2: PASS (head 1c9c218)
Both round-1 blockers are fixed, and I checked each by execution. The round-1 non-blocking items are fixed too. Since da020d1 the only…