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#464 congruency

Go TreeView re-sync: TestTagEquivalence FAILs on TreeView only — #448 added title='registry head_commit (resolved on open)' to the PHP sha span; the Go port renders the pre-#448 span. Add the attribute, restore the gate to green.

goal

Re-sync the Go engine's TreeView render to the PHP TreeView after #448 changed it, restoring the tag equivalence gate to GREEN. TestTagEquivalence is currently FAIL — on exactly ONE subtest, TreeView. MEASURED (re-runnable): cd congruency-go && CONGRUENCY_STATE_DB=<state>/congruency.sqlite go test ./tags/ -run TestTagEquivalence -> FAIL. Coverage: 46 tags scanned, 42 in the Go engine, 4 SKIP (unported, never FAIL). The ONLY failing ported tag is TreeView (go=44892B vs php=57516B). THE DIFFERENCE IS ONE ATTRIBUTE, and nothing else (verified: every non-title line is byte-identical, the shas match on both sides). On the ?page=tree repo-list, the sha span differs: go : <span style='color:#888;font-size:.85em'>@ 888d3447c6ba</span> php: <span style='color:#888;font-size:.85em' title='registry head_commit (resolved on open)'>@ 888d3447c6ba</span> i.e. the PHP span now carries title='registry head_commit (resolved on open)' and the Go span does not. This attribute was added by #448 (the TreeView ref-resolution + telemetry rebuild): the PHP now shows the registry's stored head_commit in the list and explains, on hover, that the real ref is resolved when the repo is opened. The Go port renders the pre-#448 span. DELIVERABLE: congruency-go/tags/engine.go (the tree render lives there; confirm — it is the file that emits `?page=tree&repo=` list items with the `@ <sha>` span). 1. Add title='registry head_commit (resolved on open)' to the repo-list sha span, byte-for-byte matching the PHP (checkouts/current/congruency/invocators/tags/dev/TreeView.php as merged by #448). Match the exact attribute text and quoting — this is a BYTE equivalence gate. 2. DO NOT reimplement ref resolution in Go. The list page shows the stored head_commit (including the literal 'HEAD' for dangling-symref repos) plus this explanatory title; the actual per-repo tree drill-in resolution is PHP-side runtime behaviour the equivalence harness does not exercise. Match the RENDER, not the resolution. 3. Change ONLY what the diff requires. Do not touch other tags' renders in engine.go. The 41 other ported tags PASS and must stay byte-identical. ACCEPTANCE: * `go test ./tags/ -run TestTagEquivalence` is GREEN (TreeView PASS; the 4 SKIPs remain SKIP: ArtifactRegistry, BodyTag, Catalog_Controller, Style — those are unported, not this ticket). * The go vs php byte-diff for TreeView is empty. * No other TestTagEquivalence subtest regresses from PASS. RUN ON CLAUDE.

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)

congruency-go/tags/engine.go:eea58bb1cd forge-source · forge 348c70216695

source (forge tree)

browse congruency source (forge-parked tree)

children

not yet recorded — lands with the ticket-class build