Skip to content

Merge dev → main (automated) - #825

Merged
SorraTheOrc merged 40 commits into
mainfrom
release/dev-to-main-20261029104846
Oct 29, 2026
Merged

SorraTheOrc merged 40 commits into
mainfrom
release/dev-to-main-20261029104846

Conversation

@SorraTheOrc

Copy link
Copy Markdown
Member

Automated release created by ship skill.\n\nIncludes CHANGELOG.md with work-item summaries from this release.

SorraTheOrc and others added 30 commits October 15, 2026 11:59
…ckable schema

Main Street's card-data.csv gained a trailing piggybackable column
(piggyback-eligibility flag, epic MS-0MUYC47EL005Z69H). The card-pack merge
requires pack fragments to reuse the base header exactly, so the reference
main-street-foundations pack fixture (and its README column count) is synced
to the new 54-column schema. All rows stay unflagged (not organiser events).
… wiring (MS-0MVCRGKZY007DIED)

Adds core/scripts/engine-sync.mjs (sync/verify subcommands with dirty-state
guard and pin-mismatch failure paths) + .d.mts types, and wires the
game-repo scaffold template (renderPackageJson) with engine:sync /
engine:verify / build:release npm scripts so re-scaffolded game repos carry
the dev-sync / release-pin build split. Lists the new scripts modules in the
repo partition layout so extracted core repos typecheck. Engine tests: new
tests/scripts/engine-sync.test.ts (17 tests) + scaffold test coverage for the
generated scripts.
- tests/scripts/engine-sync.test.ts: drop unused fileURLToPath import and
  unused fixture variable (TS6133; origin/dev build was red since a1de871).
- tests/scripts/build-card-pack.test.ts: compare the copied reference-pack
  header against the committed reference fixture's own 55-column header
  instead of the generic 53-column CARD_PACK_CSV_HEADER. The reference
  fixture was re-synced to the production schema (options + piggybackable)
  in a1560d4/dc4ec0ce; the shared constant describes the separate 53-column
  merge/UI fixture schema and must not be bumped.

Verified: tsc --noEmit clean; npm run build clean; the four affected unit
files pass (73 tests). Full-suite run deferred: host was saturated by
concurrent CI suites for several hours (unit stage exceeded its 300s bound).
…ION.md

Adds a '## The Rising ToneForge SFX' profile: the three face-off keys and
asset filenames, the exact deterministic tf generate commands (recipes
card-treasure-reveal/whoosh-air-swish/card-timer-tick, seeds 42/43/44),
runtime wiring (THERISING_SFX_KEYS/THERISING_AUDIO_FILES, preload +
audioPathWithFallback, SoundManager/safePlaySound), reduced-motion behaviour
(all three beats still play), fallback behaviour (face-off WAVs game-specific,
nine baseline SFX fall back to default/, no synth mapping), and a link to the
game README regeneration section. Adds the-rising/ to the audio-tree with a
note that the assets live in the game repo.

Docs-only: no engine code or constants changed.
Adds a game-agnostic story-line system under core/src/story-line:
types + engine/UI adapter seams, legacy hasChoices and CSV options
compilation, a per-system registered-option registry, resolution
semantics (apply/skip, successor precedence, one seeded rng draw per
candidate selection, deterministic serial chain naming), journal helpers
and a pluggable default UI adapter. Wires the @story-line alias through
resolveCoreAliases, core tsconfig and the scaffold template.

Includes the parity unit tests from MS-0MVFM9HGI004XADO under
core/tests/story-line (compile/resolve/journal/ui-adapter).
Adds GymStorylineScene, a proof-of-concept demo of the generic
@story-line module: a small branching fixture (two-way and terminal
options) where the player draws a card, picks an option, and the choice
deals the next card until the chain ends. Uses the default core UI
adapter to demonstrate the pluggable seam.

Registers the scene in the Gym registry/catalogue, the barrel, the
auto-generated scene list, the individual-scene smoke test and the Gym
index.
Adds core/docs/core-engine/story-line.md (module API, engine/UI adapter
seams, Gym demo, testing), and links it from DEVELOPER.md and the Gym
index. Documents the completed extraction of the branching story-line
mechanic into @story-line.
…are SFX

Adds runtime Tone.js factories (+ descriptors, generator script kept in
lockstep) for income-positive-chime, income-negative-chime,
income-neutral-chime and success-fanfare, so Main Street's 16 mapped SFX
keys all play through the synth instead of the WAV fallback. Test key lists
and docs updated.
…al editor

- docs/core-engine/story-line.md: authoring seams (content adapter, CSV,
  manifest, validator, author API) + editor (launch, viewer, edit workflow,
  preview/validation, artefact regeneration, storyline management, concurrency
  guard)
- docs/dev/storyline-editor.md (new): developer/content-designer walkthrough —
  supplying a content adapter, running against a game's content, the edit
  workflow, artefact regeneration, headless --apply
- docs/DEVELOPER.md: link the editor walkthrough alongside the storylines:* CLI
  list
- AGENTS.md: update the storylines:editor Quick Start line to the full editor
…m a bad pin

syncEngine now rewrites configs/engine-pin.json to the new HEAD whenever it
advances ./core and stages the pin and the gitlink together, so a commit can
never record them divergent. Offline fallback and no-op syncs leave the pin
byte-identical; repos without a pin are never given one.

verifyEngine separates a lagging pin (an ancestor of the tracked tip by N
commits -> re-pin, the pin and gitlink travel together) from a bad/foreign
pin (does not resolve on the tracked branch), both still hard failures.

docs/DEVELOPER.md states the pin-tracks-the-tip policy; types and the offline
engine suite cover the new behaviour.
@SorraTheOrc
SorraTheOrc merged commit f0b5b9e into main Oct 29, 2026
2 of 3 checks passed
@SorraTheOrc
SorraTheOrc deleted the release/dev-to-main-20261029104846 branch October 29, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant