Ticket graphs

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.

← all ticket-graphs

DONE#346 forge-refactor

FIX forge units: embed original source in ticket body so sandboxed workers can rewrite (unblocks forge2)

goal

BLOCKER for the entire forge2 rewrite campaign (38 units, #259+). The forge-rewrite units point the worker at a source blob in the forge BARE repos (git --git-dir=/Users/stevenpeterson/code/installed/jazz-project/config/forge/remotes/<repo>.git cat-file blob <sha>). But the pair_loop WORKER is sandboxed to its congruency worktree — it cannot cat-file the forge repos (outside the allowed dir), git-surface MCP is denied, and there is no cached copy. So every forge unit BLOCKS with "canonical source unreadable, refused to fabricate" (proven: pilot #259). The ticketer, however, CAN read the blobs (confirmed: cat-file works from the dispatch context). FIX: make forge units SELF-CONTAINED. Update checkouts/current/congruency/tools/forge_refactor_ticketer.py so that when it files each rewrite unit it EMBEDS THE ORIGINAL MODULE SOURCE verbatim into the ticket body — cat-file the blob it already identifies, wrap it in a clearly-delimited fenced block (e.g. "===ORIGINAL SOURCE (verbatim, the behavior-preserving basis)===" ... "===END SOURCE==="), so the worker reads the original bytes from the TICKET, needing no external access. Keep the existing canonical-source git command as a reference, but the embedded bytes are now the authoritative copy. Guard: skip embedding for pathologically large blobs (state a size cap and note truncation). Also add a `--patch-bodies` (or equivalent) mode that back-fills the source into the 38 ALREADY-FILED open forge units via ticket.progress or a body update, OR document that a fresh --file-tickets run supersedes them — pick the governance-clean path. ACCEPTANCE: a freshly-filed (or patched) forge unit body contains the original source bytes; a pair_loop worker on it can rewrite without any forge-repo access; re-run is idempotent (no duplicate filings). Deliverable: checkouts/current/congruency/tools/forge_refactor_ticketer.py.

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

source (forge tree)

browse congruency source (forge-parked tree)

children

not yet recorded — lands with the ticket-class build