diff --git a/.pql/changelog/ticket_history/2026-07.sql b/.pql/changelog/ticket_history/2026-07.sql index 4487fb938..5fa00e914 100644 --- a/.pql/changelog/ticket_history/2026-07.sql +++ b/.pql/changelog/ticket_history/2026-07.sql @@ -1636,3 +1636,23 @@ D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only.', NULL, '2026-07-21 19:06:30', '2026-07-21 19:06:30.921', '2026-07-21 19:06:30.921', NULL, '9204f1e54fcf03591a9c3bdf4ddc90a6', 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 ('06FR97DPEHANCYX2AC4021BSJC', 'status', 'backlog', 'in_progress', NULL, '2026-07-21 19:10:46', '2026-07-21 19:10:46.894', '2026-07-21 19:10:46.894', NULL, 'c1fc1b7447ced35a13b1df723a01f0b2', 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 ('06FR97DPEHANCYX2AC4021BSJC', 'description', 'Follow-on from Jeroen''s first descent (2026-07-21): even with T-1142 fixed, many interior windows are genuinely one morphology zone across 66km, and the composite''s absolute lightness modulation (0.7 + 0.3 x elev_q/100, D-226 T-1124 SS5) spans only ~1-3% lightness over a window whose local elev range is small — the window reads as a dead flat fill rather than terrain. Proposal to evaluate WITH Araminta (SS5 is her encoding): window-local contrast stretch — normalize lightness within the window''s own elev min..max (fixed band, e.g. 0.62..0.92) with a degenerate floor (single-value window stays honestly flat), deterministic per window, mirroring how the aliveness_probe elev panel achieved its 12-level local texture. Alternative/complement: a faint deterministic per-cell variation or contour hinting. Any change to the recorded SS5 encoding gets a one-line amendment note. Assess AFTER T-1142 lands — real clicks will then land on real terrain and the residual flatness can be judged on coastal vs interior windows. + +Scope expansion (Jeroen round-2, 2026-07-21): beyond window-local contrast, evaluate SUB-DISTRICT SAMPLING to de-block the composite at the data level — the D-227 invention fields (invent_primitives: warped envelope, scatter, character) are continuous at metre resolution and quarter granularity (512m, 4x4 per district) sits WITHIN the D-226(d) Atlas ceiling (the cap rules out chunk/tile mapping, not quarters). But classification (derive_district) is per-district today — finer sampling means a new derivation mode (e.g. sample the continuous primitives at quarter spacing and reuse the district''s classification for hue while modulating lightness/moisture per quarter, or classify per quarter at 16x the derive cost — n=32 window = 16384 quarter cells x ~7us = ~115ms background). Needs Dudley/Tyre on data feasibility + cost, Araminta on encoding. INTERIM already shipping in T-1145: linear-filtered texture rendering (presentation smoothing, no data change) — judge the residual need after both T-1145 and real-aim clicking land. + +RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is INTERIM ONLY — he expects not to like it as the destination. The destination is SMALLER DETERMINISTICALLY-CALCULATED PIXELS (sub-district sampling, the sketch above), and the larger vision: SCROLL-ZOOM AS CONTINUOUS INFORMATION LoD — zooming in from the regional level progressively refines the sampled resolution seamlessly (no mode transition), ''zoom in to tile size from this level'' in his words. The design pass must therefore produce: (a) the granularity ladder the zoom traverses (district 2048m -> quarter 512m -> ? ), with derivation modes + per-window costs at each rung; (b) wire implications — finer windows multiply cell counts (quarter = 16x district cells/window); weigh against the windowed-family ceiling and the SS4 budget model (likely per-rung window requests reusing the same district_window carrier at different granularity, or a granularity param — design call); (c) THE FLOOR QUESTION back to Jeroen explicitly: ''tile size'' intersects the D-226(d) ceiling (chunk/tile output never Atlas-mapped; quarter is the current legal floor) — the pass presents the options (stop at quarter vs supersede D-226(d) for the window view) rather than assuming; (d) Araminta: encoding continuity across rungs (one colorizer family, hue stability as resolution refines). The COMPOSITE_SMOOTH linear-filter path ships until this lands, then is expected to be retired. + +D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating. + +Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only.', 'Follow-on from Jeroen''s first descent (2026-07-21): even with T-1142 fixed, many interior windows are genuinely one morphology zone across 66km, and the composite''s absolute lightness modulation (0.7 + 0.3 x elev_q/100, D-226 T-1124 SS5) spans only ~1-3% lightness over a window whose local elev range is small — the window reads as a dead flat fill rather than terrain. Proposal to evaluate WITH Araminta (SS5 is her encoding): window-local contrast stretch — normalize lightness within the window''s own elev min..max (fixed band, e.g. 0.62..0.92) with a degenerate floor (single-value window stays honestly flat), deterministic per window, mirroring how the aliveness_probe elev panel achieved its 12-level local texture. Alternative/complement: a faint deterministic per-cell variation or contour hinting. Any change to the recorded SS5 encoding gets a one-line amendment note. Assess AFTER T-1142 lands — real clicks will then land on real terrain and the residual flatness can be judged on coastal vs interior windows. + +Scope expansion (Jeroen round-2, 2026-07-21): beyond window-local contrast, evaluate SUB-DISTRICT SAMPLING to de-block the composite at the data level — the D-227 invention fields (invent_primitives: warped envelope, scatter, character) are continuous at metre resolution and quarter granularity (512m, 4x4 per district) sits WITHIN the D-226(d) Atlas ceiling (the cap rules out chunk/tile mapping, not quarters). But classification (derive_district) is per-district today — finer sampling means a new derivation mode (e.g. sample the continuous primitives at quarter spacing and reuse the district''s classification for hue while modulating lightness/moisture per quarter, or classify per quarter at 16x the derive cost — n=32 window = 16384 quarter cells x ~7us = ~115ms background). Needs Dudley/Tyre on data feasibility + cost, Araminta on encoding. INTERIM already shipping in T-1145: linear-filtered texture rendering (presentation smoothing, no data change) — judge the residual need after both T-1145 and real-aim clicking land. + +RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is INTERIM ONLY — he expects not to like it as the destination. The destination is SMALLER DETERMINISTICALLY-CALCULATED PIXELS (sub-district sampling, the sketch above), and the larger vision: SCROLL-ZOOM AS CONTINUOUS INFORMATION LoD — zooming in from the regional level progressively refines the sampled resolution seamlessly (no mode transition), ''zoom in to tile size from this level'' in his words. The design pass must therefore produce: (a) the granularity ladder the zoom traverses (district 2048m -> quarter 512m -> ? ), with derivation modes + per-window costs at each rung; (b) wire implications — finer windows multiply cell counts (quarter = 16x district cells/window); weigh against the windowed-family ceiling and the SS4 budget model (likely per-rung window requests reusing the same district_window carrier at different granularity, or a granularity param — design call); (c) THE FLOOR QUESTION back to Jeroen explicitly: ''tile size'' intersects the D-226(d) ceiling (chunk/tile output never Atlas-mapped; quarter is the current legal floor) — the pass presents the options (stop at quarter vs supersede D-226(d) for the window view) rather than assuming; (d) Araminta: encoding continuity across rungs (one colorizer family, hue stability as resolution refines). The COMPOSITE_SMOOTH linear-filter path ships until this lands, then is expected to be retired. + +D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating. + +Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only. + +DESIGN PASS DELIVERED (2026-07-21): docs/architecture/atlas-zoom-ladder-t1143.md — 9-agent pass (Tyre/Dudley/Araminta design, Troblum adversarial + completeness critique, Qatux synthesis). Jeroen''s three rulings recorded as a D-226 amendment: (1) floor OPENED — ''we set a new BHAG so old restrictions are up for debate''; ladder may descend below quarter, gated on the T-1154 measurement pass; (2) planetary carrier = progressive capped-density tiling on the generalized district_window carrier; (3) entry seam = continuous cursor-anchored zoom with full-zoom-out reset to the canonical planetary frame (supersedes the click-through-only cut). Implementation chain created: T-1149 (derive_at_metres + octave cutoff, keystone) -> T-1150 (granularity carrier, five touch points + aliasing test) + T-1151 (window par_iter) -> T-1152 (derived planetary rung) + T-1153 (client continuous ladder) -> T-1155 (COMPOSITE_SMOOTH retirement); T-1154 (below-quarter measurement gate). Original scope items resolved by the ladder: window-local contrast stretch judged obsolete under quarter sampling (SS6), COMPOSITE_SMOOTH interim retires at T-1155.', NULL, '2026-07-21 19:52:27', '2026-07-21 19:52:27.616', '2026-07-21 19:52:27.616', NULL, 'f52022c88cefd0dcc1d65326af982756', 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 ('06FR97DPEHANCYX2AC4021BSJC', 'status', 'in_progress', 'done', NULL, '2026-07-21 19:52:32', '2026-07-21 19:52:32.105', '2026-07-21 19:52:32.105', NULL, '3d864118d925071e6e5b4b182264ccac', 2) ON CONFLICT(hash) DO NOTHING; diff --git a/.pql/changelog/tickets/2026-07.sql b/.pql/changelog/tickets/2026-07.sql index 1c0de8889..259ff750b 100644 --- a/.pql/changelog/tickets/2026-07.sql +++ b/.pql/changelog/tickets/2026-07.sql @@ -2403,3 +2403,32 @@ RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating. Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only.', 'in_progress', 'high', NULL, 'client', NULL, '2026-07-21 12:19:16.212', '2026-07-21 19:10:46.889', NULL, 'ba1c5f1583066ebba07766b39cffcaa4', 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 ('06FRCET0RKD7ED9D9RY5Q99RQG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'derive_at_metres extraction + min_wavelength octave cutoff in enveloped_fbm', 'Zoom-ladder migration step 1 (docs/architecture/atlas-zoom-ladder-t1143.md SS8; keystone for every rung). Extract derive_district''s fractional-metres interior (district_profile.rs:1426+ already computes px/py/world_x_m/world_y_m/lat_deg from the integer DistrictPos) into derive_at_metres(seed, body, wx, wy, min_wl); derive_district becomes a thin integer-quantizing wrapper — bit-identical output for existing callers is the acceptance test (golden harness must not move). Add min_wavelength_m: f64 to enveloped_fbm (detail_scatter.rs:137-176) and the terrain_detail/voxel_relief const-octave paths: truncate octaves below the cutoff; evaluate Dudley''s amplitude-fade-near-cutoff refinement vs hard truncate (pop risk as sampling density crosses an octave boundary) and pick with a visual A/B. Re-benchmark derive cost with the cutoff active at district and quarter spacings — the design doc''s numbers are for the UNMODIFIED pipeline and are marked contested (SS2 status note + Troblum R-findings).', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-21 19:50:57.988', '2026-07-21 19:50:57.988', NULL, '1bdbf75be57bb3c9c117650378782188', 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 ('06FRCEV8Q32C2FW9Y6733419DG', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'window_granularity + window_min_wl_m on the district_window carrier (five touch points + aliasing test)', 'Zoom-ladder migration step 3 (docs/architecture/atlas-zoom-ladder-t1143.md SS3). serde-default window_granularity: u32 (1=district, 4=quarter) and window_min_wl_m: u32 (0=off) on AtlasLayerRequest — the T-1124 SS1 additive pattern, no sixth demux shape. The design pass flags this as a five-touch-point coordinated change and mandates the test: server DistrictWindowLayer echo tuple (center, n, granularity), server FIFO-256 window cache key (layer_proxy.rs:308), server per-connection coalescing key (gen_queue.rs:221-224), client request struct, client 24-entry LRU key (atlas_window_cache.gd:33-38). MANDATORY regression test: granularity-4 and granularity-1 requests at identical (center, n) must produce DISTINCT cache entries on BOTH ends — a missed key (worst: client) silently aliases quarter data onto district slots with no error. Quarter derivation mode = Option B full reclassification at 512m spacing (design SS2), served through the same queue; per-request cell cap per the capped-density rule.', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-21 19:51:08.216', '2026-07-21 19:51:08.216', NULL, '223d6d026e39f34dbcb873c10ac123b2', 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 ('06FRCEWBS5RC5YET0SMSPZ1E9W', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Chunked par_iter for build_district_window_layer', 'Zoom-ladder migration step 2 (docs/architecture/atlas-zoom-ladder-t1143.md SS8). build_district_window_layer''s cell loop (layer_proxy.rs:388) is serial today; parallelize with row/column chunked par_iter on the existing Rayon pool (the GenerationQueue already runs windows on Rayon — this parallelizes WITHIN a window). Needed before quarter windows: n=32-extent at quarter granularity is 16,384 cells (~20-23ms serial uncapped, design SS2 table). Determinism: chunk boundaries must not change output — cells are independent by construction (derive_at_metres is pure), assert with a serial-vs-parallel golden comparison.', 'backlog', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:17.193', '2026-07-21 19:51:17.193', NULL, 'fa5a115d44400e7191be794d7335b90b', 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 ('06FRCEXHYP8RVBPB8QNZHTNTR0', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Derived planetary rung — progressive capped-density tiling; AtlasViewer heightmap texture retires', 'Zoom-ladder migration step 4 (docs/architecture/atlas-zoom-ladder-t1143.md SS4/SS8) under Jeroen''s carrier ruling (2026-07-21): the orbital view becomes fully derived output served as PROGRESSIVE CAPPED-DENSITY TILING on the generalized district_window carrier at coarse granularity (region-band octaves, region_baseline_at_district blend path — no invent_primitives at orbital wavelengths) — no dense raster wire shape, no tagged-envelope migration. Client: AtlasViewer''s direct heightmap-texture display path retires IN THE SAME CHANGE that the derived orbital view lands (never strand the view); heightmap PNGs/systems.db raster become invisible derivation input only (D-166 corollary; import_heightmaps stays as input storage). Carries design risks R1 (planetary cost story is stacked unmeasured extrapolations — measure first), R2 (stepped categorical fields at orbital scale), R5 (granularity param cannot express coarser-than-district — needs the enum/log-scale redesign before this rung). Blocked by the granularity carrier and derive_at_metres steps.', 'backlog', 'high', NULL, 'server', 'D-226', '2026-07-21 19:51:26.966', '2026-07-21 19:51:26.966', NULL, '5d00f9ebf2ef16ebe4e7d4d5724edb9a', 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 ('06FRCEZ47J16E3XKE957HGR8H4', 'story', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Continuous cursor-anchored zoom ladder in the client — rung selection, progressive refinement, seam zoom with full-zoom-out reset', 'Zoom-ladder migration step 5 (docs/architecture/atlas-zoom-ladder-t1143.md SS5/SS8) under Jeroen''s seam ruling (2026-07-21): wheel zoom is CONTINUOUS and CURSOR-ANCHORED from the orbital frame down through regional granularities (supersedes the click-through-only entry; D-013''s ''zoom gesture owns spatial descent'' restored for this seam), with the HARD CONDITION that a full zoom-out resets to the original canonical planetary frame and location (the fixed orbital framing is the ladder''s top rest state — no drifted pan state at the top). Rung-selection rule: sample spacing E/C (world extent per canvas px); request the coarsest rung whose spacing <= 2x(E/C). Progressive refinement: hold the coarse composite, fetch finer granularity, sharpen in place (Araminta SS6: no hue step, no layout jump, coastline stable across rungs — acceptance criteria in the doc). Request coalescing across zoom gestures; T-1138''s click-through + reticle retire in the same change. Encoding continuity per SS6 (one colorizer family; hue-average rule ties to the reclassification mode). Blocked by the granularity carrier; the planetary top rung can land before or after (degrade gracefully to current fixed orbital view).', 'backlog', 'high', NULL, 'client', 'D-226', '2026-07-21 19:51:39.836', '2026-07-21 19:51:39.836', NULL, '4c3d09a884f926248e30a96fc05c71d5', 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).', 'backlog', 'medium', NULL, 'server', 'D-226', '2026-07-21 19:51:50.248', '2026-07-21 19:51:50.248', NULL, 'febcd5cf37559ab0035868c37624a605', 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 ('06FRCF1A0K41K6S85X0HTXACHM', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Retire COMPOSITE_SMOOTH once quarter windows are default at close zoom', 'Zoom-ladder migration step 6 (docs/architecture/atlas-zoom-ladder-t1143.md SS8). The linear-filter interim (atlas_window_overlay.gd:60, T-1145) retires once granularity-4 quarter windows are the default at close zoom — real classified quarter cells replace GPU bilinear smoothing as the source of sub-district texture (Jeroen''s ruling: smoothing was never the destination). Remove the compile-time const and the crisp/smooth dual path; keep one render path. Blocked by the client zoom ladder.', 'backlog', 'low', NULL, 'client', 'D-226', '2026-07-21 19:51:57.700', '2026-07-21 19:51:57.700', NULL, '9f78be3b6bdaafe665c0f21354b2118e', 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 ('06FR97DPEHANCYX2AC4021BSJC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Regional window legibility on quiet interiors — window-local elevation contrast', 'Follow-on from Jeroen''s first descent (2026-07-21): even with T-1142 fixed, many interior windows are genuinely one morphology zone across 66km, and the composite''s absolute lightness modulation (0.7 + 0.3 x elev_q/100, D-226 T-1124 SS5) spans only ~1-3% lightness over a window whose local elev range is small — the window reads as a dead flat fill rather than terrain. Proposal to evaluate WITH Araminta (SS5 is her encoding): window-local contrast stretch — normalize lightness within the window''s own elev min..max (fixed band, e.g. 0.62..0.92) with a degenerate floor (single-value window stays honestly flat), deterministic per window, mirroring how the aliveness_probe elev panel achieved its 12-level local texture. Alternative/complement: a faint deterministic per-cell variation or contour hinting. Any change to the recorded SS5 encoding gets a one-line amendment note. Assess AFTER T-1142 lands — real clicks will then land on real terrain and the residual flatness can be judged on coastal vs interior windows. + +Scope expansion (Jeroen round-2, 2026-07-21): beyond window-local contrast, evaluate SUB-DISTRICT SAMPLING to de-block the composite at the data level — the D-227 invention fields (invent_primitives: warped envelope, scatter, character) are continuous at metre resolution and quarter granularity (512m, 4x4 per district) sits WITHIN the D-226(d) Atlas ceiling (the cap rules out chunk/tile mapping, not quarters). But classification (derive_district) is per-district today — finer sampling means a new derivation mode (e.g. sample the continuous primitives at quarter spacing and reuse the district''s classification for hue while modulating lightness/moisture per quarter, or classify per quarter at 16x the derive cost — n=32 window = 16384 quarter cells x ~7us = ~115ms background). Needs Dudley/Tyre on data feasibility + cost, Araminta on encoding. INTERIM already shipping in T-1145: linear-filtered texture rendering (presentation smoothing, no data change) — judge the residual need after both T-1145 and real-aim clicking land. + +RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is INTERIM ONLY — he expects not to like it as the destination. The destination is SMALLER DETERMINISTICALLY-CALCULATED PIXELS (sub-district sampling, the sketch above), and the larger vision: SCROLL-ZOOM AS CONTINUOUS INFORMATION LoD — zooming in from the regional level progressively refines the sampled resolution seamlessly (no mode transition), ''zoom in to tile size from this level'' in his words. The design pass must therefore produce: (a) the granularity ladder the zoom traverses (district 2048m -> quarter 512m -> ? ), with derivation modes + per-window costs at each rung; (b) wire implications — finer windows multiply cell counts (quarter = 16x district cells/window); weigh against the windowed-family ceiling and the SS4 budget model (likely per-rung window requests reusing the same district_window carrier at different granularity, or a granularity param — design call); (c) THE FLOOR QUESTION back to Jeroen explicitly: ''tile size'' intersects the D-226(d) ceiling (chunk/tile output never Atlas-mapped; quarter is the current legal floor) — the pass presents the options (stop at quarter vs supersede D-226(d) for the window view) rather than assuming; (d) Araminta: encoding continuity across rungs (one colorizer family, hue stability as resolution refines). The COMPOSITE_SMOOTH linear-filter path ships until this lands, then is expected to be retired. + +D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating. + +Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only. + +DESIGN PASS DELIVERED (2026-07-21): docs/architecture/atlas-zoom-ladder-t1143.md — 9-agent pass (Tyre/Dudley/Araminta design, Troblum adversarial + completeness critique, Qatux synthesis). Jeroen''s three rulings recorded as a D-226 amendment: (1) floor OPENED — ''we set a new BHAG so old restrictions are up for debate''; ladder may descend below quarter, gated on the T-1154 measurement pass; (2) planetary carrier = progressive capped-density tiling on the generalized district_window carrier; (3) entry seam = continuous cursor-anchored zoom with full-zoom-out reset to the canonical planetary frame (supersedes the click-through-only cut). Implementation chain created: T-1149 (derive_at_metres + octave cutoff, keystone) -> T-1150 (granularity carrier, five touch points + aliasing test) + T-1151 (window par_iter) -> T-1152 (derived planetary rung) + T-1153 (client continuous ladder) -> T-1155 (COMPOSITE_SMOOTH retirement); T-1154 (below-quarter measurement gate). Original scope items resolved by the ladder: window-local contrast stretch judged obsolete under quarter sampling (SS6), COMPOSITE_SMOOTH interim retires at T-1155.', 'in_progress', 'high', NULL, 'client', NULL, '2026-07-21 12:19:16.212', '2026-07-21 19:52:27.615', NULL, '56256a6146f8800e4181f79ac8f14a6b', 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 ('06FR97DPEHANCYX2AC4021BSJC', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'Regional window legibility on quiet interiors — window-local elevation contrast', 'Follow-on from Jeroen''s first descent (2026-07-21): even with T-1142 fixed, many interior windows are genuinely one morphology zone across 66km, and the composite''s absolute lightness modulation (0.7 + 0.3 x elev_q/100, D-226 T-1124 SS5) spans only ~1-3% lightness over a window whose local elev range is small — the window reads as a dead flat fill rather than terrain. Proposal to evaluate WITH Araminta (SS5 is her encoding): window-local contrast stretch — normalize lightness within the window''s own elev min..max (fixed band, e.g. 0.62..0.92) with a degenerate floor (single-value window stays honestly flat), deterministic per window, mirroring how the aliveness_probe elev panel achieved its 12-level local texture. Alternative/complement: a faint deterministic per-cell variation or contour hinting. Any change to the recorded SS5 encoding gets a one-line amendment note. Assess AFTER T-1142 lands — real clicks will then land on real terrain and the residual flatness can be judged on coastal vs interior windows. + +Scope expansion (Jeroen round-2, 2026-07-21): beyond window-local contrast, evaluate SUB-DISTRICT SAMPLING to de-block the composite at the data level — the D-227 invention fields (invent_primitives: warped envelope, scatter, character) are continuous at metre resolution and quarter granularity (512m, 4x4 per district) sits WITHIN the D-226(d) Atlas ceiling (the cap rules out chunk/tile mapping, not quarters). But classification (derive_district) is per-district today — finer sampling means a new derivation mode (e.g. sample the continuous primitives at quarter spacing and reuse the district''s classification for hue while modulating lightness/moisture per quarter, or classify per quarter at 16x the derive cost — n=32 window = 16384 quarter cells x ~7us = ~115ms background). Needs Dudley/Tyre on data feasibility + cost, Araminta on encoding. INTERIM already shipping in T-1145: linear-filtered texture rendering (presentation smoothing, no data change) — judge the residual need after both T-1145 and real-aim clicking land. + +RULING (Jeroen, 2026-07-21, round-3 direction): the smooth-gradient rendering is INTERIM ONLY — he expects not to like it as the destination. The destination is SMALLER DETERMINISTICALLY-CALCULATED PIXELS (sub-district sampling, the sketch above), and the larger vision: SCROLL-ZOOM AS CONTINUOUS INFORMATION LoD — zooming in from the regional level progressively refines the sampled resolution seamlessly (no mode transition), ''zoom in to tile size from this level'' in his words. The design pass must therefore produce: (a) the granularity ladder the zoom traverses (district 2048m -> quarter 512m -> ? ), with derivation modes + per-window costs at each rung; (b) wire implications — finer windows multiply cell counts (quarter = 16x district cells/window); weigh against the windowed-family ceiling and the SS4 budget model (likely per-rung window requests reusing the same district_window carrier at different granularity, or a granularity param — design call); (c) THE FLOOR QUESTION back to Jeroen explicitly: ''tile size'' intersects the D-226(d) ceiling (chunk/tile output never Atlas-mapped; quarter is the current legal floor) — the pass presents the options (stop at quarter vs supersede D-226(d) for the window view) rather than assuming; (d) Araminta: encoding continuity across rungs (one colorizer family, hue stability as resolution refines). The COMPOSITE_SMOOTH linear-filter path ships until this lands, then is expected to be retired. + +D-166 amendment 2026-07-21 (Jeroen, from the Groombridge/Lendel zoom captures): the seamless zoom ladder this ticket designs is now a HARD Phase-4 deliverable condition — T-750 does not close until the ladder stands (planetary map -> tile scale, every level deterministically derived at native granularity, never magnified interpolation; BHAG itself unchanged). Evidence baked into the amendment: at Lendel scale one heightmap px spans ~19 districts, so the current 16-district window is sub-pixel vs its source — beyond fit-zoom the viewer can only magnify the same composite, and the real waterline sat ~36 districts from the pixel-edge estimate (all window-scale-and-below information is D-227 invented detail and must be derived, not smoothed). This raises the design pass''s stakes: the granularity-rung ladder, wire budget, and the D-226(d) floor question are now phase-gating. + +Corollary to the D-166 2026-07-21 amendment (Jeroen, same day): heightmap PNGs are demoted to INVISIBLE derivation input — no zoom level displays them, including orbital/planetary, which must itself be FULLY DERIVED. Display at every rung samples the derivation at CANVAS RESOLUTION (continuous field, not fixed rasters) — this drops zoom over- and undersampling by construction and makes the map adapt to any viewport size. Design-pass additions: (e) the planetary/orbital rung becomes derived output — spec its derivation mode + cost (whole-planet at canvas res; today''s AtlasViewer texture path retires when it lands); (f) canvas-resolution-adaptive sampling replaces fixed per-rung display granularity — the rung ladder defines DERIVATION granularity available at each scale, while sampling density tracks the viewport; (g) import_heightmaps stays as input storage only. + +DESIGN PASS DELIVERED (2026-07-21): docs/architecture/atlas-zoom-ladder-t1143.md — 9-agent pass (Tyre/Dudley/Araminta design, Troblum adversarial + completeness critique, Qatux synthesis). Jeroen''s three rulings recorded as a D-226 amendment: (1) floor OPENED — ''we set a new BHAG so old restrictions are up for debate''; ladder may descend below quarter, gated on the T-1154 measurement pass; (2) planetary carrier = progressive capped-density tiling on the generalized district_window carrier; (3) entry seam = continuous cursor-anchored zoom with full-zoom-out reset to the canonical planetary frame (supersedes the click-through-only cut). Implementation chain created: T-1149 (derive_at_metres + octave cutoff, keystone) -> T-1150 (granularity carrier, five touch points + aliasing test) + T-1151 (window par_iter) -> T-1152 (derived planetary rung) + T-1153 (client continuous ladder) -> T-1155 (COMPOSITE_SMOOTH retirement); T-1154 (below-quarter measurement gate). Original scope items resolved by the ladder: window-local contrast stretch judged obsolete under quarter sampling (SS6), COMPOSITE_SMOOTH interim retires at T-1155.', 'done', 'high', NULL, 'client', NULL, '2026-07-21 12:19:16.212', '2026-07-21 19:52:32.105', NULL, 'bde71c887bb5dcfeb867591b98b59285', 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); diff --git a/docs/architecture/atlas-zoom-ladder-t1143.md b/docs/architecture/atlas-zoom-ladder-t1143.md index da0ad7c1c..e1e5ffbfe 100644 --- a/docs/architecture/atlas-zoom-ladder-t1143.md +++ b/docs/architecture/atlas-zoom-ladder-t1143.md @@ -184,6 +184,13 @@ Findings not folded into the sections above as fixes, carried here as explicit r ## 10. Decisions for Jeroen +> **RESOLVED — Jeroen's rulings, 2026-07-21 (recorded as a D-226 amendment):** +> 1. **Floor:** *"we set a new BHAG so old restrictions are up for debate"* — the D-226(d) ceiling is opened for the Atlas ladder; "down to tile scale" reads literally. Below-quarter rungs (block/tile) are implementation-gated on their own measurement pass; chunk/tile output still never appears as a whole-body planetary layer. +> 2. **Planetary carrier:** progressive capped-density tiling on the generalized `district_window` carrier (Option B, as recommended). +> 3. **Entry seam:** continuous cursor-anchored zoom through planetary→regional, superseding the click-through-only cut — with the condition that a **full zoom-out resets to the original canonical planetary frame and location**. D-013's "zoom gesture owns spatial descent" is restored for this seam. +> +> The options below are preserved as the decision's context. + ### D-226(d) floor question (the item-(c) question T-1143 was explicitly told to reserve) The mandate says "down to tile scale" (D-166); D-226(d)/T-1112 §2 hard-codes: *"If a future ticket wants finer planetary-scale detail than this, the answer is 'no' per item (d), not 'extend this struct' … by construction, not by restraint that could erode."* These two records are in tension and this pass does not resolve it — it presents options: diff --git a/governance/decisions/architecture.md b/governance/decisions/architecture.md index e8237a52b..53fd6d2a5 100644 --- a/governance/decisions/architecture.md +++ b/governance/decisions/architecture.md @@ -1668,6 +1668,8 @@ Technical foundation decisions that constrain implementation: engine, client-ser **Amended 2026-07-21 (T-1124 §5 entry revision — Jeroen, first companion hands-on):** the regional-map **entry mechanic changes from zoom-threshold LOD swap to explicit click-through**. Jeroen's ruling after using `make atlas`: the planetary pixel-scaling pan/zoom "is only messing with the pixels of the map and the interaction is weird" — (a) the **planetary heightmap view becomes FIXED** (no drag-pan / wheel-zoom of the planetary canvas; the current pan/zoom ships until T-1138 replaces it, then is removed *in the same change* as the replacement so close inspection is never stranded); (b) **entry is a click-through**: hovering the planetary heightmap shows a **rectangle cursor** representing the regional-mode bounds, and clicking descends into the regional map centered on the click point's derived `DistrictPos` — §5's float-on-center/first-window rules carry over with "pan center" read as "click point". `DISTRICT_WINDOW_MIN_ZOOM` is retired before ever being built (the T-1138 zoom-headroom note is moot); the §5 cross-reference reading of D-013 ("the zoom gesture owns spatial descent") is superseded **for this seam only** — click owns descent. Everything *inside* the regional mode stands unchanged (§4 pan-only refetch, debounce, float-on-center, D-227 cache, border-fade). A **morphing transition** between map modes is explicitly deferred (Jeroen: nice, too ambitious for now) — the descent may cut. **Open at T-1138:** the rectangle cursor is an affordance, not to scale — an n=64 window (~131 km) is a few pixels on a planetary canvas; the screen design must resolve the honest representation (rectangle at true extent with a zoom-in cut on click, or a not-to-scale reticle with the real extent labeled beside it) without implying the regional view covers more planet than it does. **Amended 2026-07-21 (T-1145 — Jeroen, second companion hands-on, KALLAST window):** three regional-window presentation fixes, all client-only. **Cover-fit supersedes contain:** `fit_window_view()`'s zoom now derives from the LARGER viewport dimension with no margin factor (`max(viewport.x, viewport.y) / composite_native`, not the old `0.9 * min(...)`), so the square district-window composite fills a wide/tall viewport edge to edge instead of leaving side margins, with the shorter axis' data extending into pan-space (the same "cover" concept as CSS `object-fit: cover`) — the existing §4 pan-edge refetch is unaffected (it keys off the screen-center-to-DistrictPos mapping, which any fit already centers on `_held_center` by construction, so no refetch churn at rest). **WASD + edge-scroll supersedes drag-pan:** LMB-drag panning is removed entirely (Jeroen's ruling — drag conflicts with click semantics for the map objects, e.g. settlements, this window will host later); panning is now held WASD/arrow keys (continuous, frame-rate-independent, `_process`-polled, physical-keycode reads to stay independent of the project's existing `move_north`/etc. gameplay-movement InputMap actions bound to the same keys) plus edge-scrolling (cursor within ~24px of a viewport edge, suppressed over UI and while the OS window lacks focus); wheel zoom is unchanged; pole-wall (§5 amendment above) and east-west wrap (T-1142) semantics are preserved unchanged under the new input source. **Smoothing is an interim presentation, pending T-1143:** the composite renders as an `n`×`n` `Image`/`ImageTexture` (one pixel per district, the identical existing per-cell color pipeline) drawn scaled with linear filtering — the same treatment the planetary heightmap already gets — instead of `n`×`n` flat rects, so GPU bilinear sampling reads as a terrain gradient rather than hard blocks; the original crisp per-cell path survives behind a compile-time const specifically so T-1143's design pass can compare both directly, and this smoothing is **not** T-1143's answer to district-tier legibility, only a stopgap ahead of it. + + **Amended 2026-07-21 (T-1143 design-pass rulings — Jeroen, after the zoom-ladder design pass, `docs/architecture/atlas-zoom-ladder-t1143.md`):** three rulings on the pass's reserved decisions. **(1) The item-(d) ceiling is opened for the Atlas ladder** — Jeroen: *"we set a new BHAG so old restrictions are up for debate."* The D-166 2026-07-21 zoom-ladder condition ("down to tile scale") is read **literally**: the Atlas windowed viewport may descend below quarter (512 m) toward block/tile granularity. This is an explicit ruling, not erosion — exactly the deliberate revisit the T-1112 §2 anti-erosion clause was hardened to force into the open. Item (d)'s substance survives in narrowed form: chunk/tile/voxel output still never appears as a **whole-body planetary map layer**, and the below-quarter rungs are implementation-gated on their own **measurement pass** (costs/wire for block and tile rungs are unmeasured — design pass §2/§7); the harness-verification path for L5 fill remains primary until that pass lands. **(2) Planetary rung wire carrier: progressive capped-density tiling** riding the generalized `district_window` carrier (granularity parameter, §3 of the design pass) — no new dense-raster wire shape, no forced tagged-envelope migration. **(3) The §5 entry click-through cut is superseded by continuous cursor-anchored zoom**: wheel-zoom carries the view from the orbital frame down through regional granularities continuously, anchored at the cursor, **with the condition that a full zoom-out resets to the original canonical planetary frame and location** (the fixed orbital framing is the ladder's top rest state, not a drifted pan state). The click-through descent and rectangle reticle are retired as the *sole* entry (T-1138's shipped mechanic stands until the continuous ladder replaces it in the same change — close inspection is never stranded, same discipline as the §5 fixed-view transition). D-013's "the zoom gesture owns spatial descent" reading is **restored** for this seam. - **Rationale:** Reusing the real UI — rather than a parallel offline renderer or dumped files — means the debug/review surface never diverges from what ships, and a dropped artifact can't go stale. Agent-navigability converts qualitative "does the synthesis look natural?" review from a manual eyeball pass into an automatable sweep that flags the few outliers for a human. The harness rides seams that already exist (`TickRate::Paused`, the paused-allowlist, `gameplay_occluded`, the bridge framing, the `run-visual` capture primitive) — a naming-and-contract exercise, not a new subsystem. - **New surface:** server pause-gating (run-conditions on the world phases keyed to a pause command); client `AtlasAgentInterface` (`observe`/`act`, Control-tree walker) + its local transport; the generation overlay rendering + selector + legend; interactive capture wired to `run-visual`. - **Implementation:** Phase 4 (epic T-750), built bottom-up — auto-pause substrate, T-969 proxy (D-225), T-960 viewer, agent channel, agent capture. Geography is the first consumer.