Commit Graph
60 Commits
Author SHA1 Message Date
jpmschweitzerandClaude Opus 4.8 5f85dc55d5 feat(simulation): FillChunk shell derivation — Void/Wall/FloorSlab/Roof from cached tags (T-987)
Implement the D-230 on-demand derive phase (data-production half). New
atlas/shell.rs derives a sparse building shell for one 64 m chunk from the
plan-phase BuildingPropertyTags: rectangle-containment (footprint ∩ chunk) ×
z-range (per-floor voxel bands from FloorExtent), in a quarter-ground z frame
(D-110). Walls on the footprint perimeter, FloorSlab on interior floor bases,
Roof above the top floor; interior air is Void and never stored.

- gen_queue.rs: GenWorkItem::FillChunk carries pre-resolved block_tags +
  block_pos + sub_chunk (run_work_item stays cache-free, mirroring
  GenerateSkeleton); GenCompletion::ChunkFilled carries Box<FilledChunk>; the
  arm calls shell::fill_chunk; pure build_fill_chunk_item(&QuarterWorldState,..)
  added.
- plugin.rs: ChunkFilled handler accepts the shell (trace-only — the Phase-5
  rendering consumer and the on-demand streaming dispatch trigger are deferred;
  do not build on legacy chunk_streaming.rs before Phase 5, gated by T-962).

Tests: determinism, sparsity-vs-dense-volume, wall/floor/roof correctness,
basement z-origin, sub-chunk clipping, full submit→drain→ChunkFilled round-trip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 23:34:46 +02:00
jpmschweitzerandClaude Opus 4.8 85311f716c chore(meta): T-1044/T-1047 -> done (PR #170 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 10:14:43 +02:00
jpmschweitzerandClaude Opus 4.8 efa1dadfea Merge PR #170: cache TerrainAnalysis + basin_direction from D8 thalweg (T-1044, T-1047)
Reviewed by Hoshe + Tyre; Tyre approved, Hoshe's 2 findings addressed (test coverage + comment).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 10:14:29 +02:00
jpmschweitzerandClaude Opus 4.8 7d45d78674 chore(meta): T-1044/T-1047 -> review (PR #170)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 09:48:21 +02:00
jpmschweitzerandClaude Opus 4.8 e3327a0d01 chore(meta): hold asset track — T-1049/T-1050 -> backlog (needs sprite->3D re-scope)
Separated the asset pipeline from the cascade work. T-1049/T-1050 assume a sprite-centric
catalog; direction is 3D objects (Trellis .glb) in-world with textures as the only
flattened content. Held for re-scope. Cascade track (T-1044/T-1047) continues.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 16:03:49 +02:00
jpmschweitzerandClaude Opus 4.8 711ac65d20 chore(meta): activate Phase-4 batch — T-1044/T-1047 (cascade) + T-1049/T-1050 (assets)
Two parallel tracks with refinement appends: T-1044+T-1047 compose on the run_layer1
pass (TerrainAnalysis cache + per-district D8 basin_direction); T-1049+T-1050 are the
asset-pipeline track (per-class story breakdown + catalog/manifest/conventions + glb-gen
path). Staleness corrected (T-1047: basin_direction threads through DistrictProfile, not
the post-T-1077 RegionProfile).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 15:42:26 +02:00
jpmschweitzerandClaude Opus 4.8 718a97cda6 chore(meta): T-1039/T-1043 -> done (PR #168 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 13:05:04 +02:00
jpmschweitzerandClaude Opus 4.8 a3c3929c4e chore(meta): activate T-1039/T-1043 + board cleanup (T-960->backlog, T-1038->done)
T-1039/T-1043 in_progress + refinement appends (the locked arrangement_pattern
re-derive + RoadGraph-source decisions). Board hygiene: T-960 (Atlas map viewer)
parked since 2026-06-07 -> backlog; T-1038 (Layer 2 road graph) full scope landed
on main (c0d4ac89d) and consumed by T-1043 -> done.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:42:35 +02:00
jpmschweitzerandClaude Opus 4.8 f98297d136 chore(meta): T-1042/T-1078 -> done (PR #167 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 17:42:32 +02:00
jpmschweitzerandClaude Opus 4.8 0bcc57d213 chore(meta): T-1042/T-1078 -> review (Batch A code-complete)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 14:06:03 +02:00
jpmschweitzerandClaude Opus 4.8 fcc9fcc4ec chore(meta): activate Batch A — T-1042/T-1078 in_progress, T-1046 done
/whats-next batch activation for the D-243 region-tier finish.
Refinement briefs (Si pass) appended to T-1042 and T-1078 reconciling
their 2026-06-12 scope against the post-T-1077 tree. T-1046 (Region→
Chunk→Voxel wiring) flipped to done — already committed in cfd5e18d0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 14:05:25 +02:00
jpmschweitzerandClaude Opus 4.8 d03b4d1e09 feat(simulation): serve the coarse district/morphology grid through the Atlas proxy (T-1046)
Server half of wiring the derived tier into production. The D-225 proxy
(AtlasLayerResponse) carried only Layer1Output, so the Atlas could not show the
DistrictProfile tier that the cascade derives. Adds DistrictGridLayer (cols/rows
+ row-major MorphologyZone discriminants + elev_q for relief shading) and
build_district_grid(), populated on a cache hit. Because the response is
rmp_serde msgpack end-to-end, the new field reaches the client automatically.

This is the planetary-scale coarse grid (the Atlas map view); the on-demand 2km
derive_district (T-1077) is for in-world Phase 5, not the map. MorphologyZone
gains Copy (fieldless repr(u8) enum; additive).

Next: client decode (protocol.gd) + the D-226 generation overlay in the Atlas
viewer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 12:30:47 +02:00
jpmschweitzerandClaude Opus 4.8 d1fa785678 chore(meta): T-1077 -> review (D-243 re-scale code-complete)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:49:40 +02:00
jpmschweitzerandClaude Opus 4.8 38054d4b12 feat(simulation): canonical spatial scale ladder + body_radius_km (T-1077)
First phase of the D-243 re-scale. Adds server/src/atlas/scale.rs as the
single source of truth for the metric containment ladder (voxel 1m -> chunk
64m -> block 128m -> quarter 512m -> district 2048m -> region 204.8km), the
fixed integer addressing (ChunkPos -> DistrictPos -> RegionPos), and the
elastic seam regions_per_equator(R). Compile-time const asserts enforce the
nesting so the rungs cannot silently drift again — the structural fix for the
Q-110 failure mode (three files, three different region sizes).

Wires body_radius_km (D-204) through BodyParams + the reader: the single
body-specific input to the elastic seam.

No behavior change — foundation only. The rename/re-scale of the carrier
(RegionProfile -> DistrictProfile) and on-demand district derivation follow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 22:04:50 +02:00
jpmschweitzerandClaude Opus 4.8 e39ba89064 docs(governance): D-243 spatial scale ladder — resolve Q-110, Region→Province
Resolves Q-110 (region/chunk physical-scale anchoring), which had three
contradictory metres-per-scale assumptions in the cascade and no record
fixing metres-per-heightmap-pixel.

D-243 establishes a nested absolute-metre containment ladder with a single
elastic seam at planetary scale:
  voxel 1m -> chunk 64m -> block 128m -> quarter 512m -> district 2km
  -> region ~205km (100x100 districts) -> (elastic) -> planet
A body holds round(2*pi*R/204.8km) regions (the only per-body-floating
quantity); everything below is fixed integer math, so ChunkPos->RegionPos
is body-independent. The region is the largest hard block: the climate/
weather/season lockdown scale (the Q-105 cheap-dynamism source) and the
sane planetary grid. Sub-heightmap detail is invented deterministically
(interpolation + domain warp + detail-scatter, never stored, D-227); climate
is edge-fuzzed so the grid never shows ('climate does not change on a line').

Vocabulary locked and recorded in CLAUDE.md: 'region' = the 205km metric
cell only; the old 1km RegionProfile is dropped onto the 2km district; D-201
tier-4 'Region' renamed Province (the watershed/political overlay), amended
here. Refines D-239 §2 (district temperature now modulates a region baseline).

Implementation tickets: T-1077 (re-scale the code to the ladder + elastic-seam
resampling; blocks T-1046) and T-1078 (region climate stack + edge fuzz).
T-1046 is un-gated on Q-110 and now blocked only by T-1077.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 21:26:13 +02:00
jpmschweitzerandClaude Opus 4.8 301be77b49 docs(governance): file D-242 corp-HQ settlement model + T-1074/1075/1076
Reviewing the T-1038 road-graph hub model surfaced that corp HQs are
cross-referenced into atlas_city_names as reserved rows — one per corp —
producing duplicate co-named "cities" (e.g. 10 'Groombridge' rows on
GJ380c) that the spatial layers place as separate settlements.

D-242 resolves the data model: corp HQs are not cities. The HQ relationship
lives with the corp; placement is a baked, specialization-keyed preference
(CityTenant vs Standalone, since corp_type is degenerate); population and
settlement_class are install-baked with only position seed-derived. This
supersedes the D-223 corp-HQ-cross-ref and deferred-pop/class notes.

Companion tickets under T-750: T-1074 (corp-HQ model / remove the cross-ref /
specialization map / standalone HQ settlements), T-1075 (bake per-settlement
population + settlement_class), T-1076 (road-graph hub refinement — scaled-cap
hubs, co-location collapse, hybrid minor attach, deferred RailHeadFacing pass;
blocked on T-1074 + T-1075). T-1038 annotated with shipped-vs-deferred.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 20:13:10 +02:00
jpmschweitzerandClaude Fable 5 1044939748 chore(meta): close T-1067
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 20:15:04 +02:00
jpmschweitzerandClaude Fable 5 4f73624eff refactor(db): split import_economics.py; single generator-source registry (T-1067)
import_economics.py 2,620 → 309 lines — a thin orchestrator keeping the
exact CLI, single-transaction/rollback contract, and exit codes. The 16
import steps, MIGRATION_SQL, brands shell-out, validators, and stamp
write now live in tooling/economy-db/economy_import/ (db, migration,
economy, corporations, brands, bodies, atlas, specialization, traits,
validators, stamp, paths, errors). Full type hints throughout.

tooling/generator_sources.py replaces the triplicated source registry
(importer / stamp checker / pr-process watch list — the skill now derives
its list via --list). The registry stamps itself, and economy_import/
modules are globbed fail-closed, so a future module is stamped the moment
it exists — closing the silently-weakened-stamp failure mode.

Rider: connector config helpers centralized in tooling/db/common.py.

Byte-identical behavior proven: full-import table dump diff EMPTY over
107,843 lines / 37 tables (volatile timestamp fields excluded); dry-run
output parity; generated_brands.toml sha unchanged. make test-tooling
PASS; ruff clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 20:13:28 +02:00
jpmschweitzerandClaude Fable 5 5b3f18da65 chore(meta): close T-1062
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 17:08:41 +02:00
jpmschweitzerandClaude Fable 5 257d979aed refactor(simulation): split the input.rs and dialogue.rs dispatchers (T-1062)
input.rs 2,739 → 858 lines: per-domain action handlers moved to their
owning modules (inventory, movement, stance, examine, follow, interaction,
save_io, settings, bridge::debug, economy, vision_cone, bookmark,
test_world reset + new teleport.rs); input.rs keeps the queue, the thin
dispatch table, and pause/cooldown glue. All 9 type_complexity allows
dissolved via one PlayerInputQuery alias.

dialogue.rs → dialogue/ directory module: selection (631), response
(1,473), confrontation (714), mod.rs (226, shared session components +
re-exports — public paths preserved). Documented seam deviation:
process_walk_away lives with confrontation (D-064/D-063 share the same
world-response shape).

Mechanical, zero behavior change: determinism + golden_suite byte-identical
(independently re-verified); 1,504 lib tests unchanged — 23 input tests
moved with their subjects, 53 dialogue tests redistributed, zero deleted.
System scheduling registrations untouched (input_plugin.rs 0-line diff).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 17:07:36 +02:00
jpmschweitzerandClaude Fable 5 3a3e7c72fe chore(config): blocking client-test gate in pre-push (T-1065); amend D-067 chime duration
pre-push now runs the full gdUnit4 suite via tests/run-godot when client/
changed — blocking, ~100s, suite made green by T-973 and independently
re-verified. The tooling gate (make test-tooling on TOOLING_CHANGED, T-1066)
rides in the same hook. D-067 amended: the shipped chime is a deliberate
800ms synthesis (#327, ui.md UI-005); prose said 300-400ms. Ticket closes
for the maintenance wave in the changelog.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 16:24:34 +02:00
jpmschweitzerandClaude Fable 5 c64231e8ee fix(client): clear the test debt — 2 production bugs, suite fully green (T-973 et al.)
Production fixes surfaced by honest test triage:
- hud_groups.gd: _set_group_z crashed on freed HUD nodes — the typed loop
  variable errors before the is_instance_valid guard runs; prune first
- fog_state.gd: _resize cleared _prev_visible (world-space keys survive
  resizes), so pre-resize tiles never decayed VISIBLE→EXPLORED (D-059)

Test debt (T-928/929/934/935/936/937/938/939, T-864, T-973): lambda
local-capture bugs rewritten with array captures (now assert exact
emission counts), e2e suites updated to the current handshake +
StartupMessage protocol and stream-aware reads against the live binary,
fog perf test measures steady state, chime test pins the shipped 800ms
catalog asset (D-067 amended separately), monologue gdUnit4 API typo,
battery-warning tests follow the MetaScreen on_open lifecycle. 3 sprint2
proof tests revived (corner_reveal had passed from the wrong tile — NPC3
blocks (18,14); route corrected). Soft-skips converted to real do_skip
reporting. T-1068: 7 orphan .gd.uid deleted, _format_pop/_format_radius
deduped into atlas_format.gd (preload, no class_name — headless cache).

Suite: 1264 cases/20 failures → 1268/0, independently re-verified
(2536/2536, exit 0).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 16:22:01 +02:00
jpmschweitzerandClaude Fable 5 b7a8cd1876 chore(meta): close bug-run tickets T-1040/T-1041/T-1045 with fix notes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 13:50:31 +02:00
jpmschweitzerandClaude Fable 5 49a74e93d4 fix(engine): TCP partial-read frame desync + per-tick inbound drain (T-1045)
FrameAccumulator state machine in framing.rs holds partial prefix/payload
bytes across non-blocking receive() calls — a frame split across TCP
segments no longer desyncs the stream (read_exact previously discarded
partially-consumed bytes on WouldBlock). receive_bridge_inputs now drains
all ready frames per tick (capped) instead of exactly one, covering input
batches + atlas requests in the same window.

Review hardening: EOF mid-frame escalates to Disconnected like clean EOF
(peer died with a truncated stream) instead of logging an Io error every
tick. Tests: frame split inside prefix / inside payload, multi-frame
drain, mid-frame-EOF disconnect. Corrupt-stream escalation tracked as
T-1072.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 13:42:24 +02:00
jpmschweitzerandClaude Fable 5 d23d54b3d6 chore(meta): file the fable-ous audit — 27 tickets, 11 questions, D-225 amendment; retire the report
Completes the audit→records pass; fable-ous.md deleted, full stub→record
mapping preserved in docs/audits/2026-06-12-fable-ous-filing-ledger.md.

- Questions Q-112..Q-122: storyteller f32 vs bps, cross-platform goldens,
  NPC appearance contract, garments simulated-vs-visual, gdlint gate,
  whatsinagame extraction, empty wiki categories, generic-parent first
  slice, garment-token vocabulary, dress canon home, asset sourcing policy
- Audit notes appended to Q-067 (vehicle scope vs T-750 car list) and
  Q-107 (signature-materials field in the consolidation scope)
- D-225 amendment: next inbound message type requires a tagged envelope
- Tickets T-1045..T-1071 under T-750/T-749/T-751/T-1037, each embedding
  its evidence; audit maps embedded in T-1046 (cascade), T-1049 (asset
  matrix), T-1071 (wiki survey). Headline spine ticket: T-1046
- T-982 flipped stale-in_progress → backlog with verified-scope note

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 12:42:29 +02:00
jpmschweitzerandClaude Fable 5 ca255dc16c chore(meta): cascade refocus — supersede v0.2 cluster, re-home backlog tree, capture workshop WIP
Governance:
- D-166 amendment (2026-06-12): outside-in build order (geo → econ-on-world →
  building templates → door boundary contracts → NPC/interiors → gameplay);
  Phase 5 ramps in parallel once outsides are walkable (gate: T-962)
- D-114/D-115/D-117/D-118/D-120 marked superseded by D-166 (inbound anchors fixed)
- D-221 amended: milestones retired, cascade-hierarchy gating is canonical
- Q-077/Q-068/Q-036 resolved (answered by events); Q-110 (scale anchoring) and
  Q-111 (live-econ coupling) opened from cascade grounding

Ticket tree (147 stray backlog tickets dispositioned):
- New parents: T-1036 (post-cascade gameplay parking), T-1037 (maintenance initiative)
- Re-homed: 15 → Phase 4 (T-750), 30 → Phase 5 (T-749), 11 → Phase 6 (T-751),
  21 → gameplay parking, 28 → maintenance; children follow their epics
- Cancelled 12 administrative shells (mirror tickets, emptied pre-cascade umbrellas,
  v0.2 pivot shell T-603); T-9/T-28 closed done; T-745 in_progress
- New grounded tickets T-1038..T-1044: inter-settlement road/rail graph, L3→L4
  dispatch threading, river-channel-anchor bug, 64m landform-repeat bug,
  region seam blending, road-entry octants, drainage re-run fix

Docs:
- CLAUDE.md cascade paragraph updated to the amended rule
- 20 v0.1-era docs/design files marked superseded with pointers;
  content-structure-canonical retitled (v0.2 label dropped)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 12:26:32 +02:00
jpmschweitzerandClaude Opus 4.8 5adf2b8bd7 migrate ticket changelog to record_id identity (D-26)
Rewrites the committed .pql/changelog/ from the old T-NNN-keyed format to
the record_id identity model (pql 1.10.0, D-26): tickets keyed by a ULID
record_id, the friendly T-NNN in ticket_idmap, references and hashes
recomputed. Produced by the one-off cmd/migrate-ids in the pql repo.

Other clones: install pql >= 1.10.0, then rm .pql/pql.db && pql plan
rebuild to regenerate the local DB from this changelog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 09:29:34 +02:00
jpmschweitzerandClaude Opus 4.8 7776d99c14 test(simulation): isolate voice::lookup cache dirs — fix flaky cache_miss (T-1035)
The four voice::lookup tests shared one on-disk cache directory (base_dir
temp/sr-voice-lookup-test + world_seed 99). VoiceCacheStore persists on Drop
(save_all) and reloads on first zone access (load_zone), and cache_hit stores
'Voiced line.' under the identical (zone_id=100, CacheKey) that cache_miss looks
up — so under parallel execution the hit test's Drop/save could leak into the
miss test's lookup, returning 'Voiced line.' instead of 'Base line.'.

Give each test a directory keyed by test label + process id, so neither parallel
tests nor concurrent cargo test runs collide. Verified clean across repeated runs.

Closes T-1035.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 08:18:58 +02:00
jpmschweitzerandClaude Opus 4.8 4984d59bf4 fix(simulation): derive_moisture_q canonical hydrosphere vocab (T-1034)
derive_moisture_q matched hydrosphere on 'ocean'/'rivers'/'subsurface', but the
real bodies.hydrosphere vocab in systems.db is dominated by 'liquid_water' (175
bodies) — so most surface-water worlds fell to the '_ => 30' default, propagating
wrong precipitation_class / glaciation_grade / vegetation. Same root cause as
D-240 (code keyed on a vocab the data doesn't use).

Align the match to the canonical vocab, grouped by available surface moisture
(mirrors the [hydrosphere_maritime] table from T-1033): surface liquid
(liquid_water/ocean/ocean-coastal/extensive) -> 80; rivers/rivers-lakes/moderate
-> 55; ice -> 20; subsurface_liquid -> 15; subsurface/subsurface_ice -> 10;
minimal/trace -> 5; none -> 0. Add a liquid_water regression test and broaden the
clamp sweep to the full vocabulary.

Closes T-1034 — last open ticket under epic T-974 (Atlas-to-tile derivation),
which is now complete.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 23:01:43 +02:00
jpmschweitzerandClaude Opus 4.8 1897c0b450 chore(meta): T-1031 resume note (context reset handoff)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 19:22:10 +02:00
jpmschweitzerandClaude Opus 4.8 f34bcb431f chore(meta): T-1033 done (PR #164 merged) — class-envelope temperature
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 19:17:59 +02:00
jpmschweitzerandClaude Opus 4.8 970bbb715e chore(meta): T-1033 -> review (PR for class-envelope temperature)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 18:30:14 +02:00
jpmschweitzerandClaude Opus 4.8 bf7da1105d docs(architecture): D-240 — registry orbit/star non-canonical; class-envelope climate (T-1033)
Record D-240: a body's orbital position and stellar assignment are placeholder
registry data with no authored physical intent, so no derivation may use them as
physical inputs. Climate derives from authored planet_class (temperature envelope)
+ atmosphere + hydrosphere + seed. Supersedes the sun-driven Stefan-Boltzmann
portion of D-239 §2, which produced +356 C 'temperate' worlds (NULL spectral_class
-> G-Sun default on an M-dwarf catalog).

File T-1033 under T-974: rewrite derive_temperature_c to the class-envelope model,
drop the orbit/star inputs, regen the T-1031 golden. Audit confirmed the blast
radius is one function (derive_temperature_c).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 18:06:49 +02:00
jpmschweitzerandClaude Opus 4.8 f519dc6e76 chore(meta): T-1030 done (PR #163 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 17:34:05 +02:00
jpmschweitzerandClaude Opus 4.8 22f1fd9462 chore(meta): T-1030 -> review (PR for freeze/snow model)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 17:16:48 +02:00
jpmschweitzerandClaude Opus 4.8 8f83785c8f chore(meta): T-1029 done (PR #162 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 16:44:27 +02:00
jpmschweitzerandClaude Opus 4.8 7c73e68827 chore(meta): T-1029 -> review (PR for morphology geometry generators)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 16:20:08 +02:00
jpmschweitzerandClaude Opus 4.8 e6600c4a90 chore(meta): T-1028 done (PR #161 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:18:37 +02:00
jpmschweitzerandClaude Opus 4.8 0bcbc1573a chore(meta): note VoxelCache LRU perf on T-1031 (T-1028 review)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:47:56 +02:00
jpmschweitzerandClaude Opus 4.8 c40631aa53 chore(meta): T-1028 -> review (PR for VoxelColumn walking skeleton)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:38:12 +02:00
jpmschweitzerandClaude Opus 4.8 de86281c4f chore(meta): T-1025, T-1027 done (PR #160 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 13:27:13 +02:00
jpmschweitzerandClaude Opus 4.8 8865cfd0a2 chore(meta): T-1025, T-1027 -> review (PR for climate + morphology)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 13:14:10 +02:00
jpmschweitzerandClaude Opus 4.8 bca80617e6 chore(meta): T-1032 done (PR #159 merged)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 12:53:51 +02:00
jpmschweitzerandClaude Opus 4.8 935d164aa3 chore(meta): T-1032 in_progress -> review (PR #159)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 12:38:28 +02:00
jpmschweitzerandClaude Opus 4.8 a516b06de9 chore(meta): T-1023/1024/1026 done (PR #158 merged)
D-239 three-carrier foundation merged to main. Review found a correctness
bug (per-region elevation) + hollow determinism tests, both fixed before merge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:25:34 +02:00
jpmschweitzerandClaude Opus 4.8 71a0544622 chore(meta): T-974 carriers -> review (PR #158); file T-1032 dispatch follow-up
T-1023/1024/1026 implemented and pushed as PR #158; moved to review.
T-1032 (new, under T-974) tracks wiring the production AnalyzeBody dispatch
to read BodyParams from the DB — currently always None, so the carrier layer
only runs in tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 10:29:34 +02:00
jpmschweitzerandClaude Opus 4.8 b7b4626035 chore(meta): T-1022 done; activate T-974 carrier trio (T-1023/1024/1026)
PR #157 merged -> T-1022 done. Activate the D-239 three-carrier foundation
batch via /whats-next: T-1023 (RegionProfile), T-1026 (domain warp), and
T-1024 (district climate) with refinement notes. T-1024 blocked-by T-1023
(temperature fields live on the RegionProfile struct).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:47:09 +02:00
jpmschweitzerandClaude Opus 4.8 a1e2288a79 chore(meta): T-1022 -> review (PR #157)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 13:33:55 +02:00
jpmschweitzerandClaude Opus 4.8 5dfea07bff docs(briefings): log worktree-sandbox dead-end + image.show win (clide)
T2: background agent / lead writes are confined to the session root, so an
out-of-root sibling worktree (.worktrees/<branch>) is unwritable — the
agent could design but not write, and there's no permission to grant. Fix
options for clide noted. Plus a positive: clide image show works first-try.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 12:57:10 +02:00
jpmschweitzerandClaude Opus 4.8 1cb53b3654 chore(meta): decompose T-974 into D-239 tile-derivation implementation tickets
Breaks the Atlas-to-tile derivation epic (T-974) into 9 implementation
tasks from the D-239 contract, as a walking skeleton:

- T-1023 RegionProfile carrier + derived gating + BodyWorldState cache
- T-1024 district climate primitives (temperature + moisture)
- T-1025 climate-derived fields (precip / GlaciationGrade / vegetation)
- T-1026 anti-squaring domain warp (f64-to-voxel)
- T-1027 morphology classifier (17-zone vocab + 8-family selector + seam matrix)
- T-1028 VoxelColumn pipeline (skeleton) + AlluvialPlain fallback
- T-1029 specialized morphology generators (7 families)
- T-1030 scattered transient freeze/snow model
- T-1031 believability + determinism + <5ms budget harness

DAG wired; first wave unblocked = T-1023, T-1024, T-1026.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 12:34:53 +02:00