chore(meta): pql changelog — measurement batch activated to in_progress
The T-1177/T-1178/T-1154/T-1179/T-1180 in_progress transition wrote through to the changelog after the sign-off commit; landing it per the ticket-mutating-turn persistence rule. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1752,3 +1752,20 @@ INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, chang
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRV224PD3NMWKR1AAC0J0D58', 'status', 'in_progress', 'review', NULL, '2026-07-23 12:17:43', '2026-07-23 12:17:43.882', '2026-07-23 12:17:43.882', NULL, 'af2b75b65c86ae0a671896913511ccd1', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRV2GT1FQVATWX641KY9K66C', 'status', 'review', 'done', NULL, '2026-07-23 14:10:16', '2026-07-23 14:10:16.116', '2026-07-23 14:10:16.116', NULL, 'ce544d9b754a1d453011ea7c7d2bbec0', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRV224PD3NMWKR1AAC0J0D58', 'status', 'review', 'done', NULL, '2026-07-23 14:10:16', '2026-07-23 14:10:16.118', '2026-07-23 14:10:16.118', NULL, '36ba42d3ba653a87d39335d2e55591c6', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRY9W24PV55Z6FMW8TEM7XER', 'status', 'backlog', 'in_progress', NULL, '2026-07-23 16:26:46', '2026-07-23 16:26:46.891', '2026-07-23 16:26:46.891', NULL, 'db18073562f0b55539223e544f912186', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRY9W24PV55Z6FMW8TEM7XER', 'description', 'Jeroen, 2026-07-23, during the T-1170 live rounds: ''I want to discuss and maybe revise the pixel scan/output mechanism for drawing the map. I feel we can be smarter about this and bypass an entire class of errors we are seeing as well as probably improve performance.'' DISCUSSION FIRST — this is a design conversation with Jeroen (pair/workshop mode), not autonomous work; scheduled after the T-1170/T-1168 cycle closes. The error class in evidence, all descending from immediate-mode draw calls inside a zoom-scaled canvas (_canvas.scale = view_zoom): the per-call-site zoom compensation discipline (_zs/_zs_stroke, silently degrading when one site is missed — PR #195 I1, PR #197 stroke sites), Godot''s line-rasterizer width floor (sub-1.0-canvas-unit strokes collapse to hairline — the T-1170 width bug), the radius-smaller-than-stroke draw_arc regime (the mouth-ring investigation), and arguably the wrap-image resolution family. Candidate directions to bring to the discussion: (a) Tyre''s unscaled screen-space sibling layer (positions transformed, sizes literal — already noted on T-1156 wave 2/T-1158); (b) render-to-texture per window/tile at native resolution, composited as textures (sizes become texel-exact, zoom becomes pure texture transform); (c) shader-side composition of the per-cell data (morphology/courses as data textures, coloring+features in fragment shader — likely the performance win); (d) hybrid. Inputs to gather before the discussion: current draw-call counts/frame costs per rung, the T-1175 polish requirements (per-vertex tapering wants Polygon2D strips or shaders anyway), and the wave-2 marker volume. Relates: T-1158 (viewer decomposition), T-1175 (polish pass), Tyre''s PR #197 Q5 note.', 'Jeroen, 2026-07-23, during the T-1170 live rounds: ''I want to discuss and maybe revise the pixel scan/output mechanism for drawing the map. I feel we can be smarter about this and bypass an entire class of errors we are seeing as well as probably improve performance.'' DISCUSSION FIRST — this is a design conversation with Jeroen (pair/workshop mode), not autonomous work; scheduled after the T-1170/T-1168 cycle closes. The error class in evidence, all descending from immediate-mode draw calls inside a zoom-scaled canvas (_canvas.scale = view_zoom): the per-call-site zoom compensation discipline (_zs/_zs_stroke, silently degrading when one site is missed — PR #195 I1, PR #197 stroke sites), Godot''s line-rasterizer width floor (sub-1.0-canvas-unit strokes collapse to hairline — the T-1170 width bug), the radius-smaller-than-stroke draw_arc regime (the mouth-ring investigation), and arguably the wrap-image resolution family. Candidate directions to bring to the discussion: (a) Tyre''s unscaled screen-space sibling layer (positions transformed, sizes literal — already noted on T-1156 wave 2/T-1158); (b) render-to-texture per window/tile at native resolution, composited as textures (sizes become texel-exact, zoom becomes pure texture transform); (c) shader-side composition of the per-cell data (morphology/courses as data textures, coloring+features in fragment shader — likely the performance win); (d) hybrid. Inputs to gather before the discussion: current draw-call counts/frame costs per rung, the T-1175 polish requirements (per-vertex tapering wants Polygon2D strips or shaders anyway), and the wave-2 marker volume. Relates: T-1158 (viewer decomposition), T-1175 (polish pass), Tyre''s PR #197 Q5 note.
|
||||
|
||||
PREP SESSION COMPLETE + BRIEF SIGNED OFF (2026-07-25, Jeroen + lead + Tyre). Jeroen''s design outline captured and clarified over two AskUserQuestion rounds; Tyre delivered governance-delta/implications pass and ratified the brief (zero misrepresentations, zero blocking gaps). Signed-off workshop brief: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md (session artifacts: jeroen-outline.md, clarifications.md, tyre-implications.md, prep-grounding.md in the same dir). Settled premises: server-side content determination per zoom step; client map-art function; RTT terrain + screen-space vector annotations baseline (locks T-1176 candidates b+a; c1 styling open); GPU presentation-only; stepped zoom (supersedes continuous — recorded at workshop filing); tile=1m only, ''gridunit (at zoom level)'' coined; data resolution tunable (1px ideal, 5x5 fallback); hydrology = deterministic equilibrium; client-primary cache (store shape open: server-side SQLite cache / godot-sqlite / file cache — SQLite ships in the Rust server, NOT the Godot client). Workshop: 5 seats (Dudley/Araminta/Stig/Tyre + Troblum r2), 2 rounds + lead interview, extendable at Jeroen''s call, round 1 GATED on measurements — see blocker edges. Expected Output 2 mandates an explicit deprecation sweep (Clerk audit) of all conflicting DQR records/tickets at filing.', NULL, '2026-07-23 16:26:57', '2026-07-23 16:26:57.202', '2026-07-23 16:26:57.202', NULL, '1e3fa8ea5af24a3e8eafd1433d603f4e', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'description', 'Gate ticket from Jeroen''s floor ruling (2026-07-21, D-226 amendment: ''we set a new BHAG so old restrictions are up for debate'' — the Atlas ladder may descend below quarter toward tile, implementation-gated on THIS pass). Measure what the design pass could not (docs/architecture/atlas-zoom-ladder-t1143.md SS2 marks block/tile ''not estimated''): per-cell derive cost at block (128m) and tile-adjacent spacings with the min_wavelength cutoff active; realistic window cell counts and wire bytes at those granularities vs the SS4 budget; memory/caching behavior; whether voxel_relief/voxel_mosaic math is reusable as-is for Atlas sampling or needs an extraction like derive_at_metres. Output: a costs appendix to the design doc + go/no-go recommendation per rung. Constraint preserved by the ruling: chunk/tile output never appears as a whole-body planetary layer — windowed viewport only. Blocked by derive_at_metres (the cutoff must exist to measure with it).', 'Gate ticket from Jeroen''s floor ruling (2026-07-21, D-226 amendment: ''we set a new BHAG so old restrictions are up for debate'' — the Atlas ladder may descend below quarter toward tile, implementation-gated on THIS pass). Measure what the design pass could not (docs/architecture/atlas-zoom-ladder-t1143.md SS2 marks block/tile ''not estimated''): per-cell derive cost at block (128m) and tile-adjacent spacings with the min_wavelength cutoff active; realistic window cell counts and wire bytes at those granularities vs the SS4 budget; memory/caching behavior; whether voxel_relief/voxel_mosaic math is reusable as-is for Atlas sampling or needs an extraction like derive_at_metres. Output: a costs appendix to the design doc + go/no-go recommendation per rung. Constraint preserved by the ruling: chunk/tile output never appears as a whole-body planetary layer — windowed viewport only. Blocked by derive_at_metres (the cutoff must exist to measure with it).
|
||||
|
||||
REPURPOSED as body-map-viewer workshop gate measurement ③ (2026-07-25, brief appendix ③: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md). Unblocked since T-1162 shipped the octave-cutoff plumbing this was blocked on. Scope unchanged (block/tile rung per-cell costs + wire at those granularities); its numbers now price the bottom of the stepped gridunit ladder (~10px per 1m tile bottom-out). Round 1 of the workshop is gated on this landing alongside T-1177/T-1178/T-1179.', NULL, '2026-07-23 16:27:35', '2026-07-23 16:27:35.477', '2026-07-23 16:27:35.477', NULL, '2b58b58df3a9b9baccf6703ae0062aac', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'status', 'backlog', 'ready', NULL, '2026-07-23 16:27:39', '2026-07-23 16:27:39.311', '2026-07-23 16:27:39.311', NULL, 'd1b13c21562034e52caafe97a8ad2ab2', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKBTD7VKSXNWADWHV3QDQ8', 'status', 'backlog', 'ready', NULL, '2026-07-23 16:27:39', '2026-07-23 16:27:39.318', '2026-07-23 16:27:39.318', NULL, '7076af166f03bdabaed9d1981203672a', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKAV6ZK4KAZ6YCGFNBQ4T0', 'status', 'backlog', 'ready', NULL, '2026-07-23 16:27:39', '2026-07-23 16:27:39.318', '2026-07-23 16:27:39.318', NULL, 'e9ed3f756f2703b64399eecbe1e3b210', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKDFB23YFACY2G4M6WRSXC', 'status', 'backlog', 'ready', NULL, '2026-07-23 16:27:39', '2026-07-23 16:27:39.319', '2026-07-23 16:27:39.319', NULL, '03b325b1daa7dfd7b7b10199a78dcc87', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKCN13EF5TD9EZTXMSJ7EG', 'status', 'backlog', 'ready', NULL, '2026-07-23 16:27:39', '2026-07-23 16:27:39.319', '2026-07-23 16:27:39.319', NULL, 'e864c7885306075f0c00700043ba9615', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKAV6ZK4KAZ6YCGFNBQ4T0', 'status', 'ready', 'in_progress', NULL, '2026-07-23 16:31:37', '2026-07-23 16:31:37.581', '2026-07-23 16:31:37.581', NULL, '29b5deb71fcc65f341804be11dc1a0ce', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'status', 'ready', 'in_progress', NULL, '2026-07-23 16:31:37', '2026-07-23 16:31:37.588', '2026-07-23 16:31:37.588', NULL, '194a5fd121a3a3615f8daa7f566cff5c', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKCN13EF5TD9EZTXMSJ7EG', 'status', 'ready', 'in_progress', NULL, '2026-07-23 16:31:37', '2026-07-23 16:31:37.588', '2026-07-23 16:31:37.588', NULL, '74c95e46254d1b4e556114373955ce3f', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKBTD7VKSXNWADWHV3QDQ8', 'status', 'ready', 'in_progress', NULL, '2026-07-23 16:31:37', '2026-07-23 16:31:37.588', '2026-07-23 16:31:37.588', NULL, 'be43c8468b1f8b982f29bd8f86131d60', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FRZKDFB23YFACY2G4M6WRSXC', 'status', 'ready', 'in_progress', NULL, '2026-07-23 16:31:37', '2026-07-23 16:31:37.589', '2026-07-23 16:31:37.589', NULL, '780d0a11c4150daecb3b2ccf9c5263fa', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
|
||||
@@ -90,3 +90,7 @@ 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 ('06FRXGSXBZKXTHR7MR5K9H2HRG', 'T-1174', '2026-07-23 11:36:27.744', '2026-07-23 11:36:27.744', NULL, 'd298c2db5e4717fb91fcd197ed085949', 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 ('06FRXKFEJMDEPQ0PZ5Q862DHKG', 'T-1175', '2026-07-23 11:48:08.472', '2026-07-23 11:48:08.472', NULL, '69e879b74c10e18fa0cb8790b20b010b', 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 ('06FRY9W24PV55Z6FMW8TEM7XER', 'T-1176', '2026-07-23 13:25:58.956', '2026-07-23 13:25:58.956', NULL, 'd6b84db241ac47c3402c7aeb8521bc46', 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 ('06FRZKAV6ZK4KAZ6YCGFNBQ4T0', 'T-1177', '2026-07-23 16:27:07.962', '2026-07-23 16:27:07.962', NULL, '4085420aee275d85a27a1239c984f933', 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 ('06FRZKBTD7VKSXNWADWHV3QDQ8', 'T-1178', '2026-07-23 16:27:15.945', '2026-07-23 16:27:15.945', NULL, '9f3a364af5a0c9781255ef35fc4a369b', 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 ('06FRZKCN13EF5TD9EZTXMSJ7EG', 'T-1179', '2026-07-23 16:27:22.760', '2026-07-23 16:27:22.760', NULL, 'd5651b4d922845410d6fac6687dbb525', 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 ('06FRZKDFB23YFACY2G4M6WRSXC', 'T-1180', '2026-07-23 16:27:29.501', '2026-07-23 16:27:29.501', NULL, '9357fa0810ebc02a27af24acdb9a479b', 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);
|
||||
|
||||
@@ -2580,3 +2580,28 @@ T-1172 retirement dependency (Tyre''s clip ruling): when this ticket''s course i
|
||||
|
||||
Mouth semantics follow-up (Jeroen''s capture question, 2026-07-23): two mouth-placement oddities to resolve when courses/termini become real geometry here — (1) inland-reading mouths: the raw-coast mouth cell can sit landward of the drawn coastline (the mirror of T-1172''s offshore case; not clipped since it''s on drawn land) — mouths should move to the course''s actual invented-coast terminus; (2) pole-edge drains: drainage.rs counts rivers draining off the grid''s top/bottom edge as ''mouths'', rendering double-rings in polar ice with no sea adjacent — revisit whether these render as mouths at all (probably not; they are grid artifacts, not river-meets-sea events).', 'done', 'medium', NULL, 'server', 'D-227', '2026-07-23 05:54:25.931', '2026-07-23 14:10:16.116', NULL, 'a4598a9ddb2ba9308f7e45511a854c8e', 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 ('06FRV224PD3NMWKR1AAC0J0D58', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Thread drainage skeleton into derive_at_metres as per-cell riparian signal (near_perennial_water)', 'derive_at_metres (district_profile.rs:1461-1469) hardcodes near_perennial_water = false into derive_vegetation, so district/quarter windows cannot render riparian bands (RiparianScrub/RiparianThicket) or the hyper-arid micro-oasis (:421) even where a trunk river crosses the cell. After T-1156 puts rivers on the ladder, this surfaces as a visible mismatch: a drawn river over vegetation painted barren. Fix: thread the Layer-1 river-cell set into the window derive and compute per-cell near_perennial_water as a ''within riparian-band distance of a river cell'' test. Rivers sample the drainage GEOGRAPHY; vegetation''s moisture influence rides T-1162''s perturbed moisture_q — never a re-derivation of base moisture (forward contract from T-1156 wave-1 ruling 3, Tyre 2026-07-23). Re-pin the believability/derivation golden harnesses. Gated: not wave 1.', 'done', 'medium', NULL, 'server', 'D-226', '2026-07-23 05:52:25.779', '2026-07-23 14:10:16.118', NULL, '69d78fa243b250862d9193023ccc7bf2', 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 ('06FRY9W24PV55Z6FMW8TEM7XER', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Design discussion: revise the Atlas map render mechanism (bypass the zoom-scaled-canvas error class)', 'Jeroen, 2026-07-23, during the T-1170 live rounds: ''I want to discuss and maybe revise the pixel scan/output mechanism for drawing the map. I feel we can be smarter about this and bypass an entire class of errors we are seeing as well as probably improve performance.'' DISCUSSION FIRST — this is a design conversation with Jeroen (pair/workshop mode), not autonomous work; scheduled after the T-1170/T-1168 cycle closes. The error class in evidence, all descending from immediate-mode draw calls inside a zoom-scaled canvas (_canvas.scale = view_zoom): the per-call-site zoom compensation discipline (_zs/_zs_stroke, silently degrading when one site is missed — PR #195 I1, PR #197 stroke sites), Godot''s line-rasterizer width floor (sub-1.0-canvas-unit strokes collapse to hairline — the T-1170 width bug), the radius-smaller-than-stroke draw_arc regime (the mouth-ring investigation), and arguably the wrap-image resolution family. Candidate directions to bring to the discussion: (a) Tyre''s unscaled screen-space sibling layer (positions transformed, sizes literal — already noted on T-1156 wave 2/T-1158); (b) render-to-texture per window/tile at native resolution, composited as textures (sizes become texel-exact, zoom becomes pure texture transform); (c) shader-side composition of the per-cell data (morphology/courses as data textures, coloring+features in fragment shader — likely the performance win); (d) hybrid. Inputs to gather before the discussion: current draw-call counts/frame costs per rung, the T-1175 polish requirements (per-vertex tapering wants Polygon2D strips or shaders anyway), and the wave-2 marker volume. Relates: T-1158 (viewer decomposition), T-1175 (polish pass), Tyre''s PR #197 Q5 note.', 'in_progress', 'high', NULL, 'client', 'D-226', '2026-07-23 13:25:58.949', '2026-07-23 16:26:46.891', NULL, '1713e3e2338ee916912b020c42dbfc8f', 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 ('06FRY9W24PV55Z6FMW8TEM7XER', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Design discussion: revise the Atlas map render mechanism (bypass the zoom-scaled-canvas error class)', 'Jeroen, 2026-07-23, during the T-1170 live rounds: ''I want to discuss and maybe revise the pixel scan/output mechanism for drawing the map. I feel we can be smarter about this and bypass an entire class of errors we are seeing as well as probably improve performance.'' DISCUSSION FIRST — this is a design conversation with Jeroen (pair/workshop mode), not autonomous work; scheduled after the T-1170/T-1168 cycle closes. The error class in evidence, all descending from immediate-mode draw calls inside a zoom-scaled canvas (_canvas.scale = view_zoom): the per-call-site zoom compensation discipline (_zs/_zs_stroke, silently degrading when one site is missed — PR #195 I1, PR #197 stroke sites), Godot''s line-rasterizer width floor (sub-1.0-canvas-unit strokes collapse to hairline — the T-1170 width bug), the radius-smaller-than-stroke draw_arc regime (the mouth-ring investigation), and arguably the wrap-image resolution family. Candidate directions to bring to the discussion: (a) Tyre''s unscaled screen-space sibling layer (positions transformed, sizes literal — already noted on T-1156 wave 2/T-1158); (b) render-to-texture per window/tile at native resolution, composited as textures (sizes become texel-exact, zoom becomes pure texture transform); (c) shader-side composition of the per-cell data (morphology/courses as data textures, coloring+features in fragment shader — likely the performance win); (d) hybrid. Inputs to gather before the discussion: current draw-call counts/frame costs per rung, the T-1175 polish requirements (per-vertex tapering wants Polygon2D strips or shaders anyway), and the wave-2 marker volume. Relates: T-1158 (viewer decomposition), T-1175 (polish pass), Tyre''s PR #197 Q5 note.
|
||||
|
||||
PREP SESSION COMPLETE + BRIEF SIGNED OFF (2026-07-25, Jeroen + lead + Tyre). Jeroen''s design outline captured and clarified over two AskUserQuestion rounds; Tyre delivered governance-delta/implications pass and ratified the brief (zero misrepresentations, zero blocking gaps). Signed-off workshop brief: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md (session artifacts: jeroen-outline.md, clarifications.md, tyre-implications.md, prep-grounding.md in the same dir). Settled premises: server-side content determination per zoom step; client map-art function; RTT terrain + screen-space vector annotations baseline (locks T-1176 candidates b+a; c1 styling open); GPU presentation-only; stepped zoom (supersedes continuous — recorded at workshop filing); tile=1m only, ''gridunit (at zoom level)'' coined; data resolution tunable (1px ideal, 5x5 fallback); hydrology = deterministic equilibrium; client-primary cache (store shape open: server-side SQLite cache / godot-sqlite / file cache — SQLite ships in the Rust server, NOT the Godot client). Workshop: 5 seats (Dudley/Araminta/Stig/Tyre + Troblum r2), 2 rounds + lead interview, extendable at Jeroen''s call, round 1 GATED on measurements — see blocker edges. Expected Output 2 mandates an explicit deprecation sweep (Clerk audit) of all conflicting DQR records/tickets at filing.', 'in_progress', 'high', NULL, 'client', 'D-226', '2026-07-23 13:25:58.949', '2026-07-23 16:26:57.202', NULL, 'bd849919a626392f58d705a18e577d63', 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 ('06FRZKAV6ZK4KAZ6YCGFNBQ4T0', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ①: equilibrium hydrology solver prototype + bench (512×256 and 4K-class) incl. cliff representation', 'Workshop gate measurement for body-map-viewer (brief: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md, appendix ①; analysis: tyre-implications.md §3.1). Prototype the deterministic-equilibrium hydrology solver (priority-flood family: lake fill above sea level, overflow re-routing to sea or endorheic self-cycle, gorge carving when no easier path — settled end-state, pure function of seed + moisture/climate, extends drainage.rs D8). Bench at 512×256 (Layer-1 grid) AND a 4K-class canvas (~330K and up to 8.3M cells). MUST also output the cliff/two-heights-per-gridunit representation proposal (red flag 4) — the data-model answer, not just cost. Owner: Dudley. Effort est 1–2 days. This is the one measurement that could invalidate per-body-open settled hydrology if it lands in seconds not milliseconds.', 'backlog', 'high', NULL, 'server', 'D-227', '2026-07-23 16:27:07.959', '2026-07-23 16:27:07.959', NULL, 'ddef9bb8bbc7d672800e2330b03b2746', 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 ('06FRZKBTD7VKSXNWADWHV3QDQ8', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ②: per-gridunit derive bench at real canvas sizes (330K and 8.3M cells, production par_iter path)', 'Workshop gate measurement for body-map-viewer (brief appendix ②; tyre-implications.md §3.2). Run zoom_ladder_bench-class measurement of derive_at_metres on the PRODUCTION build_district_window_layer row-chunked par_iter path at ~330K cells (5×5 display-unit fallback, 4K-class) and ~8.3M cells (1×1 ideal). Known baselines: 1.785 µs/cell District cutoff, 1.454 µs/cell orbital, 0.617 ms per 4,096-cell served window — measured at 4,096 cells only; the chunking behavior at 330K+ is the exact extrapolation gap that killed the T-1143 planetary-rung cost story. MEASURE, do not extrapolate. Feeds Dudley Q3/Q4, red-flag-2 memory math, and Troblum''s round-2 cost pass. Owner: Dudley. Effort est 0.5 day.', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-23 16:27:15.945', '2026-07-23 16:27:15.945', NULL, '8953bb164d41bcb11dc3ecea32ba6607', 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 ('06FRZKCN13EF5TD9EZTXMSJ7EG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ④: wire-size table for step-canvas encodings (raw/bit-packed/RLE/PNG + MessagePack round-trip)', 'Workshop gate measurement for body-map-viewer (brief appendix ④; tyre-implications.md §3.3). For a ~330K-gridunit step canvas: dense classification arrays ≈ 4–5 bytes/gridunit ≈ 1.3–1.6 MB/step raw. Produce the comparison table: raw dense vs bit-packed vs run-length vs PNG-encoded raster, with an actual MessagePack round-trip on one real canvas (not arithmetic only). Directly informs the named-feature encoding decision (Araminta Q1) and whether the tagged-envelope migration (D-225 deferral) is forced. Owners: Araminta (encoding) + Dudley (real canvas + numbers). Effort est 0.5 day.', 'backlog', 'high', NULL, 'server', 'D-225', '2026-07-23 16:27:22.760', '2026-07-23 16:27:22.760', NULL, '675d9fc1377d3fdff5429f2349dfa992', 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 ('06FRZKDFB23YFACY2G4M6WRSXC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ⑤: Godot ImageTexture upload cost per step-cross (330K–8.3M px)', 'Workshop measurement for body-map-viewer (brief appendix ⑤; tyre-implications.md §3.5). Measure ImageTexture.create_from_image (and update paths) for 330K–8.3M px images on step-cross — client-side stutter risk for the RTT terrain layer''s hold-fetch-swap. NOT a round-1 gate (may land during round 1), but a real interactive-latency input for Stig Q2. Owner: Stig. Effort est 0.25 day.', 'backlog', 'medium', NULL, 'client', 'D-226', '2026-07-23 16:27:29.496', '2026-07-23 16:27:29.496', NULL, 'f8bc0a04880735556d5e528e1862cddc', 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 ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Below-quarter measurement pass — block/tile rung costs and wire (gate for the opened (d) floor)', 'Gate ticket from Jeroen''s floor ruling (2026-07-21, D-226 amendment: ''we set a new BHAG so old restrictions are up for debate'' — the Atlas ladder may descend below quarter toward tile, implementation-gated on THIS pass). Measure what the design pass could not (docs/architecture/atlas-zoom-ladder-t1143.md SS2 marks block/tile ''not estimated''): per-cell derive cost at block (128m) and tile-adjacent spacings with the min_wavelength cutoff active; realistic window cell counts and wire bytes at those granularities vs the SS4 budget; memory/caching behavior; whether voxel_relief/voxel_mosaic math is reusable as-is for Atlas sampling or needs an extraction like derive_at_metres. Output: a costs appendix to the design doc + go/no-go recommendation per rung. Constraint preserved by the ruling: chunk/tile output never appears as a whole-body planetary layer — windowed viewport only. Blocked by derive_at_metres (the cutoff must exist to measure with it).
|
||||
|
||||
REPURPOSED as body-map-viewer workshop gate measurement ③ (2026-07-25, brief appendix ③: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md). Unblocked since T-1162 shipped the octave-cutoff plumbing this was blocked on. Scope unchanged (block/tile rung per-cell costs + wire at those granularities); its numbers now price the bottom of the stepped gridunit ladder (~10px per 1m tile bottom-out). Round 1 of the workshop is gated on this landing alongside T-1177/T-1178/T-1179.', 'backlog', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:50.248', '2026-07-23 16:27:35.477', NULL, '63b287f7b8e387a50f1631d9da3201b3', 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 ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Below-quarter measurement pass — block/tile rung costs and wire (gate for the opened (d) floor)', 'Gate ticket from Jeroen''s floor ruling (2026-07-21, D-226 amendment: ''we set a new BHAG so old restrictions are up for debate'' — the Atlas ladder may descend below quarter toward tile, implementation-gated on THIS pass). Measure what the design pass could not (docs/architecture/atlas-zoom-ladder-t1143.md SS2 marks block/tile ''not estimated''): per-cell derive cost at block (128m) and tile-adjacent spacings with the min_wavelength cutoff active; realistic window cell counts and wire bytes at those granularities vs the SS4 budget; memory/caching behavior; whether voxel_relief/voxel_mosaic math is reusable as-is for Atlas sampling or needs an extraction like derive_at_metres. Output: a costs appendix to the design doc + go/no-go recommendation per rung. Constraint preserved by the ruling: chunk/tile output never appears as a whole-body planetary layer — windowed viewport only. Blocked by derive_at_metres (the cutoff must exist to measure with it).
|
||||
|
||||
REPURPOSED as body-map-viewer workshop gate measurement ③ (2026-07-25, brief appendix ③: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md). Unblocked since T-1162 shipped the octave-cutoff plumbing this was blocked on. Scope unchanged (block/tile rung per-cell costs + wire at those granularities); its numbers now price the bottom of the stepped gridunit ladder (~10px per 1m tile bottom-out). Round 1 of the workshop is gated on this landing alongside T-1177/T-1178/T-1179.', 'ready', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:50.248', '2026-07-23 16:27:39.311', NULL, '76dec706ced641ffe1033aee805cae0e', 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 ('06FRZKBTD7VKSXNWADWHV3QDQ8', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ②: per-gridunit derive bench at real canvas sizes (330K and 8.3M cells, production par_iter path)', 'Workshop gate measurement for body-map-viewer (brief appendix ②; tyre-implications.md §3.2). Run zoom_ladder_bench-class measurement of derive_at_metres on the PRODUCTION build_district_window_layer row-chunked par_iter path at ~330K cells (5×5 display-unit fallback, 4K-class) and ~8.3M cells (1×1 ideal). Known baselines: 1.785 µs/cell District cutoff, 1.454 µs/cell orbital, 0.617 ms per 4,096-cell served window — measured at 4,096 cells only; the chunking behavior at 330K+ is the exact extrapolation gap that killed the T-1143 planetary-rung cost story. MEASURE, do not extrapolate. Feeds Dudley Q3/Q4, red-flag-2 memory math, and Troblum''s round-2 cost pass. Owner: Dudley. Effort est 0.5 day.', 'ready', 'high', NULL, 'server', 'D-226', '2026-07-23 16:27:15.945', '2026-07-23 16:27:39.318', NULL, '73433e771b7ac522632d112c6e669a4f', 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 ('06FRZKAV6ZK4KAZ6YCGFNBQ4T0', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ①: equilibrium hydrology solver prototype + bench (512×256 and 4K-class) incl. cliff representation', 'Workshop gate measurement for body-map-viewer (brief: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md, appendix ①; analysis: tyre-implications.md §3.1). Prototype the deterministic-equilibrium hydrology solver (priority-flood family: lake fill above sea level, overflow re-routing to sea or endorheic self-cycle, gorge carving when no easier path — settled end-state, pure function of seed + moisture/climate, extends drainage.rs D8). Bench at 512×256 (Layer-1 grid) AND a 4K-class canvas (~330K and up to 8.3M cells). MUST also output the cliff/two-heights-per-gridunit representation proposal (red flag 4) — the data-model answer, not just cost. Owner: Dudley. Effort est 1–2 days. This is the one measurement that could invalidate per-body-open settled hydrology if it lands in seconds not milliseconds.', 'ready', 'high', NULL, 'server', 'D-227', '2026-07-23 16:27:07.959', '2026-07-23 16:27:39.318', NULL, '97b8fabcc206dd5cddc8f397d0915ddc', 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 ('06FRZKDFB23YFACY2G4M6WRSXC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ⑤: Godot ImageTexture upload cost per step-cross (330K–8.3M px)', 'Workshop measurement for body-map-viewer (brief appendix ⑤; tyre-implications.md §3.5). Measure ImageTexture.create_from_image (and update paths) for 330K–8.3M px images on step-cross — client-side stutter risk for the RTT terrain layer''s hold-fetch-swap. NOT a round-1 gate (may land during round 1), but a real interactive-latency input for Stig Q2. Owner: Stig. Effort est 0.25 day.', 'ready', 'medium', NULL, 'client', 'D-226', '2026-07-23 16:27:29.496', '2026-07-23 16:27:39.319', NULL, '37f990b776c224c05e0d4eaf93625c78', 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 ('06FRZKCN13EF5TD9EZTXMSJ7EG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ④: wire-size table for step-canvas encodings (raw/bit-packed/RLE/PNG + MessagePack round-trip)', 'Workshop gate measurement for body-map-viewer (brief appendix ④; tyre-implications.md §3.3). For a ~330K-gridunit step canvas: dense classification arrays ≈ 4–5 bytes/gridunit ≈ 1.3–1.6 MB/step raw. Produce the comparison table: raw dense vs bit-packed vs run-length vs PNG-encoded raster, with an actual MessagePack round-trip on one real canvas (not arithmetic only). Directly informs the named-feature encoding decision (Araminta Q1) and whether the tagged-envelope migration (D-225 deferral) is forced. Owners: Araminta (encoding) + Dudley (real canvas + numbers). Effort est 0.5 day.', 'ready', 'high', NULL, 'server', 'D-225', '2026-07-23 16:27:22.760', '2026-07-23 16:27:39.319', NULL, 'c4ec326c77a801398dce8bfa88eb11d1', 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 ('06FRZKAV6ZK4KAZ6YCGFNBQ4T0', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ①: equilibrium hydrology solver prototype + bench (512×256 and 4K-class) incl. cliff representation', 'Workshop gate measurement for body-map-viewer (brief: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md, appendix ①; analysis: tyre-implications.md §3.1). Prototype the deterministic-equilibrium hydrology solver (priority-flood family: lake fill above sea level, overflow re-routing to sea or endorheic self-cycle, gorge carving when no easier path — settled end-state, pure function of seed + moisture/climate, extends drainage.rs D8). Bench at 512×256 (Layer-1 grid) AND a 4K-class canvas (~330K and up to 8.3M cells). MUST also output the cliff/two-heights-per-gridunit representation proposal (red flag 4) — the data-model answer, not just cost. Owner: Dudley. Effort est 1–2 days. This is the one measurement that could invalidate per-body-open settled hydrology if it lands in seconds not milliseconds.', 'in_progress', 'high', NULL, 'server', 'D-227', '2026-07-23 16:27:07.959', '2026-07-23 16:31:37.581', NULL, '61c073617a346243e78fcbabed4cf69d', 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 ('06FRZKBTD7VKSXNWADWHV3QDQ8', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ②: per-gridunit derive bench at real canvas sizes (330K and 8.3M cells, production par_iter path)', 'Workshop gate measurement for body-map-viewer (brief appendix ②; tyre-implications.md §3.2). Run zoom_ladder_bench-class measurement of derive_at_metres on the PRODUCTION build_district_window_layer row-chunked par_iter path at ~330K cells (5×5 display-unit fallback, 4K-class) and ~8.3M cells (1×1 ideal). Known baselines: 1.785 µs/cell District cutoff, 1.454 µs/cell orbital, 0.617 ms per 4,096-cell served window — measured at 4,096 cells only; the chunking behavior at 330K+ is the exact extrapolation gap that killed the T-1143 planetary-rung cost story. MEASURE, do not extrapolate. Feeds Dudley Q3/Q4, red-flag-2 memory math, and Troblum''s round-2 cost pass. Owner: Dudley. Effort est 0.5 day.', 'in_progress', 'high', NULL, 'server', 'D-226', '2026-07-23 16:27:15.945', '2026-07-23 16:31:37.588', NULL, '05532e9b2b981513533cd58362c36344', 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 ('06FRZKCN13EF5TD9EZTXMSJ7EG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ④: wire-size table for step-canvas encodings (raw/bit-packed/RLE/PNG + MessagePack round-trip)', 'Workshop gate measurement for body-map-viewer (brief appendix ④; tyre-implications.md §3.3). For a ~330K-gridunit step canvas: dense classification arrays ≈ 4–5 bytes/gridunit ≈ 1.3–1.6 MB/step raw. Produce the comparison table: raw dense vs bit-packed vs run-length vs PNG-encoded raster, with an actual MessagePack round-trip on one real canvas (not arithmetic only). Directly informs the named-feature encoding decision (Araminta Q1) and whether the tagged-envelope migration (D-225 deferral) is forced. Owners: Araminta (encoding) + Dudley (real canvas + numbers). Effort est 0.5 day.', 'in_progress', 'high', NULL, 'server', 'D-225', '2026-07-23 16:27:22.760', '2026-07-23 16:31:37.588', NULL, '712e42ed863b9e3105a2c5997027e165', 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 ('06FRCF0CX1Y5DTD3ER2JCDT27G', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Below-quarter measurement pass — block/tile rung costs and wire (gate for the opened (d) floor)', 'Gate ticket from Jeroen''s floor ruling (2026-07-21, D-226 amendment: ''we set a new BHAG so old restrictions are up for debate'' — the Atlas ladder may descend below quarter toward tile, implementation-gated on THIS pass). Measure what the design pass could not (docs/architecture/atlas-zoom-ladder-t1143.md SS2 marks block/tile ''not estimated''): per-cell derive cost at block (128m) and tile-adjacent spacings with the min_wavelength cutoff active; realistic window cell counts and wire bytes at those granularities vs the SS4 budget; memory/caching behavior; whether voxel_relief/voxel_mosaic math is reusable as-is for Atlas sampling or needs an extraction like derive_at_metres. Output: a costs appendix to the design doc + go/no-go recommendation per rung. Constraint preserved by the ruling: chunk/tile output never appears as a whole-body planetary layer — windowed viewport only. Blocked by derive_at_metres (the cutoff must exist to measure with it).
|
||||
|
||||
REPURPOSED as body-map-viewer workshop gate measurement ③ (2026-07-25, brief appendix ③: docs/workshops/body-map-viewer/body-map-viewer-workshop-brief.md). Unblocked since T-1162 shipped the octave-cutoff plumbing this was blocked on. Scope unchanged (block/tile rung per-cell costs + wire at those granularities); its numbers now price the bottom of the stepped gridunit ladder (~10px per 1m tile bottom-out). Round 1 of the workshop is gated on this landing alongside T-1177/T-1178/T-1179.', 'in_progress', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:50.248', '2026-07-23 16:31:37.588', NULL, 'cdc96a05f582115e1ce211e78d496fe6', 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 ('06FRZKDFB23YFACY2G4M6WRSXC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Measurement ⑤: Godot ImageTexture upload cost per step-cross (330K–8.3M px)', 'Workshop measurement for body-map-viewer (brief appendix ⑤; tyre-implications.md §3.5). Measure ImageTexture.create_from_image (and update paths) for 330K–8.3M px images on step-cross — client-side stutter risk for the RTT terrain layer''s hold-fetch-swap. NOT a round-1 gate (may land during round 1), but a real interactive-latency input for Stig Q2. Owner: Stig. Effort est 0.25 day.', 'in_progress', 'medium', NULL, 'client', 'D-226', '2026-07-23 16:27:29.496', '2026-07-23 16:31:37.589', NULL, '4ba81e04e267da1df792e1cdb1bb4e0d', 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