diff --git a/.pql/changelog/ticket_history/2026-06.sql b/.pql/changelog/ticket_history/2026-06.sql index b4f2af5a5..6047b881f 100644 --- a/.pql/changelog/ticket_history/2026-06.sql +++ b/.pql/changelog/ticket_history/2026-06.sql @@ -38,3 +38,15 @@ Refinement (2026-05-26): READY behind 1006/957. Two-layer streets (D-234 refined Largely SUBSUMED by #957 (2026-06-06): the footprint subdivision (BSP + D-233 coverage), the street network (typed AccessPoint/CorridorSpine/ChunkLayout, morphology-gated arterials per D-234a, ±45° local lattice), and the waterfront rule (D-234b) all landed in skeleton_gen.rs as one coherent walkable-quarter deliverable. REMAINING scope: the per-block-EDGE open-water adjacency refinement — applying pier geometry to the exact block edges that touch water — which needs Layer-1 terrain water-adjacency threaded to the quarter via the Layer-3 placement -> Layer-4 GenerateSkeleton dispatch (city_context_reader still stubs founding_orientation=Cardinal). Blocked on that dispatch; the waterfront rule is implemented and activates when real per-settlement orientation flows. Closed via Si vet (2026-06-07): all four D-234 geometry deliverables (morphology gating, corridor/access-point net, BSP footprint subdivision, waterfront rule) landed + tested under T-957. The genuine residual — Layer-3→Layer-4 GenerateSkeleton dispatch (founding_orientation wiring) — is a distinct cross-layer concern, split into its own ticket.', NULL, '2026-06-07 08:10:17', '2026-06-07 08:10:17', '2026-06-07 08:10:17', NULL, '0bf05b1329e6529cd4b29276ddf86c16', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-983', 'status', 'backlog', 'done', NULL, '2026-06-07 08:32:25', '2026-06-07 08:32:25', '2026-06-07 08:32:25', NULL, '4d8bacc25d5ae51e77164ebbafbfaee3', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-975', 'status', 'backlog', 'done', NULL, '2026-06-07 08:32:25', '2026-06-07 08:32:25', '2026-06-07 08:32:25', NULL, '95c3cd651cd56c5eac611ce6f8ded89b', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-958', 'status', 'backlog', 'done', NULL, '2026-06-07 08:32:25', '2026-06-07 08:32:25', '2026-06-07 08:32:25', NULL, '99ee13f37e065a1034f7f42bff953b9e', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-958', 'description', 'Apply BlockIrregularity derived from founding_age (D-216) to the block grid geometry — older settlements get more irregular streets. Orthogonal to density. block_irregularity.rs exists.', 'Apply BlockIrregularity derived from founding_age (D-216) to the block grid geometry — older settlements get more irregular streets. Orthogonal to density. block_irregularity.rs exists. + +Closed via Si sweep (2026-06-07): block_irregularity() implemented + 5 tests in block_irregularity.rs, wired at skeleton_gen.rs:68/248 under T-957. Drift.', NULL, '2026-06-07 08:32:25', '2026-06-07 08:32:25', '2026-06-07 08:32:25', NULL, '25e3ea95542b5bf5d9e2b48675aaf961', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-983', 'description', 'D-199 amendment: add the four new context fields feeding Layer-4 fill. morphology_zone from the Layer-1 cascade; trait_selection (Arc) drawn via the trait-template catalog (977); the two commodity signals from 954 lookup.', 'D-199 amendment: add the four new context fields feeding Layer-4 fill. morphology_zone from the Layer-1 cascade; trait_selection (Arc) drawn via the trait-template catalog (977); the two commodity signals from 954 lookup. + +Closed via Si sweep (2026-06-07): all four fields (morphology_zone, trait_selection, dominant_bulk_class, dominant_production_ubiquity) present on CityGenerationContext (generator.rs:1065-1073), shipped under T-954/PR #145. Drift.', NULL, '2026-06-07 08:32:25', '2026-06-07 08:32:25', '2026-06-07 08:32:25', NULL, '4ecb84619bf13cbfe3db645e68dcab68', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-975', 'description', 'Concrete current gap surfaced by Tyre in the atlas-derivation workshop: D-223 stripped the topographic polygons from markers.json, but D-209 CoastalAccess/LakeShore attractor extraction still references oceans[]/lake polygons that no longer exist. The ocean/lake mask must instead be derived from the heightmap sea-level threshold (or a baked water-bodies layer). Unlike the rest of the epic (which lands with future cascade layers), this affects attractor extraction today.', 'Concrete current gap surfaced by Tyre in the atlas-derivation workshop: D-223 stripped the topographic polygons from markers.json, but D-209 CoastalAccess/LakeShore attractor extraction still references oceans[]/lake polygons that no longer exist. The ocean/lake mask must instead be derived from the heightmap sea-level threshold (or a baked water-bodies layer). Unlike the rest of the epic (which lands with future cascade layers), this affects attractor extraction today. + +Closed via Si sweep (2026-06-07): ocean_mask/lake_mask derived from heightmap sea-level in features.rs:10-14, consumed by CoastalAccess/LakeShore (426/452). D-209/D-223 reconciliation done. Drift.', NULL, '2026-06-07 08:32:25', '2026-06-07 08:32:25', '2026-06-07 08:32:25', NULL, '39512880e8427a80682ae23de221e4cd', 1) ON CONFLICT(hash) DO NOTHING; diff --git a/.pql/changelog/tickets/2026-06.sql b/.pql/changelog/tickets/2026-06.sql index 8414f50d0..66c64e5dd 100644 --- a/.pql/changelog/tickets/2026-06.sql +++ b/.pql/changelog/tickets/2026-06.sql @@ -205,3 +205,15 @@ INSERT INTO tickets (id, type, parent_id, title, description, status, priority, Scope: on GenCompletion::BodyAnalyzed, iterate state.placements and submit one GenerateSkeleton work item per placed settlement, building CityGenerationContext from each CityPlacement (context_from_read_set, city_context_reader.rs:~462) and overriding founding_orientation with the attractor-matched CityPlacement.founding_orientation (already computed in attractor_matching.rs:~535, carried on CityPlacement:~63). Call sites: plugin.rs BodyAnalyzed handler (~84), gen_queue.rs GenerateSkeleton arm, city_context_reader.rs (stub at 484), attractor_matching.rs. Q-109 (multi-source/station dispatch) is adjacent but non-blocking for the planetary path. Surfaced by Si vetting (2026-06-07): T-976/989/990/991 geometry is done+tested but dormant without this dispatch.', 'backlog', 'high', NULL, 'server', 'D-234', '2026-06-07 08:10:17', '2026-06-07 08:10:17', NULL, '28ff6766a8a1d9c86c0d7e7a9e8801fb', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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 (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-983', 'task', 'T-954', 'CityGenerationContext extension (morphology_zone, trait_selection, dominant_bulk_class, dominant_production_ubiquity)', 'D-199 amendment: add the four new context fields feeding Layer-4 fill. morphology_zone from the Layer-1 cascade; trait_selection (Arc) drawn via the trait-template catalog (977); the two commodity signals from 954 lookup.', 'done', 'medium', NULL, 'server', 'D-199', '2026-05-25 19:11:07', '2026-06-07 08:32:25', NULL, '121db532a3e412de4acd85592987cb55', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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 (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-958', 'story', 'T-750', 'Layer 4 — block irregularity from founding age', 'Apply BlockIrregularity derived from founding_age (D-216) to the block grid geometry — older settlements get more irregular streets. Orthogonal to density. block_irregularity.rs exists.', 'done', 'medium', NULL, 'server', 'D-216', '2026-05-22 17:42:34', '2026-06-07 08:32:25', NULL, '95b9abbbd9f7ce953eb03769c7cd2e54', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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 (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-975', 'story', 'T-974', 'Own the ocean/lake water mask', 'Concrete current gap surfaced by Tyre in the atlas-derivation workshop: D-223 stripped the topographic polygons from markers.json, but D-209 CoastalAccess/LakeShore attractor extraction still references oceans[]/lake polygons that no longer exist. The ocean/lake mask must instead be derived from the heightmap sea-level threshold (or a baked water-bodies layer). Unlike the rest of the epic (which lands with future cascade layers), this affects attractor extraction today.', 'done', 'medium', NULL, 'server', 'Q-101', '2026-05-25 10:52:23', '2026-06-07 08:32:25', NULL, 'f0b2da2e9bf3b4192548189dcdb84407', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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 (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-958', 'story', 'T-750', 'Layer 4 — block irregularity from founding age', 'Apply BlockIrregularity derived from founding_age (D-216) to the block grid geometry — older settlements get more irregular streets. Orthogonal to density. block_irregularity.rs exists. + +Closed via Si sweep (2026-06-07): block_irregularity() implemented + 5 tests in block_irregularity.rs, wired at skeleton_gen.rs:68/248 under T-957. Drift.', 'done', 'medium', NULL, 'server', 'D-216', '2026-05-22 17:42:34', '2026-06-07 08:32:25', NULL, '737822569304a81d802df0785120e8a2', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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 (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-983', 'task', 'T-954', 'CityGenerationContext extension (morphology_zone, trait_selection, dominant_bulk_class, dominant_production_ubiquity)', 'D-199 amendment: add the four new context fields feeding Layer-4 fill. morphology_zone from the Layer-1 cascade; trait_selection (Arc) drawn via the trait-template catalog (977); the two commodity signals from 954 lookup. + +Closed via Si sweep (2026-06-07): all four fields (morphology_zone, trait_selection, dominant_bulk_class, dominant_production_ubiquity) present on CityGenerationContext (generator.rs:1065-1073), shipped under T-954/PR #145. Drift.', 'done', 'medium', NULL, 'server', 'D-199', '2026-05-25 19:11:07', '2026-06-07 08:32:25', NULL, 'c8684670c979ba8f6f46ed6d38e61fe1', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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 (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-975', 'story', 'T-974', 'Own the ocean/lake water mask', 'Concrete current gap surfaced by Tyre in the atlas-derivation workshop: D-223 stripped the topographic polygons from markers.json, but D-209 CoastalAccess/LakeShore attractor extraction still references oceans[]/lake polygons that no longer exist. The ocean/lake mask must instead be derived from the heightmap sea-level threshold (or a baked water-bodies layer). Unlike the rest of the epic (which lands with future cascade layers), this affects attractor extraction today. + +Closed via Si sweep (2026-06-07): ocean_mask/lake_mask derived from heightmap sea-level in features.rs:10-14, consumed by CoastalAccess/LakeShore (426/452). D-209/D-223 reconciliation done. Drift.', 'done', 'medium', NULL, 'server', 'Q-101', '2026-05-25 10:52:23', '2026-06-07 08:32:25', NULL, 'f0e14edd2b89ca2ef3491ef55c6b2625', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_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);