chore(meta): T-1025, T-1027 -> review (PR for climate + morphology)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -165,3 +165,7 @@ INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by,
|
||||
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-1032', 'status', 'backlog', 'in_progress', NULL, '2026-06-08 09:29:23', '2026-06-08 09:29:23', '2026-06-08 09:29:23', NULL, 'ba27b2c47a9ae514abac967affca8681', 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-1032', 'status', 'in_progress', 'review', NULL, '2026-06-08 10:38:14', '2026-06-08 10:38:14', '2026-06-08 10:38:14', NULL, '89b31b1c93bf981ce2da078c144fab21', 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-1032', 'status', 'review', 'done', NULL, '2026-06-08 10:53:48', '2026-06-08 10:53:48', '2026-06-08 10:53:48', NULL, 'a1d55c48fbd64c976d167e9241f0b061', 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-1025', 'status', 'backlog', 'in_progress', NULL, '2026-06-08 10:54:34', '2026-06-08 10:54:34', '2026-06-08 10:54:34', NULL, 'd16154eced8667706ae191c333a4467d', 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-1027', 'status', 'backlog', 'in_progress', NULL, '2026-06-08 10:54:34', '2026-06-08 10:54:34', '2026-06-08 10:54:34', NULL, 'e16d577645ca2733965ccc938e262faa', 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-1025', 'status', 'in_progress', 'review', NULL, '2026-06-08 11:14:10', '2026-06-08 11:14:10', '2026-06-08 11:14:10', NULL, 'a3468257427c869e50484eb6cca3cfba', 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-1027', 'status', 'in_progress', 'review', NULL, '2026-06-08 11:14:10', '2026-06-08 11:14:10', '2026-06-08 11:14:10', NULL, 'c769b10f824f514e1e09153c06cd5367', 1) ON CONFLICT(hash) DO NOTHING;
|
||||
|
||||
@@ -533,3 +533,7 @@ hybrid import/derive strategy above. Fold into the implementation PR.', 'done',
|
||||
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-1032', 'task', 'T-974', 'Dispatch RegionProfile layer in production — read BodyParams from DB at AnalyzeBody enqueue', 'The D-239 carrier foundation (T-1023/1024/1026, PR #158) built RegionProfile + climate derivation and wired the cascade to run the RegionProfile layer when GenWorkItem::AnalyzeBody carries body_params. But every production enqueue site currently passes body_params: None (see layer_proxy.rs TODO), so the region/climate layer only runs in unit tests, never in production. Wire the DB read: at AnalyzeBody enqueue, load each body''s physical params (axial_tilt_deg, spectral_class, star_type, hydrosphere, atmosphere, orbital_period_days, lat/elevation) from the bodies/star_systems tables, build BodyParams, and pass Some(Box::new(..)). Then BodyWorldState.regions populates in the D-206 background pass as T-1023 intended. Mirrors the T-1022 dormant-until-dispatched pattern.', 'in_progress', 'high', NULL, 'server', 'D-239', '2026-06-08 08:29:23', '2026-06-08 09:29:23', NULL, '1c18da7efb520ed4950f95e2f39d4f84', 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-1032', 'task', 'T-974', 'Dispatch RegionProfile layer in production — read BodyParams from DB at AnalyzeBody enqueue', 'The D-239 carrier foundation (T-1023/1024/1026, PR #158) built RegionProfile + climate derivation and wired the cascade to run the RegionProfile layer when GenWorkItem::AnalyzeBody carries body_params. But every production enqueue site currently passes body_params: None (see layer_proxy.rs TODO), so the region/climate layer only runs in unit tests, never in production. Wire the DB read: at AnalyzeBody enqueue, load each body''s physical params (axial_tilt_deg, spectral_class, star_type, hydrosphere, atmosphere, orbital_period_days, lat/elevation) from the bodies/star_systems tables, build BodyParams, and pass Some(Box::new(..)). Then BodyWorldState.regions populates in the D-206 background pass as T-1023 intended. Mirrors the T-1022 dormant-until-dispatched pattern.', 'review', 'high', NULL, 'server', 'D-239', '2026-06-08 08:29:23', '2026-06-08 10:38:14', NULL, '2d57feb5a00098399acd52656df672e5', 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-1032', 'task', 'T-974', 'Dispatch RegionProfile layer in production — read BodyParams from DB at AnalyzeBody enqueue', 'The D-239 carrier foundation (T-1023/1024/1026, PR #158) built RegionProfile + climate derivation and wired the cascade to run the RegionProfile layer when GenWorkItem::AnalyzeBody carries body_params. But every production enqueue site currently passes body_params: None (see layer_proxy.rs TODO), so the region/climate layer only runs in unit tests, never in production. Wire the DB read: at AnalyzeBody enqueue, load each body''s physical params (axial_tilt_deg, spectral_class, star_type, hydrosphere, atmosphere, orbital_period_days, lat/elevation) from the bodies/star_systems tables, build BodyParams, and pass Some(Box::new(..)). Then BodyWorldState.regions populates in the D-206 background pass as T-1023 intended. Mirrors the T-1022 dormant-until-dispatched pattern.', 'done', 'high', NULL, 'server', 'D-239', '2026-06-08 08:29:23', '2026-06-08 10:53:48', NULL, '61085ec471e1b44df65ef9b1f162819b', 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-1025', 'task', 'T-974', 'Climate-derived fields — precipitation, GlaciationGrade, vegetation/treeline', 'D-239 section 2. Everything climatic derives from temperature(+moisture): precipitation_class = f(temp,moisture); GlaciationGrade from long-term/seasonal-minimum temperature (consumed by morphology gating); vegetation/treeline = temperature bands x elevation (Forest->Scrub->Barren no-skip, riparian 1-3 tile band). All derived, none authored. Blocked by the temperature/moisture primitives.', 'in_progress', 'high', NULL, 'server', 'D-239', '2026-06-07 10:33:47', '2026-06-08 10:54:34', NULL, '4b945feca7689545b1cbae7ea15ed627', 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-1027', 'task', 'T-974', 'Morphology classifier — 17-zone frozen vocab + 8-family gated selector + seam matrix', 'D-239 sections 5,6,7. Frozen 17-zone MorphologyZone Rust enum (the canonical freeze point; add/rename/remove needs a D-record amendment; classifier tuning stays free). 8-family gated decision tree over integer RegionProfile inputs: LavaField,FjordWall,CliffCoast,BraidedDelta,DuneStrand,IncisedGorge,MeanderReach,AlluvialPlain(fallback). Hard gates pre-selection in tree order: fjord>=GlaciationGrade2, LavaField=tectonic_class Volcanic, lithology bounds slope/form. Build-time compatibility-matrix invariant test blocking incompatible adjacencies (e.g. Meander<->Volcanic) — never a runtime override. Four zones (tidal flat, estuarine, alpine, wetland) are derived sub-classifications, not families. Blocked by RegionProfile + climate-derived GlaciationGrade.', 'in_progress', 'high', NULL, 'server', 'D-239', '2026-06-07 10:33:47', '2026-06-08 10:54:34', NULL, '5f9c31bb358e14e2d1e0f3ee5d2f99cd', 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-1025', 'task', 'T-974', 'Climate-derived fields — precipitation, GlaciationGrade, vegetation/treeline', 'D-239 section 2. Everything climatic derives from temperature(+moisture): precipitation_class = f(temp,moisture); GlaciationGrade from long-term/seasonal-minimum temperature (consumed by morphology gating); vegetation/treeline = temperature bands x elevation (Forest->Scrub->Barren no-skip, riparian 1-3 tile band). All derived, none authored. Blocked by the temperature/moisture primitives.', 'review', 'high', NULL, 'server', 'D-239', '2026-06-07 10:33:47', '2026-06-08 11:14:10', NULL, '10684a3f64f7d89b09cbc44b29d3b3fb', 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-1027', 'task', 'T-974', 'Morphology classifier — 17-zone frozen vocab + 8-family gated selector + seam matrix', 'D-239 sections 5,6,7. Frozen 17-zone MorphologyZone Rust enum (the canonical freeze point; add/rename/remove needs a D-record amendment; classifier tuning stays free). 8-family gated decision tree over integer RegionProfile inputs: LavaField,FjordWall,CliffCoast,BraidedDelta,DuneStrand,IncisedGorge,MeanderReach,AlluvialPlain(fallback). Hard gates pre-selection in tree order: fjord>=GlaciationGrade2, LavaField=tectonic_class Volcanic, lithology bounds slope/form. Build-time compatibility-matrix invariant test blocking incompatible adjacencies (e.g. Meander<->Volcanic) — never a runtime override. Four zones (tidal flat, estuarine, alpine, wetland) are derived sub-classifications, not families. Blocked by RegionProfile + climate-derived GlaciationGrade.', 'review', 'high', NULL, 'server', 'D-239', '2026-06-07 10:33:47', '2026-06-08 11:14:10', NULL, '81238c87ca400134de718b32ff5c01ed', 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);
|
||||
|
||||
Reference in New Issue
Block a user