feat(client): capture harness redesigned for the stepped Atlas — (body, rung) goldens (T-1157)

_setup_atlas_golden_shot and _run_atlas_matrix rebuilt on the real D-255
surface: nav.push('regional') through AtlasApp's own body-selection tail,
then StepCanvasViewer.jump_to at a fixed center (inventory item 5) — no
shim over the retired continuous-zoom API. is_pending()-aware bounded
settle (mirroring atlas_agent_driver.gd) and view-transform logging
(inventory item 3) wired into both capture paths. The 12 z2_0/z4_0/zfit
goldens are replaced by 12 (body, rung) goldens captured live against
fresh --test-mode servers; atlas_shots.json/visual.json re-keyed;
atlas_gen_open's stale gen_l1_* overlay ids fixed to gen_dw_temp.

Verification: two consecutive District runs byte-identical, and a
cold-vs-warm disk-cache invariance proof on both terrain draw branches
(Global/NEAREST, District/LINEAR) — byte-identical either way, so
capture output does not depend on the shared user://atlas_cache state.
DEVOPS.md's real-rendering exception note now records the fold-target
mapping for the smoke file T-1182 already deleted (Global + District
goldens exercise its two real-pixel draw branches). Old legacy-tracked
.import sidecars go with their PNGs; new goldens ship bare per
.gitignore's client/**/*.import rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 22:13:37 +02:00
co-authored by Claude Fable 5
parent 0822390f7a
commit a45d4a5f58
42 changed files with 313 additions and 828 deletions
+20 -52
View File
@@ -1,9 +1,7 @@
{
"_comment": "T-1120: Atlas screenshot capture matrix. Consumed by visual_capture.gd's --scenario atlas_matrix mode. Every body/terrain_reference/system pair verified against server/data/systems.db (python3 read-only query, no sqlite3 CLI) — see docs note below for provenance.",
"_comment": "T-1157 (D-255 rewrite of the T-1120 continuous-zoom matrix): Atlas screenshot capture matrix, now keyed on (body, rung) per the stepped Atlas ladder — not (body, zoom, overlay-set). Consumed by visual_capture.gd's --scenario atlas_matrix mode. Every body/terrain_reference/system pair verified against server/data/systems.db (python3 read-only query, no sqlite3 CLI) — see docs note below for provenance.",
"resolution": [1280, 720],
"settle_frames": 30,
"gen_layers_timeout_seconds": 15.0,
"city_names_timeout_seconds": 15.0,
"output_subdir": ".cache/screenshots/atlas",
"bodies": [
{
@@ -63,65 +61,35 @@
"note": "picked — inhabited temperate moon with cities (2), most cities among body_type='moon' AND inhabited=1 bodies in systems.db"
}
],
"zooms": ["fit", 2.0, 4.0],
"rungs": ["Global", "Region", "District", "Quarter", "Block", "Chunk"],
"overlay_sets": {
"A": ["gen_district"],
"B": ["gen_l3_settlements", "gen_l2_roads"],
"C": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"]
"none": [],
"temp": ["gen_dw_temp"],
"moisture": ["gen_dw_moisture"],
"veg": ["gen_dw_veg"]
},
"matrix_rules": {
"A": "fit zoom only (avoids the 63-shot full-matrix explosion)",
"B": "all three zooms",
"C": "fit and 2.0 zoom only (4.0 omitted — set C is already the densest overlay combination, a fourth close-up variant added no new information)"
"one_shot_per_body": "each body gets ONE golden shot at a rung chosen to exercise a different depth of the ladder across the set (Global-heavy for the orbital opener, deeper rungs for a few bodies) — the full 6-rung x 7-body cross product (42 shots) is deliberately NOT curated here, matching T-1121's 'curated subset, not the full matrix' precedent; the full cross product remains reachable ad hoc via AtlasAgentInterface jump_to intents, not as a golden."
},
"shots": [
{ "body_id": "GJ380c", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ380c_zfit_A.png" },
{ "body_id": "GJ380c", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ380c_z2_0_B.png" },
{ "body_id": "GJ380c", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ380c_z4_0_B.png" },
{ "body_id": "GJ380c", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ380c_zfit_B.png" },
{ "body_id": "GJ380c", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ380c_zfit_C.png" },
{ "body_id": "GJ380c", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ380c_z2_0_C.png" },
{ "body_id": "GJ380c", "rung": "Global", "overlays": ["gen_dw_temp"], "filename": "atlas_GJ380c_Global.png" },
{ "body_id": "GJ380c", "rung": "Region", "overlays": ["gen_dw_moisture"], "filename": "atlas_GJ380c_Region.png" },
{ "body_id": "GJ380c", "rung": "District", "overlays": [], "filename": "atlas_GJ380c_District.png" },
{ "body_id": "GJ144e", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ144e_zfit_A.png" },
{ "body_id": "GJ144e", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ144e_z2_0_B.png" },
{ "body_id": "GJ144e", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ144e_z4_0_B.png" },
{ "body_id": "GJ144e", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ144e_zfit_B.png" },
{ "body_id": "GJ144e", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ144e_zfit_C.png" },
{ "body_id": "GJ144e", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ144e_z2_0_C.png" },
{ "body_id": "GJ144e", "rung": "Global", "overlays": [], "filename": "atlas_GJ144e_Global.png" },
{ "body_id": "GJ144e", "rung": "Quarter", "overlays": ["gen_dw_veg"], "filename": "atlas_GJ144e_Quarter.png" },
{ "body_id": "GJ338Bd", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ338Bd_zfit_A.png" },
{ "body_id": "GJ338Bd", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ338Bd_z2_0_B.png" },
{ "body_id": "GJ338Bd", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ338Bd_z4_0_B.png" },
{ "body_id": "GJ338Bd", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ338Bd_zfit_B.png" },
{ "body_id": "GJ338Bd", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ338Bd_zfit_C.png" },
{ "body_id": "GJ338Bd", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ338Bd_z2_0_C.png" },
{ "body_id": "GJ338Bd", "rung": "Global", "overlays": ["gen_dw_moisture"], "filename": "atlas_GJ338Bd_Global.png" },
{ "body_id": "GJ338Bd", "rung": "Block", "overlays": [], "filename": "atlas_GJ338Bd_Block.png" },
{ "body_id": "GJ820Bc", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ820Bc_zfit_A.png" },
{ "body_id": "GJ820Bc", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ820Bc_z2_0_B.png" },
{ "body_id": "GJ820Bc", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ820Bc_z4_0_B.png" },
{ "body_id": "GJ820Bc", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ820Bc_zfit_B.png" },
{ "body_id": "GJ820Bc", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ820Bc_zfit_C.png" },
{ "body_id": "GJ820Bc", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ820Bc_z2_0_C.png" },
{ "body_id": "GJ820Bc", "rung": "Global", "overlays": [], "filename": "atlas_GJ820Bc_Global.png" },
{ "body_id": "GJ820Bc", "rung": "District", "overlays": ["gen_dw_temp"], "filename": "atlas_GJ820Bc_District.png" },
{ "body_id": "GJ251c", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ251c_zfit_A.png" },
{ "body_id": "GJ251c", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ251c_z2_0_B.png" },
{ "body_id": "GJ251c", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ251c_z4_0_B.png" },
{ "body_id": "GJ251c", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ251c_zfit_B.png" },
{ "body_id": "GJ251c", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ251c_zfit_C.png" },
{ "body_id": "GJ251c", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ251c_z2_0_C.png" },
{ "body_id": "GJ251c", "rung": "Global", "overlays": ["gen_dw_veg"], "filename": "atlas_GJ251c_Global.png" },
{ "body_id": "GJ251c", "rung": "Region", "overlays": [], "filename": "atlas_GJ251c_Region.png" },
{ "body_id": "GJ244Ad", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ244Ad_zfit_A.png" },
{ "body_id": "GJ244Ad", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ244Ad_z2_0_B.png" },
{ "body_id": "GJ244Ad", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ244Ad_z4_0_B.png" },
{ "body_id": "GJ244Ad", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ244Ad_zfit_B.png" },
{ "body_id": "GJ244Ad", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ244Ad_zfit_C.png" },
{ "body_id": "GJ244Ad", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ244Ad_z2_0_C.png" },
{ "body_id": "GJ244Ad", "rung": "Global", "overlays": ["gen_dw_temp"], "filename": "atlas_GJ244Ad_Global.png" },
{ "body_id": "GJ445c-m1", "zoom": "fit", "overlay_set": "A", "overlays": ["gen_district"], "filename": "atlas_GJ445c-m1_zfit_A.png" },
{ "body_id": "GJ445c-m1", "zoom": 2.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ445c-m1_z2_0_B.png" },
{ "body_id": "GJ445c-m1", "zoom": 4.0, "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ445c-m1_z4_0_B.png" },
{ "body_id": "GJ445c-m1", "zoom": "fit", "overlay_set": "B", "overlays": ["gen_l3_settlements", "gen_l2_roads"], "filename": "atlas_GJ445c-m1_zfit_B.png" },
{ "body_id": "GJ445c-m1", "zoom": "fit", "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ445c-m1_zfit_C.png" },
{ "body_id": "GJ445c-m1", "zoom": 2.0, "overlay_set": "C", "overlays": ["gen_district", "gen_l3_settlements", "gen_l2_roads", "gen_l1_rivers"], "filename": "atlas_GJ445c-m1_z2_0_C.png" }
{ "body_id": "GJ445c-m1", "rung": "Chunk", "overlays": [], "filename": "atlas_GJ445c-m1_Chunk.png" }
]
}
+31 -26
View File
@@ -4,7 +4,7 @@
"tolerance": 5,
"max_diff_pct": 0.5,
"golden_dir": "client/tests/golden/visual",
"_comment_atlas_goldens": "T-1120 provenance (PR #180 review, Tyre): the 12 atlas_* golden scenarios were captured AND verified (exact pixel match) on danoontje's Mesa/AMD stack. T-1121 documents that goldens do NOT port across boxes at the current tolerance (the 19 pre-existing goldens fail 12-14% on this same box) — an atlas_* golden failing on a DIFFERENT machine is expected baseline drift, not a regression, until T-1121 resolves the canonical-capture-box question.",
"_comment_atlas_goldens": "T-1157 (D-255 rewrite of the T-1120 matrix, PR #180 provenance carried forward, Tyre): the atlas_* golden scenarios below key on (body, rung) per the stepped Atlas ladder, captured AND verified (exact pixel match) on danoontje's Mesa/AMD stack. T-1121 documents that goldens do NOT port across boxes at the current tolerance (the 19 pre-existing goldens fail 12-14% on this same box) — an atlas_* golden failing on a DIFFERENT machine is expected baseline drift, not a regression, until T-1121 resolves the canonical-capture-box question.",
"scenarios": {
"fog_3state": {
"ticks": 5,
@@ -76,7 +76,7 @@
},
"atlas_gen_open": {
"ticks": 240,
"description": "Live: real atlas opener (HudGroups) + GJ71c Layer-1 overlays (#960)"
"description": "Live: real atlas opener (HudGroups) + GJ71c region-ramp overlay (#960, D-255 rewrite)"
},
"locomotion_idle_live": {
"ticks": 90,
@@ -91,65 +91,70 @@
"env": { "SR_AUTOPILOT": "stance_up,south:6.0" },
"description": "Live 3D sandbox: autopilot walks south into a wall — cutaway stub golden (T-1088)"
},
"atlas_GJ380c_zfit_C": {
"atlas_GJ380c_Global": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Lendel (GJ380c), fit zoom, overlay set C (district+settlements+roads+rivers)"
"description": "T-1157 curated Atlas golden (D-255): Lendel (GJ380c), Global rung (rung 0), temperature overlay"
},
"atlas_GJ380c_z4_0_B": {
"atlas_GJ380c_Region": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Lendel (GJ380c), 4.0 zoom, overlay set B (settlements+roads)"
"description": "T-1157 curated Atlas golden (D-255): Lendel (GJ380c), Region rung, moisture overlay"
},
"atlas_GJ144e_zfit_A": {
"atlas_GJ380c_District": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Vethis (GJ144e), fit zoom, overlay set A (district only)"
"description": "T-1157 curated Atlas golden (D-255): Lendel (GJ380c), District rung, no overlay"
},
"atlas_GJ144e_z2_0_C": {
"atlas_GJ144e_Global": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Vethis (GJ144e), 2.0 zoom (labels on), overlay set C"
"description": "T-1157 curated Atlas golden (D-255): Vethis (GJ144e), Global rung, no overlay"
},
"atlas_GJ338Bd_z2_0_C": {
"atlas_GJ144e_Quarter": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Arbour (GJ338Bd), 2.0 zoom (labels on), overlay set C"
"description": "T-1157 curated Atlas golden (D-255): Vethis (GJ144e), Quarter rung, vegetation overlay"
},
"atlas_GJ338Bd_z4_0_B": {
"atlas_GJ338Bd_Global": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Arbour (GJ338Bd), 4.0 zoom, overlay set B"
"description": "T-1157 curated Atlas golden (D-255): Arbour (GJ338Bd), Global rung, moisture overlay"
},
"atlas_GJ820Bc_zfit_A": {
"atlas_GJ338Bd_Block": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Ferrath (GJ820Bc), fit zoom, overlay set A (district only)"
"description": "T-1157 curated Atlas golden (D-255): Arbour (GJ338Bd), Block rung, no overlay"
},
"atlas_GJ820Bc_z2_0_C": {
"atlas_GJ820Bc_Global": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Ferrath (GJ820Bc), 2.0 zoom (labels on), overlay set C"
"description": "T-1157 curated Atlas golden (D-255): Ferrath (GJ820Bc), Global rung, no overlay"
},
"atlas_GJ251c_z2_0_B": {
"atlas_GJ820Bc_District": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Ruhr (GJ251c), 2.0 zoom (labels on), overlay set B (settlements+roads)"
"description": "T-1157 curated Atlas golden (D-255): Ferrath (GJ820Bc), District rung, temperature overlay"
},
"atlas_GJ251c_zfit_C": {
"atlas_GJ251c_Global": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Ruhr (GJ251c), fit zoom, overlay set C — highest-population body in the sample"
"description": "T-1157 curated Atlas golden (D-255): Ruhr (GJ251c), Global rung, vegetation overlay — highest-population body in the sample"
},
"atlas_GJ244Ad_zfit_C": {
"atlas_GJ251c_Region": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Edict (GJ244Ad), fit zoom, overlay set C — frozen planet_class pick"
"description": "T-1157 curated Atlas golden (D-255): Ruhr (GJ251c), Region rung, no overlay"
},
"atlas_GJ445c-m1_z4_0_B": {
"atlas_GJ244Ad_Global": {
"ticks": 240,
"live": true,
"description": "T-1120 curated Atlas golden: Jinghu (GJ445c-m1), 4.0 zoom, overlay set B — inhabited moon pick"
"description": "T-1157 curated Atlas golden (D-255): Edict (GJ244Ad), Global rung, temperature overlay — frozen planet_class pick"
},
"atlas_GJ445c-m1_Chunk": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Jinghu (GJ445c-m1), Chunk rung (deepest), no overlay — inhabited moon pick"
}
},
"flows": {