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

REQUESTED#362 forge-refactor

STOP: #306 — forge rewrite unit names a source its worker cannot read (#346)

goal

HALT #306. It cannot be executed as filed, and its body cannot be repaired. MODULE : code__code__jazz__litellm__dz_debug:dz_debug/__init__.py MODULE KEY : forge-rw:47eb5d42f7f1d8fc SUPERSEDED BY : #361 — the same module, the same requirements, plus that module's ORIGINAL SOURCE embedded verbatim in the body. THE WORK HAPPENS THERE. WHY THIS UNIT IS HALTED. #306 names its module's source only as a `git --git-dir=<forge>/remotes/<repo>.git cat-file blob <sha>` command. The pair_loop WORKER that executes these units is spawned into the ticket's own congruency worktree and is SANDBOXED to it: the forge's bare repos are outside that directory, so it cannot run that command, and no cached copy exists. The unit blocks with "canonical source unreadable, refused to fabricate" — which is the worker behaving CORRECTLY, because #200 demands behavior PRESERVED and a source you cannot read cannot be preserved. The pilot #259 proved it end to end. Ticket #346 is the fix, and #361 above is this module's share of it. WHY A STOP AND NOT AN EDIT. A ticket's body is PERMANENT in SQL: tg_tickets_immutable_ identity ABORTs any UPDATE that changes id/ts/title/body/component/kind (migrations/0029_ticket_authorization.sql:111-117), and no route edits a body. So #306's body cannot be given the source it lacks. The schema's own remedy for exactly this case is a GRAFT — "stop + spawn + supersedes-edge" (0029_ticket_authorization.sql:8) — and that is what happened: #361 was filed carrying the source, a `supersedes` edge runs from #361 to #306, and this ticket is the stop. NOTHING WAS DELETED. #306, its journal and its edges stay on the record forever; it is halted, not erased. To release it, aim a `start` ticket at THIS ticket through a `starts` edge (a start is aimed at the stop ticket it releases — migrations/0030_pair_loop_routes.sql). Releasing it hands a sandboxed worker the same unreadable unit again, so prefer #361. Filed mechanically by checkouts/current/congruency/tools/forge_refactor_ticketer.py under ticket #346.

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

#306 Rewrite code__code__jazz__litellm__dz_debug:dz_debug/__init__.py as behavior-preserving, installable, control-config'd Python [forge-rw:47eb5d42f7f1d8fc] (stops · REQUESTED)