diff --git a/.changeset/agent-docs-and-simulation-coverage.md b/.changeset/agent-docs-and-simulation-coverage.md deleted file mode 100644 index ba1b2c4..0000000 --- a/.changeset/agent-docs-and-simulation-coverage.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@typeonce/ritmo": patch -"@typeonce/ritmo-browser": patch -"@typeonce/ritmo-render": patch -"@typeonce/ritmo-pixi": patch -"@typeonce/ritmo-math": patch -"@typeonce/ritmo-devtools": minor -"@typeonce/oxlint-plugin-ritmo": patch ---- - -**Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** - -- **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). -- **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. -- **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. -- **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. -- Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. diff --git a/.changeset/skill-playbooks-and-renderer-free-schema.md b/.changeset/skill-playbooks-and-renderer-free-schema.md deleted file mode 100644 index e1a5fe6..0000000 --- a/.changeset/skill-playbooks-and-renderer-free-schema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -"@typeonce/ritmo": patch -"@typeonce/ritmo-math": patch -"@typeonce/oxlint-plugin-ritmo": minor ---- - -**The Ritmo skill routes each change to a playbook, and simulation code names no renderer type.** - -- **Breaking: `ritmo/keep-simulation-headless` reports type-only renderer imports** (`import type { Container } from "pixi.js"`, `export type ... from "three"`) and subpath imports of `@typeonce/ritmo-render` and `@typeonce/ritmo-pixi`. A schema that names a renderer type ties the simulation to that renderer. Move the renderer service (a `Descriptor.Service>()(...)`) and the systems that use it into render code; services are not registered in the schema, so nothing else changes: - - ```diff - -// src/game/schema.ts - -import type { Sprite } from "pixi.js" - -export const Sprites = Descriptor.Service>()("Game/Sprites") - +// src/render/sprites.ts - +import type { Sprite } from "pixi.js" - +export const Sprites = Descriptor.Service>()("Game/Sprites") - ``` - -- **The skill in `skills/ritmo` now has playbooks**: one per kind of change (a mechanic, content, UI and rendering, a bug fix, a refactor, state and upgrades), each a short list of steps that ends with the check that proves it. `SKILL.md` routes to them and keeps the principles. A game that already links the skill folder gets them on upgrade. diff --git a/packages/browser/CHANGELOG.md b/packages/browser/CHANGELOG.md index e449cf1..388539e 100644 --- a/packages/browser/CHANGELOG.md +++ b/packages/browser/CHANGELOG.md @@ -1,5 +1,21 @@ # @typeonce/ritmo-browser +## 0.10.0 + +### Patch Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + +- Updated dependencies [7002f4d] +- Updated dependencies [388a696] + - @typeonce/ritmo@0.10.0 + ## 0.9.0 ### Minor Changes diff --git a/packages/browser/package.json b/packages/browser/package.json index 04641a0..f5cf2d4 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/ritmo-browser", - "version": "0.9.0", + "version": "0.10.0", "description": "Browser fixed-step loop, keyboard actions, and input capture for Ritmo", "author": "Sandro Maglione", "license": "MIT", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 6811d73..873be8c 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,32 @@ # @typeonce/ritmo +## 0.10.0 + +### Patch Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + +- 388a696: **The Ritmo skill routes each change to a playbook, and simulation code names no renderer type.** + + - **Breaking: `ritmo/keep-simulation-headless` reports type-only renderer imports** (`import type { Container } from "pixi.js"`, `export type ... from "three"`) and subpath imports of `@typeonce/ritmo-render` and `@typeonce/ritmo-pixi`. A schema that names a renderer type ties the simulation to that renderer. Move the renderer service (a `Descriptor.Service>()(...)`) and the systems that use it into render code; services are not registered in the schema, so nothing else changes: + + ```diff + -// src/game/schema.ts + -import type { Sprite } from "pixi.js" + -export const Sprites = Descriptor.Service>()("Game/Sprites") + +// src/render/sprites.ts + +import type { Sprite } from "pixi.js" + +export const Sprites = Descriptor.Service>()("Game/Sprites") + ``` + + - **The skill in `skills/ritmo` now has playbooks**: one per kind of change (a mechanic, content, UI and rendering, a bug fix, a refactor, state and upgrades), each a short list of steps that ends with the check that proves it. `SKILL.md` routes to them and keeps the principles. A game that already links the skill folder gets them on upgrade. + ## 0.9.0 ### Upgrading @@ -94,8 +121,7 @@ Fix each error where it is reported; the messages name the fix. marker; a failure in the exit phase now undoes the whole phase. - **Provide each service and machine once** in `Runtime.services(...)` / `Runtime.machines(...)`. -- **Snapshots carry `gameVersion`.** Saves without it restore as version - 0. Code that builds a `Snapshot.WorldSnapshot` by hand adds +- **Snapshots carry `gameVersion`.** Saves without it restore as version 0. Code that builds a `Snapshot.WorldSnapshot` by hand adds `gameVersion: 0`. To change a game's save format, pass `saves: Snapshot.migrations(...)` to `Game.Runtime.make` instead of editing raw saves before `restore`. @@ -216,7 +242,7 @@ Fix each error where it is reported; the messages name the fix. A raw id fails with an error that first prints the id's type (the whole schema), then the fix: `remove needs an entity from a query (pass - match.entity) or the id spawn returned in this run, not a raw id`. +match.entity) or the id spawn returned in this run, not a raw id`. - **`remove` takes several components.** Removing a component together with the components that require it must happen in one call: diff --git a/packages/core/package.json b/packages/core/package.json index 65363de..6aba7f5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/ritmo", - "version": "0.9.0", + "version": "0.10.0", "description": "The agent-first type safe ECS runtime", "author": "Sandro Maglione", "license": "MIT", diff --git a/packages/devtools/CHANGELOG.md b/packages/devtools/CHANGELOG.md index a24c4a9..8c3d363 100644 --- a/packages/devtools/CHANGELOG.md +++ b/packages/devtools/CHANGELOG.md @@ -1,5 +1,23 @@ # @typeonce/ritmo-devtools +## 0.10.0 + +### Minor Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + +### Patch Changes + +- Updated dependencies [7002f4d] +- Updated dependencies [388a696] + - @typeonce/ritmo@0.10.0 + ## 0.9.0 ### Patch Changes diff --git a/packages/devtools/package.json b/packages/devtools/package.json index 860a145..7952a7d 100644 --- a/packages/devtools/package.json +++ b/packages/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/ritmo-devtools", - "version": "0.9.0", + "version": "0.10.0", "description": "Headless debug sessions, trace history, text reports, and a live browser monitor for Ritmo runtimes", "author": "Sandro Maglione", "license": "MIT", diff --git a/packages/devtools/src/internal/version.ts b/packages/devtools/src/internal/version.ts index 38f26b0..a0f13ba 100644 --- a/packages/devtools/src/internal/version.ts +++ b/packages/devtools/src/internal/version.ts @@ -3,4 +3,4 @@ * `package.json` by `scripts/sync-version.ts` (run by \`pnpm version-packages\`) * and checked by a test. */ -export const libraryVersion = "0.9.0" +export const libraryVersion = "0.10.0" diff --git a/packages/math/CHANGELOG.md b/packages/math/CHANGELOG.md index 67ec386..55646bf 100644 --- a/packages/math/CHANGELOG.md +++ b/packages/math/CHANGELOG.md @@ -1,5 +1,36 @@ # @typeonce/ritmo-math +## 0.10.0 + +### Patch Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + +- 388a696: **The Ritmo skill routes each change to a playbook, and simulation code names no renderer type.** + + - **Breaking: `ritmo/keep-simulation-headless` reports type-only renderer imports** (`import type { Container } from "pixi.js"`, `export type ... from "three"`) and subpath imports of `@typeonce/ritmo-render` and `@typeonce/ritmo-pixi`. A schema that names a renderer type ties the simulation to that renderer. Move the renderer service (a `Descriptor.Service>()(...)`) and the systems that use it into render code; services are not registered in the schema, so nothing else changes: + + ```diff + -// src/game/schema.ts + -import type { Sprite } from "pixi.js" + -export const Sprites = Descriptor.Service>()("Game/Sprites") + +// src/render/sprites.ts + +import type { Sprite } from "pixi.js" + +export const Sprites = Descriptor.Service>()("Game/Sprites") + ``` + + - **The skill in `skills/ritmo` now has playbooks**: one per kind of change (a mechanic, content, UI and rendering, a bug fix, a refactor, state and upgrades), each a short list of steps that ends with the check that proves it. `SKILL.md` routes to them and keeps the principles. A game that already links the skill folder gets them on upgrade. + +- Updated dependencies [7002f4d] +- Updated dependencies [388a696] + - @typeonce/ritmo@0.10.0 + ## 0.9.0 ### Minor Changes diff --git a/packages/math/package.json b/packages/math/package.json index a882e86..49d3308 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/ritmo-math", - "version": "0.9.0", + "version": "0.10.0", "description": "Validated math values and hot-path game helpers (collision, spatial grid, flow field, random) for Ritmo games", "author": "Sandro Maglione", "license": "MIT", diff --git a/packages/oxlint-plugin/CHANGELOG.md b/packages/oxlint-plugin/CHANGELOG.md index 4907194..3bfe685 100644 --- a/packages/oxlint-plugin/CHANGELOG.md +++ b/packages/oxlint-plugin/CHANGELOG.md @@ -1,5 +1,34 @@ # @typeonce/oxlint-plugin-ritmo +## 0.10.0 + +### Minor Changes + +- 388a696: **The Ritmo skill routes each change to a playbook, and simulation code names no renderer type.** + + - **Breaking: `ritmo/keep-simulation-headless` reports type-only renderer imports** (`import type { Container } from "pixi.js"`, `export type ... from "three"`) and subpath imports of `@typeonce/ritmo-render` and `@typeonce/ritmo-pixi`. A schema that names a renderer type ties the simulation to that renderer. Move the renderer service (a `Descriptor.Service>()(...)`) and the systems that use it into render code; services are not registered in the schema, so nothing else changes: + + ```diff + -// src/game/schema.ts + -import type { Sprite } from "pixi.js" + -export const Sprites = Descriptor.Service>()("Game/Sprites") + +// src/render/sprites.ts + +import type { Sprite } from "pixi.js" + +export const Sprites = Descriptor.Service>()("Game/Sprites") + ``` + + - **The skill in `skills/ritmo` now has playbooks**: one per kind of change (a mechanic, content, UI and rendering, a bug fix, a refactor, state and upgrades), each a short list of steps that ends with the check that proves it. `SKILL.md` routes to them and keeps the principles. A game that already links the skill folder gets them on upgrade. + +### Patch Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + ## 0.9.0 ### Minor Changes diff --git a/packages/oxlint-plugin/package.json b/packages/oxlint-plugin/package.json index 127bd01..8560917 100644 --- a/packages/oxlint-plugin/package.json +++ b/packages/oxlint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/oxlint-plugin-ritmo", - "version": "0.9.0", + "version": "0.10.0", "description": "Oxlint rules for Ritmo games: deterministic, headless simulation code and checked runtime results", "author": "Sandro Maglione", "license": "MIT", diff --git a/packages/pixi/CHANGELOG.md b/packages/pixi/CHANGELOG.md index 0591e5a..98e68b0 100644 --- a/packages/pixi/CHANGELOG.md +++ b/packages/pixi/CHANGELOG.md @@ -1,5 +1,20 @@ # @typeonce/ritmo-pixi +## 0.10.0 + +### Patch Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + +- Updated dependencies [7002f4d] + - @typeonce/ritmo-render@0.10.0 + ## 0.9.0 ### Patch Changes diff --git a/packages/pixi/package.json b/packages/pixi/package.json index 4dba0a2..55e7dd6 100644 --- a/packages/pixi/package.json +++ b/packages/pixi/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/ritmo-pixi", - "version": "0.9.0", + "version": "0.10.0", "description": "Pixi container adapter for Ritmo render-node registries", "author": "Sandro Maglione", "license": "MIT", diff --git a/packages/render/CHANGELOG.md b/packages/render/CHANGELOG.md index ce38251..21ef86b 100644 --- a/packages/render/CHANGELOG.md +++ b/packages/render/CHANGELOG.md @@ -1,5 +1,21 @@ # @typeonce/ritmo-render +## 0.10.0 + +### Patch Changes + +- 7002f4d: **Everything a game's agent needs now ships with the packages, and `ritmo-devtools lint` reports simulation modules the lint rules miss.** + + - **Breaking: `ritmo-devtools lint` fails on an uncovered simulation module.** Every module the entry loads that the `ritmo/keep-simulation-headless` override in `.oxlintrc.json` does not cover is reported as `uncovered-simulation-module`, and the command exits 1. Add the module (or its folder) to the simulation override's `"files"`, or stop importing values from it. Modules loaded only inside `lintTarget` are not checked. Requires Node 22.15 or newer (`engines.node` is now `>=22.15`). + - **An agent skill ships with `@typeonce/ritmo`** in `skills/ritmo/SKILL.md`, for every change: where the docs are, and principles for where a game's code and state belong. Link it into the folder the game's agent reads skills from, for example `ln -s ../../node_modules/@typeonce/ritmo/skills/ritmo .agents/skills/ritmo`. `SETUP.md` in `@typeonce/ritmo` is the one-time setup: the base packages and checks every game uses, the add-ons, and linking the skill. + - **Every package ships its `CHANGELOG.md`.** The upgrade notes for 0.8.0 and 0.9.0 are in the `@typeonce/ritmo` changelog. + - **JSDoc corrections.** Examples no longer provide randomness or time as services (use the `Random` resource and `Clock`), the `Command` module example declares its commands, inspector docs state that `added`/`changed` reads report records since the inspector's previous evaluation, and every example uses prefixed names (`"Game/Position"`). Guidance that lived only in the repository's guides (spawn order, `ReadonlyValue` helpers, re-entering a state, `thisTick` and plugin systems, service effects and rollback) is now in the JSDoc. + - Package READMEs link other packages' READMEs by GitHub URL, so the links work on npm. + +- Updated dependencies [7002f4d] +- Updated dependencies [388a696] + - @typeonce/ritmo@0.10.0 + ## 0.9.0 ### Patch Changes diff --git a/packages/render/package.json b/packages/render/package.json index 679ab02..53a6eaa 100644 --- a/packages/render/package.json +++ b/packages/render/package.json @@ -1,6 +1,6 @@ { "name": "@typeonce/ritmo-render", - "version": "0.9.0", + "version": "0.10.0", "description": "Renderer-agnostic entity-to-node mirroring for Ritmo", "author": "Sandro Maglione", "license": "MIT",