chore(meta): activate T-1172 waterline clip — Tyre's rung-indexed-coast ruling recorded, T-1170 retirement dependency noted
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1712,3 +1712,14 @@ RE-SCOPED (Jeroen, 2026-07-22): ''we are aiming for not coloring in the cities a
|
||||
|
||||
WAVE-2 REFACTOR NOTE (Tyre, PR #195 Q3): when the civilizational overlays land, host the whole discrete-marker family (city markers, labels, gate glyphs, click targets — all screen-space-constant) on an UNSCALED screen-space sibling Node2D (transform positions into screen space, leave .scale at 1.0) and retire per-call zoom compensation (_zs/zoom_compensated_size) — screen-space-constant becomes correct by construction instead of a per-call-site discipline that silently degrades when one site is missed (PR #195 I1 was exactly that miss). The divide-by-zoom approach shipped in wave 1 is fine once compensated, but the sibling-layer shape is the standard ''HUD annotations over a zoomed canvas'' pattern and pays for itself at wave-2 marker volume. T-1158-adjacent.', NULL, '2026-07-23 07:15:25', '2026-07-23 07:15:25.374', '2026-07-23 07:15:25.374', NULL, '55f2c203cb7e77b39d563a5aaaf1aef2', 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 ('06FRJD57678SVWD7XTSV9E3MSW', 'status', 'review', 'done', NULL, '2026-07-23 07:35:36', '2026-07-23 07:35:36.008', '2026-07-23 07:35:36.008', NULL, 'c624aea58ec451336f11296924898ff3', 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 ('06FRW2ABEG6HQHVKQ9F7NQ1K8R', 'status', 'backlog', 'in_progress', NULL, '2026-07-23 08:16:50', '2026-07-23 08:16:50.647', '2026-07-23 08:16:50.647', NULL, 'd79b72f2f56ec852a84b123b52159f3e', 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 ('06FRW2ABEG6HQHVKQ9F7NQ1K8R', 'description', '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.', '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).', NULL, '2026-07-23 08:16:50', '2026-07-23 08:16:50.672', '2026-07-23 08:16:50.672', NULL, '002af7c88b10a6983314622bacd2bcbe', 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', 'description', 'Named experience gap from T-1156 wave 1 (Si audit + lead, 2026-07-23): the D8 river skeleton lives at heightmap working-grid resolution (512x256 — ~76.6 km per river cell on Lendel). Wave 1''s per-rung class filtering makes planetary/Region river courses real, but at District (2 km cells, ~65 km window) and Quarter the geometry is SPARSER THAN THE WINDOW — a window typically contains zero or one river cell, so ''tributaries at District, streams at Quarter'' cannot materialize as visible courses from the stored skeleton alone. The fix is the linear-feature analog of T-1162''s coast crinkle: deterministically INVENT river course geometry between/below D8 cells — domain-warped polyline interpolation between adjacent river cells (seeded per body+cell pair, D-227 discipline, elevation-aware so courses prefer invented-terrain valleys where feasible), refining with rung the same way the coast warp refines the coastline. Also the natural home for reconciling rivers with T-1162''s invented relief (a wave-1 known gap: drawn rivers may cross invented hills — acceptable at 76 km dot spacing, glaring once courses are continuous). Depends on wave 1''s carrier (river_class on RiverNetwork) landing first.
|
||||
|
||||
T-1156 review forward-note (Tyre, PR #195 Q1): when this ticket redesigns the binning corner, consider PER-BASIN anchoring as an explicit option — every watershed gets its own trunk regardless of the body''s dominant river (the right eventual model once basins are player-inspectable), at the cost of a second normalization pass and a cross-basin legibility decision at Region scale (several equal-weight ''trunks'' of wildly different magnitude undersell the dominant drainage). The wave-1 global-per-body anchor is correct for ''show the main river system at a glance''. Single revisit points: classify_river_cell (server) and RIVER_CLASS_VISIBLE_BY_RUNG (client).', 'Named experience gap from T-1156 wave 1 (Si audit + lead, 2026-07-23): the D8 river skeleton lives at heightmap working-grid resolution (512x256 — ~76.6 km per river cell on Lendel). Wave 1''s per-rung class filtering makes planetary/Region river courses real, but at District (2 km cells, ~65 km window) and Quarter the geometry is SPARSER THAN THE WINDOW — a window typically contains zero or one river cell, so ''tributaries at District, streams at Quarter'' cannot materialize as visible courses from the stored skeleton alone. The fix is the linear-feature analog of T-1162''s coast crinkle: deterministically INVENT river course geometry between/below D8 cells — domain-warped polyline interpolation between adjacent river cells (seeded per body+cell pair, D-227 discipline, elevation-aware so courses prefer invented-terrain valleys where feasible), refining with rung the same way the coast warp refines the coastline. Also the natural home for reconciling rivers with T-1162''s invented relief (a wave-1 known gap: drawn rivers may cross invented hills — acceptable at 76 km dot spacing, glaring once courses are continuous). Depends on wave 1''s carrier (river_class on RiverNetwork) landing first.
|
||||
|
||||
T-1156 review forward-note (Tyre, PR #195 Q1): when this ticket redesigns the binning corner, consider PER-BASIN anchoring as an explicit option — every watershed gets its own trunk regardless of the body''s dominant river (the right eventual model once basins are player-inspectable), at the cost of a second normalization pass and a cross-basin legibility decision at Region scale (several equal-weight ''trunks'' of wildly different magnitude undersell the dominant drainage). The wave-1 global-per-body anchor is correct for ''show the main river system at a glance''. Single revisit points: classify_river_cell (server) and RIVER_CLASS_VISIBLE_BY_RUNG (client).
|
||||
|
||||
T-1172 retirement dependency (Tyre''s clip ruling): when this ticket''s course invention terminates courses at the invented coast with continuous geometry, RETIRE the T-1172 draw-time water clip in the same change (marker comment at the clip site in atlas_window_nature_overlay.gd) — suppressed offshore mouths return with real coast-terminus geometry here. Also: the clip''s strict-drop behavior at Region 205km cells (accepted amputation of final coastal dots) is superseded by real course termini.', NULL, '2026-07-23 08:16:58', '2026-07-23 08:16:58.392', '2026-07-23 08:16:58.392', NULL, '030830007916704b01876509cd9ca935', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
|
||||
@@ -2519,3 +2519,15 @@ RE-SCOPED (Jeroen, 2026-07-22): ''we are aiming for not coloring in the cities a
|
||||
|
||||
WAVE-2 REFACTOR NOTE (Tyre, PR #195 Q3): when the civilizational overlays land, host the whole discrete-marker family (city markers, labels, gate glyphs, click targets — all screen-space-constant) on an UNSCALED screen-space sibling Node2D (transform positions into screen space, leave .scale at 1.0) and retire per-call zoom compensation (_zs/zoom_compensated_size) — screen-space-constant becomes correct by construction instead of a per-call-site discipline that silently degrades when one site is missed (PR #195 I1 was exactly that miss). The divide-by-zoom approach shipped in wave 1 is fine once compensated, but the sibling-layer shape is the standard ''HUD annotations over a zoomed canvas'' pattern and pays for itself at wave-2 marker volume. T-1158-adjacent.', 'done', 'high', NULL, 'client', 'D-226', '2026-07-22 09:42:37.105', '2026-07-23 07:35:36.008', NULL, '29b4c320dbcc5d1568efd1f6f2a1a8dd', 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 ('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.', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-23 08:13:21.652', '2026-07-23 08:13:21.652', NULL, 'a8b7da7a6864d26e7ec43407f017f130', 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 ('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.', 'in_progress', 'high', NULL, 'server', 'D-226', '2026-07-23 08:13:21.652', '2026-07-23 08:16:50.646', NULL, '61c48cb05e8ff0cf3310ef90c39096ef', 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 ('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, 'server', 'D-226', '2026-07-23 08:13:21.652', '2026-07-23 08:16:50.672', NULL, 'bab9194019631134d9c694c2607ae5d3', 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 ('06FRV2GT1FQVATWX641KY9K66C', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Invent river courses below heightmap resolution — deterministic warped polylines between D8 cells', 'Named experience gap from T-1156 wave 1 (Si audit + lead, 2026-07-23): the D8 river skeleton lives at heightmap working-grid resolution (512x256 — ~76.6 km per river cell on Lendel). Wave 1''s per-rung class filtering makes planetary/Region river courses real, but at District (2 km cells, ~65 km window) and Quarter the geometry is SPARSER THAN THE WINDOW — a window typically contains zero or one river cell, so ''tributaries at District, streams at Quarter'' cannot materialize as visible courses from the stored skeleton alone. The fix is the linear-feature analog of T-1162''s coast crinkle: deterministically INVENT river course geometry between/below D8 cells — domain-warped polyline interpolation between adjacent river cells (seeded per body+cell pair, D-227 discipline, elevation-aware so courses prefer invented-terrain valleys where feasible), refining with rung the same way the coast warp refines the coastline. Also the natural home for reconciling rivers with T-1162''s invented relief (a wave-1 known gap: drawn rivers may cross invented hills — acceptable at 76 km dot spacing, glaring once courses are continuous). Depends on wave 1''s carrier (river_class on RiverNetwork) landing first.
|
||||
|
||||
T-1156 review forward-note (Tyre, PR #195 Q1): when this ticket redesigns the binning corner, consider PER-BASIN anchoring as an explicit option — every watershed gets its own trunk regardless of the body''s dominant river (the right eventual model once basins are player-inspectable), at the cost of a second normalization pass and a cross-basin legibility decision at Region scale (several equal-weight ''trunks'' of wildly different magnitude undersell the dominant drainage). The wave-1 global-per-body anchor is correct for ''show the main river system at a glance''. Single revisit points: classify_river_cell (server) and RIVER_CLASS_VISIBLE_BY_RUNG (client).
|
||||
|
||||
T-1172 retirement dependency (Tyre''s clip ruling): when this ticket''s course invention terminates courses at the invented coast with continuous geometry, RETIRE the T-1172 draw-time water clip in the same change (marker comment at the clip site in atlas_window_nature_overlay.gd) — suppressed offshore mouths return with real coast-terminus geometry here. Also: the clip''s strict-drop behavior at Region 205km cells (accepted amputation of final coastal dots) is superseded by real course termini.', 'backlog', 'medium', NULL, 'server', 'D-227', '2026-07-23 05:54:25.931', '2026-07-23 08:16:58.391', NULL, '00f70fc3431eb438365cd5c6aef78ef0', 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 ('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);
|
||||
|
||||
Reference in New Issue
Block a user