Skip to content

Release notes from the game upgrades, and two messages that name the fix - #223

Merged
SandroMaglione merged 1 commit into
mainfrom
docs/release-0-23-fixes
Nov 10, 2026
Merged

SandroMaglione merged 1 commit into
mainfrom
docs/release-0-23-fixes

Conversation

@SandroMaglione

Copy link
Copy Markdown
Member

Migrating two games (inkline-town, spirit-call) from 0.22 to the 0.23 release candidate passed every check after migration, but found gaps in what npm ships. This fixes them before #198.

Code (type-level messages only)

  • A [Descriptor, value] tuple built outside the call (a helper's return, an array it was pushed into) widens to an array and failed with `${string} is not a component of this game's schema`. It now fails with this entry widened to an array: write the [Descriptor, value] tuple in the call, add \as const` where it is built, or annotate it Command.Entry. Type tests cover both the message and the two fixes; Command.Entry` has a compiled example.
  • set on an entity state declared with transitions names data.x.setRaw(entity, raw) next to transition; the set JSDoc no longer calls it the way to reset.

Docs

  • runtime-robustness: cancelPending(), not the renamed reset().
  • render-node-follows-renderable: leads with the rebuild trap (142 → 59,445 nodes made in inkline-town) and adds the fix it used: key on a component that never changes, read the written one through a required select slot.
  • exact-entries: widened tuples and their fix.
  • saves-and-loads: a transient resource filled late and read early reads its starting value after a load (read-before-write); every save carries nextStates.
  • clock-steps-raw: replays recorded with a half-step duration diverge.
  • ritmo skill, upgrade playbook: the 0.23 changes that compile but change behaviour.

Checks: pnpm check, pnpm bench:check, pnpm --dir website build.

🤖 Generated with Claude Code

Migrating inkline-town and spirit-call to the 0.23 release found gaps
in what npm ships:

- A tuple entry built outside the call widened to an array and failed
  with "${string} is not a component of this game's schema". It now
  says the entry widened, and names `as const` and `Command.Entry`.
- `set` on an entity state with `transitions` names `setRaw` for data
  from outside the simulation.
- Changesets: `cancelPending()` instead of the renamed `reset()`, the
  RenderSync rebuild trap and its second fix, widened tuples, the
  restore trap for transient resources and `nextStates` in every
  save, and replays recorded with a half-step `Clock.duration`.
- The upgrade playbook lists what 0.23 changes without a compile error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SandroMaglione
SandroMaglione merged commit bcde5db into main Nov 10, 2026
5 checks passed
@SandroMaglione
SandroMaglione deleted the docs/release-0-23-fixes branch November 10, 2026 07:58
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