mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-30 03:12:32 +00:00
* fix(facts): durable facts-absorb jobs for one-shot CLI processes Every gbrain capture/put from a short-lived CLI enqueued the facts:absorb chat into the in-process FactsQueue, then the exit teardown drained for 1-2s and aborted the in-flight call — logging 'pipeline_error: [chat(...)] The operation was aborted.' on every eligible CLI page write and never extracting facts. cli.ts now marks one-shot processes (everything except serve/jobs/ autopilot); runFactsBackstop's queue mode submits a durable facts-absorb minion job for the long-lived jobs worker instead, with content-hash idempotency and fallback to the in-process queue if submission fails. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(facts): fence-write resolves source-scoped page path writeFactsToFence joined local_path + slug directly, writing main-source fences to the repo ROOT (the default source's tree) and polluting ~/brain with stray root-level fence files. Route through resolvePageFilePath — the same helper the put_page write-through and dream-cycle reverse-render use — so non-default sources fence into .sources/<id>/<slug>.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Ragnar Åström <reghar@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>