Every ticket as the root of its provenance graph — goal, patch, approval, runs and (as the ticket-class build lands) mandate, manifestations, guarantees, journey, artifacts and children. Rendered through the <<<TicketGraphList>>> tag.
Spec: congruency must NOT require the DB to contain its own source code — forge is the source of truth
goal
The DB (congruency.sqlite) shall NOT be REQUIRED to hold congruency's own source. Today the self-hosting feature (#124: page=source over code_refs/code_blobs, ingested by tools/ingest_self.py) stores the running source AS content in the DB and the app leans on it. DECOUPLE: congruency must run, render, and serve fully with NO source rows in the DB; the source-in-DB browser (page=source) becomes OPTIONAL and, where a source view is wanted, it reads from the FORGE (page=tree / TreeView over the registered repos), not from ingested DB blobs. Aligns with the forge-is-code-home doctrine (#216 — code lives in the forge, not scattered/duplicated) and the Go port (#223 — same DB, but the DB should not need to carry source). ACCEPTANCE: drop/omit code_refs/code_blobs -> congruency still boots and every non-source page/route/tag renders identically; page=tree (forge) still browses source; ingest_self.py is not on the required boot path. Also removes the DB-bloat + the stale-source-in-DB failure mode.
patch
none
approval
unapproved
runs
no runs recorded
mandate (clauses)
not yet recorded — lands with the ticket-class build
manifestations
not yet recorded — lands with the ticket-class build
guarantees
not yet recorded — lands with the ticket-class build
journey (blunders & successes)
not yet recorded — lands with the ticket-class build
artifacts (forge)
not yet recorded — lands with the ticket-class build