chore(meta): T-1173 filed — client-only branches bounce off the gate via orphan-leaking binary-gated skips
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -86,3 +86,4 @@ INSERT INTO ticket_idmap (record_id, ticket_id, created_at, updated_at, deleted_
|
||||
INSERT INTO ticket_idmap (record_id, ticket_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRV2GT1FQVATWX641KY9K66C', 'T-1170', '2026-07-23 05:54:25.931', '2026-07-23 05:54:25.931', NULL, 'bbdc7daac4778f9fc7ba751e3bb50a57', 2) ON CONFLICT(record_id) DO UPDATE SET ticket_id=excluded.ticket_id, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_idmap.updated_at OR (excluded.updated_at = ticket_idmap.updated_at AND excluded.hash > ticket_idmap.hash);
|
||||
INSERT INTO ticket_idmap (record_id, ticket_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRVMZYG7Z5YCKHCBS7XWJPM4', 'T-1171', '2026-07-23 07:15:08.547', '2026-07-23 07:15:08.547', NULL, '366512fc00e11bb1bb099f9aa045dc46', 2) ON CONFLICT(record_id) DO UPDATE SET ticket_id=excluded.ticket_id, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_idmap.updated_at OR (excluded.updated_at = ticket_idmap.updated_at AND excluded.hash > ticket_idmap.hash);
|
||||
INSERT INTO ticket_idmap (record_id, ticket_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRW2ABEG6HQHVKQ9F7NQ1K8R', 'T-1172', '2026-07-23 08:13:21.658', '2026-07-23 08:13:21.658', NULL, 'da277cbf13d660a4e06d63adb58f2c47', 2) ON CONFLICT(record_id) DO UPDATE SET ticket_id=excluded.ticket_id, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_idmap.updated_at OR (excluded.updated_at = ticket_idmap.updated_at AND excluded.hash > ticket_idmap.hash);
|
||||
INSERT INTO ticket_idmap (record_id, ticket_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRWP5YN5M4687E0F9PSFWG1M', 'T-1173', '2026-07-23 09:40:08.490', '2026-07-23 09:40:08.490', NULL, 'b5f629f20e2de4352c4e9ba94cf47b0c', 2) ON CONFLICT(record_id) DO UPDATE SET ticket_id=excluded.ticket_id, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_idmap.updated_at OR (excluded.updated_at = ticket_idmap.updated_at AND excluded.hash > ticket_idmap.hash);
|
||||
|
||||
@@ -2531,3 +2531,4 @@ T-1172 retirement dependency (Tyre''s clip ruling): when this ticket''s course i
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRW2ABEG6HQHVKQ9F7NQ1K8R', 'bug', '06FB0TNSRZXCHGS16BFHSSGSV4', 'River skeleton draws over drawn ocean — two-waterline disagreement (raw heightmap sea level vs invented/warped morphology coast)', 'Jeroen, 2026-07-23, first hands-on with PR #195''s merged captures: ''the rivers seem to be continuing under the waterline of the ocean.'' Mechanism confirmed by code inspection: river_cells/mouths are filtered against the RAW 512x256 heightmap sea level (drainage.rs:258-259, elevation[i] >= sea_level), but the drawn ocean is the derived MORPHOLOGY verdict (district_profile.rs:1464-1465 open_water) — which post-T-1162 includes the coast-warp invention (the drawn coastline is deterministically displaced from the heightmap coast) and at Region rung aggregates at 204.8 km cells. Anywhere the two waterlines disagree, a raw-land river dot renders over painted ocean; mouths are worst-case by definition (last land cell on the RAW coast — wherever the drawn coast is displaced inland, mouths render offshore). Long ocean-crossing dot trails = low-lying raw-land chains the derived morphology paints as water. This is the Q-100 dual-artifact class Si''s wave-1 audit pre-flagged. Fix-layer options for Tyre''s ruling: (A) client-side clip against the arrived composite''s per-cell water class (cheap, presentational, keeps two truths but hides disagreement; needs a mouth rule — snap-to-drawn-land vs suppress); (B) server-side reconciliation — classify skeleton cells against the WARPED/derived coast at extraction (one truthful waterline per D-166 honesty; couples drainage to the invention layer, golden + cost implications); (C) fold into T-1170 course invention (courses terminate at the invented coast naturally) and accept the artifact until then.
|
||||
|
||||
TYRE RULING (2026-07-23, full text in PR record): option (D) — client-side draw-time clip now, retired into T-1170. Mechanism sizing corrected: WARP_AMPLITUDE_CAP_PX=0.75 (sub-pixel, ~57km max on Lendel) proves the warp is fringe-only — the ocean-crossing trails are Region morphology AGGREGATION painting low raw-land shelves as OpenOcean. Decisive architecture point: the drawn coast is RUNG-INDEXED (warp_fbm''s cutoff admits more octaves at finer rungs — a family of curves, not one), so no single server-side waterline is well-defined; option (B) rejected on well-definedness, not cost. Rules: (1) clip river dots + confluences against the arrived composite''s per-cell morphology water verdict (OpenOcean/Lake) at the rung being painted — strict drop, no snap; (2) Region 205km-cell amputation of final coastal dots accepted (invisible vs the trails it kills); (3) mouths in drawn-water cells SUPPRESSED, never snapped (snapping invents an uncomputed landmark; suppressed mouths return with real geometry in T-1170) — flagged to Jeroen as the one taste call, proceeding on Tyre''s recommendation; (4) basin boundaries NOT clipped (faint watershed overlay, legitimately grazes offshore pour-points — out of scope); (5) dot-pop across rungs is the honest consequence of the rung-indexed coast, not a regression; (6) retirement marker at the clip site, retired in the same change as T-1170''s coast-terminating courses. D-226 two-waterline note text supplied (rides the fix branch).', 'in_progress', 'high', NULL, 'client', 'D-226', '2026-07-23 08:13:21.652', '2026-07-23 08:16:58.417', NULL, 'c6ed407f012aa8039dbb33910ece2408', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRWP5YN5M4687E0F9PSFWG1M', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Client-only branches bounce off the push gate — orphan-leaking skips in binary-gated e2e suites', 'Found on the T-1172 waterline-clip push (2026-07-23): a client-only branch''s gate run FAILED at 3842/3842 passed, 0 failures. Chain: four legacy live/e2e suites (test_input_roundtrip, test_sprint2_proof, +2) self-skip via fuzzer-arg _do_skip when server/target/debug/settled-reach-server is absent; each skip leaks one internal gdUnit Node (the known cold-start-batch orphan class); 9 orphans -> GdUnitCmdTool exits non-zero; tests/run-godot prints ''Tests passed'' from its own failure-count parse but exits with the raw tool code (run-godot:144 ''exit $EXIT_CODE''); the pre-push hook trusts the exit code -> push aborted. Server-touching branches never hit this because cargo test builds the debug binary as a side effect. Workaround used: cargo build in the worktree before pushing. Proper fixes (pick during implementation): (a) convert the four suites'' _do_skip usage to the guarded early-return pattern test_atlas_window_nature_overlay_draw_smoke already uses (the established no-orphan skip shape); and/or (b) make run-godot''s exit code consistent with its own parse (0 failures+errors -> exit 0, with orphans surfaced in the JSON as a field so genuine leak regressions stay visible rather than silently ignored — careful: orphan detection is a real leak gate for non-skip tests, don''t blanket-disable it).', 'backlog', 'medium', NULL, 'client', NULL, '2026-07-23 09:40:08.489', '2026-07-23 09:40:08.489', NULL, 'bd768ec1e060065fe28bf6c44b4d27b7', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
|
||||
Reference in New Issue
Block a user