From 5d00a1d2eefe45129ad1c86eb7a9986c4a5c263d Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 25 Jul 2026 22:47:12 +0200 Subject: [PATCH] =?UTF-8?q?chore(meta):=20pql=20changelog=20=E2=80=94=20T-?= =?UTF-8?q?1196=20active,=20capture=20center=20probed=20(GJ1002b=20massif)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .pql/changelog/ticket_history/2026-07.sql | 82 ++++++++++++++++ .pql/changelog/tickets/2026-07.sql | 110 ++++++++++++++++++++++ 2 files changed, 192 insertions(+) diff --git a/.pql/changelog/ticket_history/2026-07.sql b/.pql/changelog/ticket_history/2026-07.sql index ec2409b4a..3a1ab20bc 100644 --- a/.pql/changelog/ticket_history/2026-07.sql +++ b/.pql/changelog/ticket_history/2026-07.sql @@ -2606,3 +2606,85 @@ Alpine-classed; use only if the Active pair fails to produce MorphologyZone 13/14 crops. GJ0c/GJ0f-1 lack terrain_reference and cannot open in the Atlas.', NULL, '2026-07-25 19:00:39', '2026-07-25 19:00:39.731', '2026-07-25 19:00:39.731', NULL, '194ab5efa1ff3b059c0296830334f801', 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 ('06FRJD6EKPBQE08NA8VHP692W8', 'status', 'in_progress', 'review', NULL, '2026-07-25 20:13:40', '2026-07-25 20:13:40.919', '2026-07-25 20:13:40.919', NULL, '01a486c57de6c9de11129fde26a19a2f', 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 ('06FRJD6EKPBQE08NA8VHP692W8', 'status', 'review', 'done', NULL, '2026-07-25 20:38:51', '2026-07-25 20:38:51.996', '2026-07-25 20:38:51.996', NULL, 'd57c37ca9e91c2c6c18d711dc2d65ec7', 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 ('06FSM3MQ5GFSPKKFJF6GGZN8CM', 'status', 'ready', 'in_progress', NULL, '2026-07-25 20:42:13', '2026-07-25 20:42:13.772', '2026-07-25 20:42:13.772', NULL, '906a8611cbd707cc2eea1c5a9d5dff2e', 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 ('06FSM3MQ5GFSPKKFJF6GGZN8CM', 'assigned_to', NULL, 'hoshe', NULL, '2026-07-25 20:42:14', '2026-07-25 20:42:14.404', '2026-07-25 20:42:14.404', NULL, '92d2b9c79a4dc2f8b43b2ad25b6a8464', 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 ('06FSM3MQ5GFSPKKFJF6GGZN8CM', 'description', 'Araminta''s PR #192 companion note, kept open by her PR #208 ruling (option b): the Quarter-vs-District relief-differentiation check was accepted for the T-1160 merge on a plains/river substitution (GJ380c world center -17723392,-10532864 — Quarter clearly shows finer higher-frequency texture than District), but plains texture and jagged tectonic relief are different visual regimes and the sharper case still needs its own capture. Task: identify the body pool with tectonics:high (or planet_class values mapping to TectonicClass::Volcanic/Active) and RECORD the pool in this ticket first — the PR #208 eyeball proved GJ380c/GJ820Bc are both tectonics:low via exhaustive two-Global color scans, don''t re-run that search blind — then capture quarter-relief vs district-relief at a true Alpine/MountainPass crop (MorphologyZone 13/14) at the same world center, matched crop, and have Araminta judge the differentiation. Reuse the pr208_driver fixed-center --step protocol (T-1157 harness inventory). Related: T-1160, PR #192, PR #208. + +POOL RECORDED (2026-07-25, read-only survey per this ticket''s own first step — +do not re-run the search blind). + +MAPPING MECHANISM: server/src/atlas/district_profile.rs:296-312 +derive_tectonic_class(): BodyParams::tectonic_activity authored override first +("volcanic"/"active"/"tidally_forced", NO column in current systems.db schema and +no authored overrides in the wiki TOMLs — so today the override path is dead), +else planet_class fallback: "volcanic" → Volcanic; "oceanic"/"ocean_world" → +Active; everything else → Stable. Sanity anchors agree with the PR #208 eyeball: +GJ380c (arid) and GJ820Bc (arid) both → Stable. + +THE FULL POOL (7 bodies): +- Volcanic: GJ0c (Venus, no heightmap), GJ0f-1 (Io, no heightmap), GJ4056b + (heightmap, airless, relief_energy_q=1.0), GJ660Ad (Seongho Prime, heightmap, + thin atmosphere, relief_energy_q=1.0) +- Active: GJ1002b (Caparica, heightmap, island world, standard atmosphere), + GJ103c (Vlieland, heightmap, island world, standard atmosphere), GJ447c + (Marevna, heightmap, ocean world) — all relief_energy_q=0.70 per D-239 §5. + +CAPTURE RECOMMENDATION (lead): for the true Alpine/MountainPass (MorphologyZone +13/14) crop this ticket wants, the Active terrestrial island worlds GJ1002b and +GJ103c are the primary candidates (coastal orogeny, standard climate — closest +analogue to the GJ380c plains/river substitution being replaced). The Volcanic +pair (GJ4056b, GJ660Ad) are alternates with maximum relief energy but +airless/thin atmospheres — shield/lava-field morphology, likely NOT +Alpine-classed; use only if the Active pair fails to produce MorphologyZone +13/14 crops. GJ0c/GJ0f-1 lack terrain_reference and cannot open in the Atlas.', 'Araminta''s PR #192 companion note, kept open by her PR #208 ruling (option b): the Quarter-vs-District relief-differentiation check was accepted for the T-1160 merge on a plains/river substitution (GJ380c world center -17723392,-10532864 — Quarter clearly shows finer higher-frequency texture than District), but plains texture and jagged tectonic relief are different visual regimes and the sharper case still needs its own capture. Task: identify the body pool with tectonics:high (or planet_class values mapping to TectonicClass::Volcanic/Active) and RECORD the pool in this ticket first — the PR #208 eyeball proved GJ380c/GJ820Bc are both tectonics:low via exhaustive two-Global color scans, don''t re-run that search blind — then capture quarter-relief vs district-relief at a true Alpine/MountainPass crop (MorphologyZone 13/14) at the same world center, matched crop, and have Araminta judge the differentiation. Reuse the pr208_driver fixed-center --step protocol (T-1157 harness inventory). Related: T-1160, PR #192, PR #208. + +POOL RECORDED (2026-07-25, read-only survey per this ticket''s own first step — +do not re-run the search blind). + +MAPPING MECHANISM: server/src/atlas/district_profile.rs:296-312 +derive_tectonic_class(): BodyParams::tectonic_activity authored override first +("volcanic"/"active"/"tidally_forced", NO column in current systems.db schema and +no authored overrides in the wiki TOMLs — so today the override path is dead), +else planet_class fallback: "volcanic" → Volcanic; "oceanic"/"ocean_world" → +Active; everything else → Stable. Sanity anchors agree with the PR #208 eyeball: +GJ380c (arid) and GJ820Bc (arid) both → Stable. + +THE FULL POOL (7 bodies): +- Volcanic: GJ0c (Venus, no heightmap), GJ0f-1 (Io, no heightmap), GJ4056b + (heightmap, airless, relief_energy_q=1.0), GJ660Ad (Seongho Prime, heightmap, + thin atmosphere, relief_energy_q=1.0) +- Active: GJ1002b (Caparica, heightmap, island world, standard atmosphere), + GJ103c (Vlieland, heightmap, island world, standard atmosphere), GJ447c + (Marevna, heightmap, ocean world) — all relief_energy_q=0.70 per D-239 §5. + +CAPTURE RECOMMENDATION (lead): for the true Alpine/MountainPass (MorphologyZone +13/14) crop this ticket wants, the Active terrestrial island worlds GJ1002b and +GJ103c are the primary candidates (coastal orogeny, standard climate — closest +analogue to the GJ380c plains/river substitution being replaced). The Volcanic +pair (GJ4056b, GJ660Ad) are alternates with maximum relief energy but +airless/thin atmospheres — shield/lava-field morphology, likely NOT +Alpine-classed; use only if the Active pair fails to produce MorphologyZone +13/14 crops. GJ0c/GJ0f-1 lack terrain_reference and cannot open in the Atlas. + +CAPTURE CENTER PROBED (2026-07-25, server-side scan; scratch bins deleted, tree +verified clean). CHOSEN BODY: GJ1002b (Caparica). GJ103c is a NEGATIVE finding — +a full-body stride-8 scan (2,246,140 districts sampled) found only 4 isolated +MorphologyZone-13/14 cells, none clustering; it is not a viable capture body. +No Volcanic-pair fallback needed. + +PRIMARY CENTER (feed to StepCanvasViewer.jump_to, world metres): + (385024, -598016) [district grid (188, -292) x DISTRICT_M=2048] + 5x5-district neighborhood 25/25 Alpine/MountainPass; +/-40 km box 452/1681 + (26.9%) hits; elev_q 50-100 — reads as a range, not speckle. + +ALTERNATES on GJ1002b: (6973440, 1361920) 23/25 dense, 18.9% box; +(2488320, 129024) 24/25, 7.9%; (35919872, -6862848) 23/25, 16.2%; +(29184000, -4837376) 19/25, 18.6%. + +METHOD (reproducible): derive_district() per district (district_profile.rs:1769) +over cascade_snapshot_for_body(world_seed=42) + run_layer1 TerrainAnalysis — +identical to aliveness_probe''s --render path (aliveness_probe.rs:72-85). Gate +verified at district_profile.rs:594-712: Alpine(14) = slope_q>=40 && elev_q>=75 +&& ocean_fraction_q<20; MountainPass(13) same family, 50<=elev_q<75. Coarse +stride-8 full-body scan -> union-find clustering -> dense stride-1 5x5-window +refine. Both bodies confirmed planet_class=''oceanic'' -> TectonicClass::Active.', NULL, '2026-07-25 20:47:03', '2026-07-25 20:47:03.484', '2026-07-25 20:47:03.484', NULL, '5fe51061ab85360f1ab429e104beec8d', 2) ON CONFLICT(hash) DO NOTHING; diff --git a/.pql/changelog/tickets/2026-07.sql b/.pql/changelog/tickets/2026-07.sql index 322dc2bf3..0b38744c5 100644 --- a/.pql/changelog/tickets/2026-07.sql +++ b/.pql/changelog/tickets/2026-07.sql @@ -4133,3 +4133,113 @@ Harness techniques inventory addition (from the PR #204 / T-1183 restart-persist 5. Fixed-center revisit mode: record a prior run''s actual derived centers and re-request them literally on the comparison run, bypassing cursor-anchored re-derivation — required when run 2 must land on run 1''s exact cache keys, not merely repeat the gesture. Harness-discipline gap found 2026-07-25 (Jeroen spotted a live orphan): agent-side kill-on-completion does not cover an agent CRASHING mid-capture (API error killed a session between server spawn and its own cleanup step — the server ran on unnoticed for ~25 min on the shared machine). Inventory addition: (6) the LEAD runs an explicit orphan sweep (ps for godot4 + settled-reach-server) at every cycle checkpoint — commit, merge, and after any agent dies abnormally — not only inside agent protocols; pr-process step 1a''s >5-min gdUnit grep does not match live-capture servers, so the sweep needs the server binary name too.', 'done', 'medium', 'hoshe', 'client', NULL, '2026-07-22 09:42:47.197', '2026-07-25 20:38:51.996', NULL, '06065a380c0f7dfe6504ba5a8f7e9ffa', 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 ('06FSM3MQ5GFSPKKFJF6GGZN8CM', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Alpine relief capture — Quarter-vs-District differentiation on a tectonics:high body', 'Araminta''s PR #192 companion note, kept open by her PR #208 ruling (option b): the Quarter-vs-District relief-differentiation check was accepted for the T-1160 merge on a plains/river substitution (GJ380c world center -17723392,-10532864 — Quarter clearly shows finer higher-frequency texture than District), but plains texture and jagged tectonic relief are different visual regimes and the sharper case still needs its own capture. Task: identify the body pool with tectonics:high (or planet_class values mapping to TectonicClass::Volcanic/Active) and RECORD the pool in this ticket first — the PR #208 eyeball proved GJ380c/GJ820Bc are both tectonics:low via exhaustive two-Global color scans, don''t re-run that search blind — then capture quarter-relief vs district-relief at a true Alpine/MountainPass crop (MorphologyZone 13/14) at the same world center, matched crop, and have Araminta judge the differentiation. Reuse the pr208_driver fixed-center --step protocol (T-1157 harness inventory). Related: T-1160, PR #192, PR #208. + +POOL RECORDED (2026-07-25, read-only survey per this ticket''s own first step — +do not re-run the search blind). + +MAPPING MECHANISM: server/src/atlas/district_profile.rs:296-312 +derive_tectonic_class(): BodyParams::tectonic_activity authored override first +("volcanic"/"active"/"tidally_forced", NO column in current systems.db schema and +no authored overrides in the wiki TOMLs — so today the override path is dead), +else planet_class fallback: "volcanic" → Volcanic; "oceanic"/"ocean_world" → +Active; everything else → Stable. Sanity anchors agree with the PR #208 eyeball: +GJ380c (arid) and GJ820Bc (arid) both → Stable. + +THE FULL POOL (7 bodies): +- Volcanic: GJ0c (Venus, no heightmap), GJ0f-1 (Io, no heightmap), GJ4056b + (heightmap, airless, relief_energy_q=1.0), GJ660Ad (Seongho Prime, heightmap, + thin atmosphere, relief_energy_q=1.0) +- Active: GJ1002b (Caparica, heightmap, island world, standard atmosphere), + GJ103c (Vlieland, heightmap, island world, standard atmosphere), GJ447c + (Marevna, heightmap, ocean world) — all relief_energy_q=0.70 per D-239 §5. + +CAPTURE RECOMMENDATION (lead): for the true Alpine/MountainPass (MorphologyZone +13/14) crop this ticket wants, the Active terrestrial island worlds GJ1002b and +GJ103c are the primary candidates (coastal orogeny, standard climate — closest +analogue to the GJ380c plains/river substitution being replaced). The Volcanic +pair (GJ4056b, GJ660Ad) are alternates with maximum relief energy but +airless/thin atmospheres — shield/lava-field morphology, likely NOT +Alpine-classed; use only if the Active pair fails to produce MorphologyZone +13/14 crops. GJ0c/GJ0f-1 lack terrain_reference and cannot open in the Atlas.', 'in_progress', 'low', NULL, 'client', NULL, '2026-07-25 16:14:35.308', '2026-07-25 20:42:13.772', NULL, 'ba6b11721950646bce2301ad7cfce186', 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 ('06FSM3MQ5GFSPKKFJF6GGZN8CM', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Alpine relief capture — Quarter-vs-District differentiation on a tectonics:high body', 'Araminta''s PR #192 companion note, kept open by her PR #208 ruling (option b): the Quarter-vs-District relief-differentiation check was accepted for the T-1160 merge on a plains/river substitution (GJ380c world center -17723392,-10532864 — Quarter clearly shows finer higher-frequency texture than District), but plains texture and jagged tectonic relief are different visual regimes and the sharper case still needs its own capture. Task: identify the body pool with tectonics:high (or planet_class values mapping to TectonicClass::Volcanic/Active) and RECORD the pool in this ticket first — the PR #208 eyeball proved GJ380c/GJ820Bc are both tectonics:low via exhaustive two-Global color scans, don''t re-run that search blind — then capture quarter-relief vs district-relief at a true Alpine/MountainPass crop (MorphologyZone 13/14) at the same world center, matched crop, and have Araminta judge the differentiation. Reuse the pr208_driver fixed-center --step protocol (T-1157 harness inventory). Related: T-1160, PR #192, PR #208. + +POOL RECORDED (2026-07-25, read-only survey per this ticket''s own first step — +do not re-run the search blind). + +MAPPING MECHANISM: server/src/atlas/district_profile.rs:296-312 +derive_tectonic_class(): BodyParams::tectonic_activity authored override first +("volcanic"/"active"/"tidally_forced", NO column in current systems.db schema and +no authored overrides in the wiki TOMLs — so today the override path is dead), +else planet_class fallback: "volcanic" → Volcanic; "oceanic"/"ocean_world" → +Active; everything else → Stable. Sanity anchors agree with the PR #208 eyeball: +GJ380c (arid) and GJ820Bc (arid) both → Stable. + +THE FULL POOL (7 bodies): +- Volcanic: GJ0c (Venus, no heightmap), GJ0f-1 (Io, no heightmap), GJ4056b + (heightmap, airless, relief_energy_q=1.0), GJ660Ad (Seongho Prime, heightmap, + thin atmosphere, relief_energy_q=1.0) +- Active: GJ1002b (Caparica, heightmap, island world, standard atmosphere), + GJ103c (Vlieland, heightmap, island world, standard atmosphere), GJ447c + (Marevna, heightmap, ocean world) — all relief_energy_q=0.70 per D-239 §5. + +CAPTURE RECOMMENDATION (lead): for the true Alpine/MountainPass (MorphologyZone +13/14) crop this ticket wants, the Active terrestrial island worlds GJ1002b and +GJ103c are the primary candidates (coastal orogeny, standard climate — closest +analogue to the GJ380c plains/river substitution being replaced). The Volcanic +pair (GJ4056b, GJ660Ad) are alternates with maximum relief energy but +airless/thin atmospheres — shield/lava-field morphology, likely NOT +Alpine-classed; use only if the Active pair fails to produce MorphologyZone +13/14 crops. GJ0c/GJ0f-1 lack terrain_reference and cannot open in the Atlas.', 'in_progress', 'low', 'hoshe', 'client', NULL, '2026-07-25 16:14:35.308', '2026-07-25 20:42:14.404', NULL, '5b98276c5a6ed1e2e771182e54569617', 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 ('06FSM3MQ5GFSPKKFJF6GGZN8CM', 'task', '06FBPPMZNNEV052DBYYY3A897C', 'Alpine relief capture — Quarter-vs-District differentiation on a tectonics:high body', 'Araminta''s PR #192 companion note, kept open by her PR #208 ruling (option b): the Quarter-vs-District relief-differentiation check was accepted for the T-1160 merge on a plains/river substitution (GJ380c world center -17723392,-10532864 — Quarter clearly shows finer higher-frequency texture than District), but plains texture and jagged tectonic relief are different visual regimes and the sharper case still needs its own capture. Task: identify the body pool with tectonics:high (or planet_class values mapping to TectonicClass::Volcanic/Active) and RECORD the pool in this ticket first — the PR #208 eyeball proved GJ380c/GJ820Bc are both tectonics:low via exhaustive two-Global color scans, don''t re-run that search blind — then capture quarter-relief vs district-relief at a true Alpine/MountainPass crop (MorphologyZone 13/14) at the same world center, matched crop, and have Araminta judge the differentiation. Reuse the pr208_driver fixed-center --step protocol (T-1157 harness inventory). Related: T-1160, PR #192, PR #208. + +POOL RECORDED (2026-07-25, read-only survey per this ticket''s own first step — +do not re-run the search blind). + +MAPPING MECHANISM: server/src/atlas/district_profile.rs:296-312 +derive_tectonic_class(): BodyParams::tectonic_activity authored override first +("volcanic"/"active"/"tidally_forced", NO column in current systems.db schema and +no authored overrides in the wiki TOMLs — so today the override path is dead), +else planet_class fallback: "volcanic" → Volcanic; "oceanic"/"ocean_world" → +Active; everything else → Stable. Sanity anchors agree with the PR #208 eyeball: +GJ380c (arid) and GJ820Bc (arid) both → Stable. + +THE FULL POOL (7 bodies): +- Volcanic: GJ0c (Venus, no heightmap), GJ0f-1 (Io, no heightmap), GJ4056b + (heightmap, airless, relief_energy_q=1.0), GJ660Ad (Seongho Prime, heightmap, + thin atmosphere, relief_energy_q=1.0) +- Active: GJ1002b (Caparica, heightmap, island world, standard atmosphere), + GJ103c (Vlieland, heightmap, island world, standard atmosphere), GJ447c + (Marevna, heightmap, ocean world) — all relief_energy_q=0.70 per D-239 §5. + +CAPTURE RECOMMENDATION (lead): for the true Alpine/MountainPass (MorphologyZone +13/14) crop this ticket wants, the Active terrestrial island worlds GJ1002b and +GJ103c are the primary candidates (coastal orogeny, standard climate — closest +analogue to the GJ380c plains/river substitution being replaced). The Volcanic +pair (GJ4056b, GJ660Ad) are alternates with maximum relief energy but +airless/thin atmospheres — shield/lava-field morphology, likely NOT +Alpine-classed; use only if the Active pair fails to produce MorphologyZone +13/14 crops. GJ0c/GJ0f-1 lack terrain_reference and cannot open in the Atlas. + +CAPTURE CENTER PROBED (2026-07-25, server-side scan; scratch bins deleted, tree +verified clean). CHOSEN BODY: GJ1002b (Caparica). GJ103c is a NEGATIVE finding — +a full-body stride-8 scan (2,246,140 districts sampled) found only 4 isolated +MorphologyZone-13/14 cells, none clustering; it is not a viable capture body. +No Volcanic-pair fallback needed. + +PRIMARY CENTER (feed to StepCanvasViewer.jump_to, world metres): + (385024, -598016) [district grid (188, -292) x DISTRICT_M=2048] + 5x5-district neighborhood 25/25 Alpine/MountainPass; +/-40 km box 452/1681 + (26.9%) hits; elev_q 50-100 — reads as a range, not speckle. + +ALTERNATES on GJ1002b: (6973440, 1361920) 23/25 dense, 18.9% box; +(2488320, 129024) 24/25, 7.9%; (35919872, -6862848) 23/25, 16.2%; +(29184000, -4837376) 19/25, 18.6%. + +METHOD (reproducible): derive_district() per district (district_profile.rs:1769) +over cascade_snapshot_for_body(world_seed=42) + run_layer1 TerrainAnalysis — +identical to aliveness_probe''s --render path (aliveness_probe.rs:72-85). Gate +verified at district_profile.rs:594-712: Alpine(14) = slope_q>=40 && elev_q>=75 +&& ocean_fraction_q<20; MountainPass(13) same family, 50<=elev_q<75. Coarse +stride-8 full-body scan -> union-find clustering -> dense stride-1 5x5-window +refine. Both bodies confirmed planet_class=''oceanic'' -> TectonicClass::Active.', 'in_progress', 'low', 'hoshe', 'client', NULL, '2026-07-25 16:14:35.308', '2026-07-25 20:47:03.484', NULL, 'fdaff837803112c5b7c454fea3c06cc6', 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);