@its-not-rocket-science/ananke 0.1.68 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +274 -0
- package/README.md +150 -431
- package/STABLE_API.md +113 -490
- package/conformance/README.md +46 -44
- package/conformance/lockstep-sequence.json +395 -395
- package/conformance/phase-order.json +21 -0
- package/conformance/replay-parity.json +65 -65
- package/conformance/state-hash-regression.json +39 -0
- package/conformance/state-hash.json +23 -22
- package/dist/src/conformance.d.ts +8 -2
- package/dist/src/content/index.d.ts +3 -0
- package/dist/src/content/index.js +2 -0
- package/dist/src/content/injector.d.ts +19 -0
- package/dist/src/content/injector.js +61 -0
- package/dist/src/content/loader.d.ts +3 -0
- package/dist/src/content/loader.js +170 -0
- package/dist/src/content/types.d.ts +56 -0
- package/dist/src/content/types.js +1 -0
- package/dist/src/content/validator.d.ts +6 -0
- package/dist/src/content/validator.js +14 -0
- package/dist/src/content-pack.d.ts +3 -2
- package/dist/src/content-pack.js +205 -10
- package/dist/src/data-governance.d.ts +73 -0
- package/dist/src/data-governance.js +188 -0
- package/dist/src/debug.d.ts +6 -0
- package/dist/src/debug.js +9 -0
- package/dist/src/determinism.d.ts +12 -0
- package/dist/src/determinism.js +93 -0
- package/dist/src/dialogue.d.ts +41 -0
- package/dist/src/dialogue.js +113 -2
- package/dist/src/economy.d.ts +97 -3
- package/dist/src/economy.js +191 -37
- package/dist/src/history/autosave.d.ts +19 -0
- package/dist/src/history/autosave.js +98 -0
- package/dist/src/history/timetravel.d.ts +28 -0
- package/dist/src/history/timetravel.js +61 -0
- package/dist/src/index.d.ts +19 -31
- package/dist/src/index.js +20 -38
- package/dist/src/model3d.js +63 -2
- package/dist/src/narrative/combat-logger.d.ts +25 -0
- package/dist/src/narrative/combat-logger.js +97 -0
- package/dist/src/narrative/plausibility.d.ts +30 -0
- package/dist/src/narrative/plausibility.js +70 -0
- package/dist/src/narrative-layer.d.ts +2 -0
- package/dist/src/narrative-layer.js +2 -0
- package/dist/src/navigation/causal-chain.d.ts +26 -0
- package/dist/src/navigation/causal-chain.js +74 -0
- package/dist/src/netcode.d.ts +1 -1
- package/dist/src/netcode.js +1 -1
- package/dist/src/performance/adaptive-tick.d.ts +23 -0
- package/dist/src/performance/adaptive-tick.js +50 -0
- package/dist/src/plugins/loader.d.ts +23 -0
- package/dist/src/plugins/loader.js +86 -0
- package/dist/src/plugins/registry.d.ts +11 -0
- package/dist/src/plugins/registry.js +28 -0
- package/dist/src/plugins/types.d.ts +31 -0
- package/dist/src/plugins/types.js +7 -0
- package/dist/src/replay.js +5 -2
- package/dist/src/scenario.js +2 -1
- package/dist/src/serialization/binary.d.ts +5 -0
- package/dist/src/serialization/binary.js +193 -0
- package/dist/src/session.d.ts +115 -0
- package/dist/src/session.js +228 -0
- package/dist/src/sim/ai/decide.js +1 -1
- package/dist/src/sim/ai/personality.js +2 -2
- package/dist/src/sim/bodyplan.d.ts +30 -0
- package/dist/src/sim/context.d.ts +2 -0
- package/dist/src/sim/kernel.js +80 -1294
- package/dist/src/sim/normalization.d.ts +12 -0
- package/dist/src/sim/normalization.js +92 -0
- package/dist/src/sim/resolvers/attack-resolver.d.ts +30 -0
- package/dist/src/sim/resolvers/attack-resolver.js +310 -0
- package/dist/src/sim/resolvers/capability-resolver.d.ts +15 -0
- package/dist/src/sim/resolvers/capability-resolver.js +270 -0
- package/dist/src/sim/resolvers/grapple-resolver.d.ts +28 -0
- package/dist/src/sim/resolvers/grapple-resolver.js +70 -0
- package/dist/src/sim/resolvers/shoot-resolver.d.ts +27 -0
- package/dist/src/sim/resolvers/shoot-resolver.js +212 -0
- package/dist/src/sim/resolvers/treat-resolver.d.ts +16 -0
- package/dist/src/sim/resolvers/treat-resolver.js +77 -0
- package/dist/src/sim/step/apply/intents.d.ts +6 -0
- package/dist/src/sim/step/apply/intents.js +83 -0
- package/dist/src/sim/step/kernel-pipeline.d.ts +9 -0
- package/dist/src/sim/step/kernel-pipeline.js +15 -0
- package/dist/src/sim/step/phases/capability-phase.d.ts +8 -0
- package/dist/src/sim/step/phases/capability-phase.js +65 -0
- package/dist/src/sim/step/phases/cooldowns-phase.d.ts +3 -0
- package/dist/src/sim/step/phases/cooldowns-phase.js +37 -0
- package/dist/src/sim/step/phases/prepare-phase.d.ts +10 -0
- package/dist/src/sim/step/phases/prepare-phase.js +33 -0
- package/dist/src/sim/step/pipeline.d.ts +2 -0
- package/dist/src/sim/step/pipeline.js +15 -0
- package/dist/src/sim/step/resolvers/impact-resolver.d.ts +9 -0
- package/dist/src/sim/step/resolvers/impact-resolver.js +55 -0
- package/dist/src/sim/step/world-phases.d.ts +7 -0
- package/dist/src/sim/step/world-phases.js +15 -0
- package/dist/src/sim/step/world-step-context.d.ts +23 -0
- package/dist/src/sim/step/world-step-context.js +1 -0
- package/dist/src/sim/systemic-toxicology.js +1 -1
- package/dist/src/sim/team.js +2 -2
- package/dist/src/sim/testing.js +4 -3
- package/dist/src/sim/toxicology.d.ts +1 -1
- package/dist/src/sim/toxicology.js +1 -1
- package/dist/src/sim/world.d.ts +17 -24
- package/dist/src/snapshot.js +3 -6
- package/dist/src/tier2.d.ts +19 -0
- package/dist/src/tier2.js +21 -0
- package/dist/src/tier3.d.ts +10 -0
- package/dist/src/tier3.js +12 -0
- package/dist/src/version.d.ts +6 -0
- package/dist/src/version.js +8 -0
- package/dist/src/wasm/bridge.d.ts +14 -0
- package/dist/src/wasm/bridge.js +84 -0
- package/dist/src/wasm-kernel.d.ts +2 -0
- package/dist/src/wasm-kernel.js +1 -0
- package/dist/src/world-evolution-backend/engine.d.ts +4 -0
- package/dist/src/world-evolution-backend/engine.js +347 -0
- package/dist/src/world-evolution-backend/host-schema.d.ts +145 -0
- package/dist/src/world-evolution-backend/host-schema.js +375 -0
- package/dist/src/world-evolution-backend/index.d.ts +1 -0
- package/dist/src/world-evolution-backend/index.js +1 -0
- package/dist/src/world-evolution-backend/open-world-host-adapter.d.ts +96 -0
- package/dist/src/world-evolution-backend/open-world-host-adapter.js +208 -0
- package/dist/src/world-evolution-backend/profiles.d.ts +4 -0
- package/dist/src/world-evolution-backend/profiles.js +136 -0
- package/dist/src/world-evolution-backend/public.d.ts +11 -0
- package/dist/src/world-evolution-backend/public.js +7 -0
- package/dist/src/world-evolution-backend/reproducibility.d.ts +8 -0
- package/dist/src/world-evolution-backend/reproducibility.js +35 -0
- package/dist/src/world-evolution-backend/timeline.d.ts +6 -0
- package/dist/src/world-evolution-backend/timeline.js +337 -0
- package/dist/src/world-evolution-backend/types.d.ts +138 -0
- package/dist/src/world-evolution-backend/types.js +1 -0
- package/dist/src/world-evolution-host-backend.d.ts +51 -0
- package/dist/src/world-evolution-host-backend.js +97 -0
- package/dist/src/world-evolution.d.ts +201 -0
- package/dist/src/world-evolution.js +543 -0
- package/dist/src/world-factory.js +2 -1
- package/dist/tools/pack-cli.js +55 -2
- package/docs/bridge-contract.md +140 -332
- package/docs/completion-evidence-dashboard.md +63 -0
- package/docs/host-contract.md +86 -310
- package/docs/host-world-evolution-schema.md +155 -0
- package/docs/integration-primer.md +29 -22
- package/docs/migration-monolith-to-modular.md +102 -120
- package/docs/package-architecture.md +116 -323
- package/docs/plugins/README.md +42 -0
- package/docs/plugins/hooks.md +22 -0
- package/docs/plugins/publishing.md +29 -0
- package/docs/plugins/security-model.md +273 -0
- package/docs/project-overview.md +30 -30
- package/docs/release-dashboard.md +47 -0
- package/docs/session-api.md +127 -0
- package/docs/stable-api-manifest.json +52 -0
- package/docs/trust-dashboard.md +37 -0
- package/docs/versioning.md +256 -245
- package/docs/wire-protocol.md +140 -209
- package/docs/world-evolution-backend.md +200 -0
- package/docs/world-evolution-engine.md +150 -0
- package/docs/world-evolution-host-backend.md +70 -0
- package/docs/world-evolution-orchestration.md +248 -0
- package/package.json +125 -6
- package/schema/content-pack.schema.json +85 -0
- package/schema/plugin.schema.json +57 -0
- package/schema/world-evolution-input.schema.json +196 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,280 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [Unreleased]
|
|
10
|
+
|
|
11
|
+
## [0.5.1] — 2026-06-14
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **STABLE_API.md** — new "Tier-2 stable" section promoting `sim/combat`, `sim/disease`, and `sim/hazard` subpaths to explicit API-stable status (`@minor`-bounded, no breaking changes without a CHANGELOG entry). Includes stable usage examples and a "Path to Tier-1" note.
|
|
16
|
+
- **docs/api/index.html** — new styled API reference landing page: Tier-1/Tier-2 export tables, install CTA with copy button, live npm registry version check, links to TypeDoc generation instructions.
|
|
17
|
+
- **docs/map/index.html** — explanation banner describing the 180-day world simulation; new "Polity Tools" panel for adding custom polities (name, position, colour), linking trade or war routes between any two polities, and clearing custom overlays.
|
|
18
|
+
- **docs/mythology/index.html** — complete JS for chronicle/legend system: `renderChronicle`, `renderLegends`, `addChronicle`, `deleteChronicle`, `promoteToLegend`, `saveChronicle` (localStorage `ananke_chronicles`), `exportChronicle` (JSON download), `importChronicle` (paste JSON), delete and promote buttons per entry.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **docs/conformance/index.html** — combat, disease, and hazard subpaths now shown as "Tier 2 stable ✓" with key exports and coverage detail cards.
|
|
23
|
+
- **docs/editors/scenario-builder.html** — added editor CTA links, Generated TypeScript CTAs (Copy, Download, Save to localStorage, Load), Empirical Reference explanation with 11-dataset dropdown.
|
|
24
|
+
- **docs/data-governance/index.html** — added "What is data governance?" section explaining the three layers: physics provenance, API stability, and release integrity.
|
|
25
|
+
- **docs/world-evolution/index.html** — added "What is world evolution?" section covering Session, Checkpoint, Fork, Diff, and Replay with code references and a typical host workflow walkthrough.
|
|
26
|
+
- **docs/narrative-stress/index.html** — added real-film/book push-scale examples (Gladiator → Dragon Ball Z), completed the beat sequence editor (add + delete beats, live average push display), updated Tier-3 note.
|
|
27
|
+
- **docs/combat/index.html** — added "Your saved archetypes" panel reading `ananke_species`/`ananke_bodyplan` from localStorage; import JSON and clear CTAs; PR contribution instructions.
|
|
28
|
+
- **docs/zoo/index.html** — added three new scenarios (Acid Pool Exposure, Cavalry Charge vs Infantry, Untreated Wound Infection); save/download/import scenario CTAs; contribute sidebar panel.
|
|
29
|
+
- **docs/arena/index.html** — auto-populates fighter selects from saved archetypes; Generate run plan + Execute plan CTAs; import archetype JSON.
|
|
30
|
+
- **docs/environment/index.html** — expanded all five hazard type cards with full effect rows; added three new weather conditions (Hurricane, Extreme Humidity, Rarified Atmosphere); custom hazard creator form (save to localStorage `ananke_hazards`, download `.ts` snippet, import JSON); PR instructions.
|
|
31
|
+
- **docs/epidemiology/index.html** — custom disease profile form (save to `ananke_diseases`, download `.ts` snippet, import JSON) with all DiseaseProfile fields.
|
|
32
|
+
- **docs/economy/index.html** — custom catalogue item form (save to `ananke_items`, download JSON, import JSON).
|
|
33
|
+
- **docs/world-client/index.html** and **docs/world-client/replication-client.html** — added server-requirement banners explaining WebSocket server setup (local `ts-node`, Fly.io/Railway for deployment).
|
|
34
|
+
|
|
35
|
+
## [0.5.0] — 2026-04-23
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- Expanded the Tier-2 experimental session facade documentation and plan artifacts for embedders (`docs/session-api.md`, `docs/session-api-plan.md`) with an explicit contract-level API inventory for the `@its-not-rocket-science/ananke/session` subpath.
|
|
40
|
+
- Added additional world-evolution alias coverage in `test/session-facade.test.ts` to assert `runSession(..., { worldEvolution })` behavior for host-side JSON-first integrations.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- Bumped package version to `0.5.0` and synchronized runtime version source-of-truth files for tag-driven CI/npm release flow alignment.
|
|
45
|
+
- Refreshed release preparation evidence (`docs/release-prep-session-api.md`) to track the current tag-driven release path (`scripts/tag-release.sh` + `.github/workflows/release.yml`).
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## [0.4.1] — 2026-04-23
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- Normalized documentation version references to use `package.json` as canonical source, replaced stale hard-coded Ananke versions in companion docs, and added `npm run check-doc-version-sync` to catch future markdown drift.
|
|
54
|
+
- Performed adopter-confidence docs hardening across README/first-hour/stable API/module/bridge/wire docs and added `docs/support-boundaries.md` to make maintainer promises, exclusions, and version-pinning guidance explicit.
|
|
55
|
+
- Wired the shipped `./session` subpath into host-facing docs (`docs/session-api.md`, module index, and integration primer), explicitly labeling it Tier 2 / experimental and documenting the host lifecycle (`create`, `run`, `fork`, pack load, serialize/deserialize).
|
|
56
|
+
- Added `examples/session-embedding-minimal/` as the canonical NPM-package-style embedding template for the new session facade, covering tactical + world-evolution create/run/fork/serialize workflows using public imports.
|
|
57
|
+
- Refined Tier-2 session facade ergonomics after embedding validation: `runSession` now defaults to one step, request aliases were added (`commandFrames`, `context`, `worldEvolution`), and `loadSessionPack` accepts either `{ manifest, ... }` or a raw manifest for lower-ceremony JSON-first host usage.
|
|
58
|
+
- Added a session subpath consumer smoke test (`test/session-subpath-smoke.test.ts`) and wired it into CI so `@its-not-rocket-science/ananke/session` imports plus `examples/session-embedding-minimal` execution are continuously verified under build/test/coverage gates.
|
|
59
|
+
- Improved `./session` runtime portability for browser/worker embedders by removing a transitive Node-only `node:crypto` dependency from pack checksum logic and guarding `process.env` determinism reads in the tactical kernel.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## [0.4.0] — 2026-04-22
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- Added a new Tier-2 / experimental session facade subpath: `@its-not-rocket-science/ananke/session` (`./session` in package exports) so hosts can opt into a unified session workflow without changing Tier-1 root imports.
|
|
68
|
+
- Added `src/session.ts` with JSON-first session types and helpers: `SessionMode`, `SessionConfig`, `SessionHandle`, `RunSessionRequest`, `RunSessionResult`, `SessionSummary`, `ForkSessionRequest`, and `LoadSessionPackResult`.
|
|
69
|
+
- Added session facade functions: `createSession`, `runSession`, `stepSession`, `getSessionSummary`, `forkSession`, `loadSessionPack`, `serializeSession`, and `deserializeSession`.
|
|
70
|
+
- Added tactical-mode initialization adapters for explicit `WorldState` and scenario JSON (plus optional seed/entity convenience bootstrap).
|
|
71
|
+
- Added world-evolution-mode initialization adapters for canonical snapshots with `ruleset` / `rulesetId`, delegating to existing world-evolution orchestration.
|
|
72
|
+
- Added deterministic serialization envelopes with explicit `schemaVersion`, `engineVersion`, `mode`, and `payload`.
|
|
73
|
+
- Added content-pack integration via `loadSessionPack` that delegates to existing content-pack validation/loading/scenario instantiation APIs.
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
|
|
77
|
+
- Bumped package version to `0.4.0` to reflect the additive new public subpath/API while preserving backward compatibility for existing Tier-1 imports.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## [0.3.0] — 2026-04-04
|
|
82
|
+
|
|
83
|
+
### Added
|
|
84
|
+
|
|
85
|
+
- Added a new AssemblyScript WASM core in `as/world.ts`, `as/combat.ts`, `as/movement.ts`, and `as/ananke-core.ts`, compiled to `wasm/ananke-core.wasm` via `npm run build:wasm:core`.
|
|
86
|
+
- Added TypeScript↔WASM bridge (`src/wasm/bridge.ts`) with automatic TS fallback and new bridge tests (`test/wasm/bridge.test.ts`).
|
|
87
|
+
- Added WASM benchmark runner (`tools/wasm-benchmark.ts`), WASM adapter (`benchmarks/adapters/wasm.ts`), and generated comparison output support under `benchmarks/results/wasm-vs-ts-*.json`.
|
|
88
|
+
- Added cross-platform CI workflow `.github/workflows/wasm-build.yml` for Linux/macOS/Windows WASM builds and determinism fuzzing.
|
|
89
|
+
- Added advanced WASM integration docs and runnable examples (`docs/wasm-integration.md`, `examples/wasm-node.ts`, `examples/wasm-browser.html`).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## [0.2.11] — 2026-04-04
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
|
|
97
|
+
- Corrected Windows-specific doubled-path bug in `tools/generate-release-dashboard.mjs` (replaced `.pathname` with `fileURLToPath` to avoid `C:\C:\...` on Windows).
|
|
98
|
+
- Removed `docs/release-dashboard.md` from `.gitignore`; the file is fully deterministic (derived from `CHANGELOG.md` and `package.json` only, no timestamps) and must be committed for the CI freshness check to work.
|
|
99
|
+
- Fixed API diff workflow: handle missing `docs/api-diff-report.md` gracefully in PR comment step; relax semver enforcement when the Tier-1 API surface is unchanged; correct version-output quoting in the API diff workflow.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## [0.2.10] — 2026-04-03
|
|
104
|
+
|
|
105
|
+
### Added
|
|
106
|
+
|
|
107
|
+
- Automated Tier-1 API surface governance in CI (`enforce-api-surface.yml`): generates an API diff on every PR, posts a comment summarising additions/removals, and fails the build when breaking changes are detected without a major-version bump.
|
|
108
|
+
- Semver policy check script (`scripts/check-semver-policy.sh`) that gates merges requiring incompatible API changes.
|
|
109
|
+
|
|
110
|
+
### Fixed
|
|
111
|
+
|
|
112
|
+
- Switched all non-publish CI workflows from `npm ci` to `npm install` so branches adding new workspace packages do not hard-fail before a lockfile regeneration commit.
|
|
113
|
+
- Synced `package-lock.json` with the `packages/cli` workspace that was added in v0.2.x.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## [0.2.9] — 2026-04-02
|
|
118
|
+
|
|
119
|
+
### Changed
|
|
120
|
+
|
|
121
|
+
- Added a strict first-hour adopter guide in `docs/first-hour-adopter-path.md` focused on stable Tier-1 onboarding and deterministic success criteria.
|
|
122
|
+
- Added `examples/guided-first-hour.ts` as a guided runnable example that uses only stable root APIs (`createWorld`, `stepWorld`, `ReplayRecorder`, `serializeReplay`, `deserializeReplay`, `replayTo`).
|
|
123
|
+
- Updated `README.md` with a "Start here" onboarding section and aligned the core simulation loop snippet with stable `createWorld` usage.
|
|
124
|
+
- Added `npm run example:first-hour` and bumped package version to `0.2.9` with synchronized lockfile.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## [0.2.8] — 2026-04-02
|
|
129
|
+
|
|
130
|
+
### Changed
|
|
131
|
+
|
|
132
|
+
- Reworked `examples/reference/tactical-duel` into a minimal polished reference app that runs a full deterministic duel loop using only Tier-1 stable root APIs (`createWorld`, `stepWorld`, `ReplayRecorder`, `serializeReplay`, `q`).
|
|
133
|
+
- Added a dedicated CI smoke test (`test/reference-tactical-duel-smoke.test.ts`) and wired it into `.github/workflows/ci.yml`.
|
|
134
|
+
- Updated tactical-duel usage documentation to describe the stable-API loop and quick determinism verification workflow.
|
|
135
|
+
- Bumped package version to `0.2.8` and synced lockfile.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## [0.2.7] — 2026-04-02
|
|
140
|
+
|
|
141
|
+
### Changed
|
|
142
|
+
|
|
143
|
+
- Added `docs/completion-evidence-dashboard.md`: an evidence-first completion dashboard that scans repository signals, links roadmap-level claims to concrete artifacts, and explicitly flags weak credibility areas without binary over-claiming.
|
|
144
|
+
- Bumped package version to `0.2.7` and synced lockfile.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## [0.2.6] — 2026-04-02
|
|
149
|
+
|
|
150
|
+
### Changed
|
|
151
|
+
|
|
152
|
+
- Added runtime conformance regression harness coverage in `test/conformance-runtime.test.ts` to validate phase-order stability and execute all state-hash fixtures as deterministic checkpoints.
|
|
153
|
+
- Added `phase-order.json` conformance fixture and runner support for the new `phase-order` fixture kind.
|
|
154
|
+
- Expanded state-hash coverage with a second fixture (`state-hash-regression.json`) covering AI-driven checkpoints at ticks 0/1/5/10/20.
|
|
155
|
+
- Refactored conformance fixture generation to use shared state-hash fixture builders for maintainable fixture expansion.
|
|
156
|
+
- Bumped package version to `0.2.6` and synced lockfile.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## [0.2.5] — 2026-04-02
|
|
161
|
+
|
|
162
|
+
### Changed
|
|
163
|
+
|
|
164
|
+
- Externalized package-boundary mapping and allowed-dependency graph into `tools/package-boundaries.config.json` so boundary definitions are versioned as data.
|
|
165
|
+
- Upgraded `tools/check-package-boundaries.ts` to load mapping config, support markdown report generation (`--report-md=...`), and keep warning-mode as the default while retaining strict mode (`--strict`) for future hard enforcement.
|
|
166
|
+
- Added `npm run check-boundaries:report` and CI integration in `.github/workflows/ci.yml` to run boundary checks on every PR/push and publish the generated report as an artifact (warning mode initially).
|
|
167
|
+
- Generated `docs/package-boundary-report.md` with current cross-package violations and unmapped-file inventory for migration planning.
|
|
168
|
+
- Bumped package version to `0.2.5` and synced lockfile.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## [0.2.4] — 2026-04-02
|
|
173
|
+
|
|
174
|
+
### Changed
|
|
175
|
+
|
|
176
|
+
- Replaced roadmap-wide uppercase **COMPLETE** status claims with maturity-language equivalents (`M4 VALIDATED`) to avoid binary completion framing while preserving historical phase context in narrative text.
|
|
177
|
+
- Added explicit maturity definitions (`M0`..`M4`) to `ROADMAP.md` and linked roadmap status language to subsystem evidence artifacts.
|
|
178
|
+
- Added subsystem maturity matrix in both machine-readable JSON (`docs/maturity-matrix.json`) and human-readable markdown (`docs/maturity-matrix.md`) with evidence pointers to tests, conformance fixtures, source modules, and validation reports.
|
|
179
|
+
- Bumped package version to `0.2.4` and synced lockfile.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## [0.2.3] — 2026-04-02
|
|
184
|
+
|
|
185
|
+
### Changed
|
|
186
|
+
|
|
187
|
+
- Moved legacy entity/world normalization out of `stepWorld` into dedicated normalization utilities (`src/sim/normalization.ts`) so default-repair logic no longer runs in the per-tick hot path.
|
|
188
|
+
- Applied normalization at load/reconstruction boundaries:
|
|
189
|
+
- world construction (`createWorld`, `mkWorld`)
|
|
190
|
+
- scenario loading (`loadScenario`)
|
|
191
|
+
- replay deserialization/replay startup (`deserializeReplay`, `replayTo`)
|
|
192
|
+
- snapshot reconstruction (`applyDiff`)
|
|
193
|
+
- Added migration-focused regression tests for legacy shape normalization across these boundaries in `test/normalization-migration.test.ts`.
|
|
194
|
+
- Bumped package version to `0.2.3` and synced lockfile.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## [0.2.2] — 2026-04-02
|
|
199
|
+
|
|
200
|
+
### Changed
|
|
201
|
+
|
|
202
|
+
- Replaced hidden `__*` world runtime side-channel fields with explicit `world.runtimeState` typing via new `WorldRuntimeState` in `src/sim/world.ts`.
|
|
203
|
+
- Updated kernel, AI, team hostility, snapshot diffing, and serialization pathways to read/write runtime subsystem data through `runtimeState`, preserving deterministic core hashing behavior.
|
|
204
|
+
- Added lint guardrails in `eslint.config.mjs` and regression test `test/no-hidden-runtime-fields.test.ts` to block reintroduction of legacy hidden runtime fields.
|
|
205
|
+
- Updated integration and protocol docs to document the explicit runtime-state pattern.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## [0.2.1] — 2026-04-02
|
|
210
|
+
|
|
211
|
+
### Changed
|
|
212
|
+
|
|
213
|
+
- Introduced deterministic world-step pipeline scaffolding with explicit `WorldStepContext` and stable phase ordering metadata in `src/sim/step/world-step-context.ts` and `src/sim/step/world-phases.ts`.
|
|
214
|
+
- Added regression coverage for phase order in `test/kernel_phase_order.test.ts`.
|
|
215
|
+
- No gameplay mechanics changed; this release is an internal kernel-structure refactor foundation.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## [0.2.0] — 2026-04-02
|
|
220
|
+
|
|
221
|
+
### Changed
|
|
222
|
+
|
|
223
|
+
- **Tier-1 API contraction (host-contract hardening):** root export `@its-not-rocket-science/ananke` now contains only the minimal stable host-facing contract:
|
|
224
|
+
- fixed-point utilities
|
|
225
|
+
- core host-required types
|
|
226
|
+
- world creation / scenario loading
|
|
227
|
+
- stepping
|
|
228
|
+
- replay / serialization
|
|
229
|
+
- bridge extraction
|
|
230
|
+
- Added `docs/stable-api-manifest.json` as the machine-readable Tier-1 source of truth.
|
|
231
|
+
- Added CI guard `check-stable-api` to fail builds if `src/index.ts` exports drift from the manifest.
|
|
232
|
+
- Added explicit aggregate subpaths:
|
|
233
|
+
- `@its-not-rocket-science/ananke/tier2`
|
|
234
|
+
- `@its-not-rocket-science/ananke/tier3`
|
|
235
|
+
|
|
236
|
+
### Migration guide
|
|
237
|
+
|
|
238
|
+
If you previously imported non-core symbols from the root path, migrate as follows:
|
|
239
|
+
|
|
240
|
+
1. **Keep root imports only for Tier-1 symbols** listed in `STABLE_API.md`.
|
|
241
|
+
2. Move removed root imports to explicit subpaths:
|
|
242
|
+
- Tier 2: `@its-not-rocket-science/ananke/tier2` (or existing domain subpaths such as `/combat`, `/campaign`, `/social`, `/narrative`, `/anatomy`, `/crafting`, `/competence`, `/species`, `/polity`, `/catalog`).
|
|
243
|
+
- Tier 3: `@its-not-rocket-science/ananke/tier3`.
|
|
244
|
+
3. Example:
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
// before
|
|
248
|
+
import { stepWorld, BridgeEngine, resolveTacticalEngagement } from "@its-not-rocket-science/ananke";
|
|
249
|
+
|
|
250
|
+
// after
|
|
251
|
+
import { stepWorld } from "@its-not-rocket-science/ananke";
|
|
252
|
+
import { BridgeEngine } from "@its-not-rocket-science/ananke/tier2";
|
|
253
|
+
import { resolveTacticalEngagement } from "@its-not-rocket-science/ananke/tier3";
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Notes
|
|
257
|
+
|
|
258
|
+
- This release intentionally tightens the semver-stable surface to improve long-term supportability.
|
|
259
|
+
- No Tier-1 symbol was removed without a documented migration path.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## [0.1.69] — 2026-04-01
|
|
264
|
+
|
|
265
|
+
### Added
|
|
266
|
+
|
|
267
|
+
- **PM-10 — Maintenance Budget Roadmap (complete):**
|
|
268
|
+
- `docs/maintenance-policy.md` (new): standing maintenance commitments covering:
|
|
269
|
+
- **Docs reconciliation** — `generate-module-index` + `generate-recipes-matrix` must match committed files before every release.
|
|
270
|
+
- **Issue triage cadence** — P0 (regression) same day; P1 (correctness) within one week; P2 (enhancement) roadmap-tracked; P3 (docs) best-effort.
|
|
271
|
+
- **Migration maintenance** — every minor version bump that changes a `@core` field must ship a registered migration in `src/schema-migration.ts`.
|
|
272
|
+
- **SDK parity policy** — Unity, Godot, and Web sidecars must update to the current `BRIDGE_SCHEMA_VERSION` within one minor release.
|
|
273
|
+
- **Example and corpus upkeep** — all `examples/` compile cleanly; `npm run verify-corpus` passes on every release.
|
|
274
|
+
- **Content-pack schema evolution** — minor bumps are backward-compatible; major bumps ship a migration tool.
|
|
275
|
+
- **Coverage floor** — statements 90%, branches 80%, functions 85%, lines 90%.
|
|
276
|
+
- **Deprecation budget** — no more than 10 symbols in deprecated state at once.
|
|
277
|
+
- `docs/maintenance-checklist.md` (new): per-release preparation checklist (10 sections, 30 items) operationalising the policy; includes a hotfix fast-path for P0 regressions.
|
|
278
|
+
- Link added to `README.md` Further Reading table.
|
|
279
|
+
- 0 new tests (5,593 total). Coverage: 97.06%/88.06%/95.83%/97.06%. Build: clean.
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
9
283
|
## [0.1.68] — 2026-04-01
|
|
10
284
|
|
|
11
285
|
### Added
|