mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-31 04:07:52 +00:00
Defect A (#3526): the empty-fence guard COUNT had no source_id predicate, so one pending legacy row in any mounted source jammed extract_facts for every source in the brain. The count now binds f.source_id = $1 to the run's sourceId (source-isolation invariant). Defect B: the guard advised `gbrain apply-migrations --yes`, which is a proven no-op once the v0.32.2 ledger entry is complete (the runner classifies it as already-applied and Phase B never re-runs). The warning (and cycle.ts's phase hint) now gives the drain path verified to work end-to-end on a real brain: `apply-migrations --force-retry 0.32.2` then `apply-migrations --yes` (Phase B is idempotent), or forget_fact per row. New test proves a pending legacy row in source A does not jam extraction for source B (fails on master, passes with the fix). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>