Review round 2 on PR #176: the control checked for text that was in the
page before BackfillRefs ran, so the test stayed green when no page was
read at all. It now asserts the [[s|S]] ref BackfillRefs adds; red when
the page read always fails, still red when the read follows the link.
Branch rebased onto main.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review round 1 on PR #176: reverting the BackfillRefs concept-page read
to os.ReadFile left every test green. The static symlinked page never
reaches that read, because LoadInventory does not list it; the read is
reachable only when a page listed as regular is swapped for a symlink
before it is read. New test does that against an in-brain target and
reads the page back with O_NOFOLLOW; red under the flip (2/2), green
3/3 on head.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The ingest pipeline read wiki/sources/<slug>.md and schema.md (both go
into the LLM prompt), the pages it revises, and the pages it adds
source refs to, with os.ReadFile; BackfillRefs listed wiki/sources with
os.ReadDir. A symlinked file's content reached the prompt and the
written pages (1.6M leaks in the race), and a FIFO hung the ingest.
classification.Load (the I1 sovereignty levels) read
classification.yaml the same way and hung startup on a FIFO.
- pipeline: readSourcePage, loadSchema, reviseOrCreate, injectSourceRefs
read through readBrainFile (brainfs ReadRegular); reviseOrCreate takes
the brain dir and reads page.Path, a missing page is still created and
a non-regular one is an error. BackfillRefs lists with ReadDirRegular
and reads with ReadRegular.
- classification.Load: read through brainfs; a symlinked or special
classification.yaml is a hard error (as a malformed one is); an absent
file or brain dir still yields the default config.
Tests use in-brain targets and the [[slug|title]] link form the pipeline
actually follows (bare [[slug]] links are ignored by it, which made a
first draft of the backfill test vacuous).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>