From 38a1007e043c4fc70c517beab59df9e7ec7d0a0e Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Wed, 22 Apr 2026 11:39:36 +0200 Subject: [PATCH] chore(meta): release v0.1.37 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sprint 37: Sweep — 25/25 original-scope tickets shipped across 4 teams (ci 7 / server 9 / client 6 / copy 3). Highlights: - Asset pipeline discipline: source-canonical systems.db with meta-stamp, pre-push hook, /pr-push auto-regen, documented rule (#854-#859, #723) - D-192 PROTOCOL_VERSION lockstep removed server + client (#874, #875) - D-167 HeritageRoot + D-032 CharacterArchetype stripped per development cascade (#877, #878) - New Game hang fix + scene-level merge-path tests (#872, #873) - 105 brand corp stubs authored to three-layer depth (#861) - D-193 Lattice Commission canonical (#876) - v0.1 Sova/Van Maanen residue purged (#865) - 21 raw-commodity coverage gaps closed (#860) - Atlas generator polish + determinism smoke (#853, #847) - Bookmark save/load persistence (#863, #862) 5 in-sprint follow-ups carried to backlog (#882, #884, #885, #892, #893) for sprint 38 planning. --- CHANGELOG.md | 12 +++++++++++- project.yaml | 2 +- server/Cargo.lock | 2 +- server/Cargo.toml | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1ffa8447..401c54c6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] +## [v0.1.37] — 2026-04-22 + ### Added - **Asset pipeline discipline** (#854, #855, #856, #857, #858, #859) — `systems.db` is now a source-canonical snapshot with a `meta` table stamped by every generator (SHA of source + schema). Pre-push hook rejects stale DBs; `/pr-push` auto-runs `make regen-db` when generator sources change. Full rules in `.claude/rules/asset-pipeline.md` - **`make regen-db`** — runs the two DB-writing generators (import_economics, generate_atlas) and stamps the meta table. import_economics now invokes the Rust generate_brands binary internally as its first step, so the brand pipeline is owned by a single stamp. @@ -17,6 +19,9 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - **`BookmarkPlugin::new(registry)` injection** (#862) — test-friendly plugin construction for future TOML bookmark loading; default constructor still wires the canonical tycoon registry - **Six new corporation wiki pages** (#860) — Arbour Aggregates, Earth Standard Group, Rush Mining, Scapa Flow Industries, Sede Chemical Works, Threshold Fuel Syndicate - **Atlas naming corridor-scoped dedup, compass-direction filter, river vocab filter, infra pair-naming** (#853) — city and mountain names deduplicate across bodies within a corridor; compass-direction defaults blocked in the few-shot prompt; navigational vocabulary (`Flow`, `Current`) rejected for rivers; unnamed roads and railroads receive deterministic `{CityA}–{CityB} {corridor_suffix}` names +- **Scene-level merge-path UI flow tests** (#873) — `test_merge_path_flows_sprint37.gd` covers main-menu → new-game, load-game, character-creation → submit, bookmark → confirm. Headless scene-flow tier (4th beyond Gauntlet/MessagePack/TestHarness); pattern for future merge-path regression guards +- **105 brand corp wiki stubs** (#861) — every corp page from Sprint 36 PR #133 now authored to three-layer narrative depth (public identity / actual operation / one concealed fact) with ≥95-line DoD +- **D-193 Lattice Commission** (#876) — resolves Q-095: "the Lattice Commission" is the canonical long-form of the Concord Assembly's regulatory authority; "Concord Commission" and "Assembly Commission" deprecated as drift forms ### Changed - `decisions-coverage` Makefile target now lists implementing ticket IDs per decision instead of aggregate counts @@ -24,12 +29,17 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - Tag updates on 15 existing corporation wiki pages to match commodity coverage needs ### Fixed +- **New Game flow hangs on 'connecting'** (#872) — `bookmark_catalog` carry-forward race in `SimBridge.receive_bytes` when tick 0 + tick 1 arrived in the same TCP batch; catalog now carries forward with same invariants as monologue/dialogue/settings_response +- **`dialogue_box._escape_bbcode` corrupted `[lb]` escapes** (#866) — chained `.replace('[','[lb]').replace(']','[rb]')` turned `[lb]` into `[lb[rb]`; fix escapes only `[`, since unmatched `]` renders as literal in RichTextLabel +- **MetaScreen test helper regression in `test_anti_tedium`** (#869) — bug_report_dialog test helpers now instantiate from `.tscn` instead of `Control.new() + set_script()`, preserving the MetaScreen runtime stack - Storyteller `activation_pass` "no Simmering triangles — holding" no longer fires as `warn` during normal early-game state — downgraded to `debug` (#789) ### Removed -- **`PROTOCOL_VERSION` lockstep handshake** (#874, D-192) — `HandshakeMessage` is now empty; schema drift surfaces as MessagePack missing-field errors downstream, which is the intended signal +- **`PROTOCOL_VERSION` lockstep handshake** (#874, #875, D-192) — both sides of the handshake now omit the version field; `HandshakeMessage` is empty server-side and the client decode path no longer checks versions. Schema drift surfaces as MessagePack missing-field errors downstream, which is the intended signal - **`HeritageRoot` type alias and `ZonePaletteModifier::Heritage` variant** (#877, D-167) — last stubs of the abstract heritage-root system retired in favour of the corridor cultural framework - **`CharacterArchetype` (Smuggler/Detective) trace from server** (#878) — enum, IPC field, verb-differentiation branch in the observer Phase 2 filter (D-057 superseded), monologue pool partitioning, Gauntlet plumbing, drama-module schema, archetype-dependent integration tests. Per the development cascade, character/NPC differentiation is Phase 6 work and the running trace was pre-cascade filler, not production. Client-side cleanup tracked in #882. +- **v0.1 Sova/Van Maanen's residue from wiki** (#865) — `wiki/star-systems/GJ-35/sova/` subtree deleted; authoring-guide examples stripped; canonical lore citing dropped v0.1 NPCs rewritten; "Van Maanen's Star" cultural references converted to "Vuurkloof" +- **8 parse-error test files** (#870) — `test_debug_overlay_sprint19`, `test_entanglement_sprint22`, `test_fog_sprint22`, `test_journal_sprint18`, `test_minimap_sprint18`, `test_session_manager_sprint19`, `test_sprint30`, `test_sprite_integration` — referenced removed/renamed APIs from prior sprints. Coverage-revival tickets filed: #879 (fog), #880 (journal), #881 (minimap), #889 (EntityRenderer sprite constants); rest tracked under umbrella #871 ## [v0.1.36] — 2026-04-21 diff --git a/project.yaml b/project.yaml index 0cb6766bb..b2e3a31a4 100644 --- a/project.yaml +++ b/project.yaml @@ -1,5 +1,5 @@ name: The Settled Reach -version: 0.1.36 +version: 0.1.37 repository: settled-reach diff --git a/server/Cargo.lock b/server/Cargo.lock index 6dd828144..7caec66b0 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -1294,7 +1294,7 @@ dependencies = [ [[package]] name = "settled-reach-server" -version = "0.1.36" +version = "0.1.37" dependencies = [ "bevy_app", "bevy_ecs", diff --git a/server/Cargo.toml b/server/Cargo.toml index f4586058d..f6bb67319 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "settled-reach-server" -version = "0.1.36" +version = "0.1.37" edition = "2021" publish = false