@its-not-rocket-science/ananke 0.1.60 → 0.1.62

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 CHANGED
@@ -6,6 +6,42 @@ Versioning follows [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ---
8
8
 
9
+ ## [0.1.62] — 2026-04-01
10
+
11
+ ### Added
12
+
13
+ - **PM-3 — Supported-Recipes Matrix (complete):**
14
+ - `docs/recipes-matrix.md` (new, auto-generated): 36 recipes across 6 domains (Tactical ⚔️, Campaign 🏰, Content 📦, Renderer 🖼️, Multiplayer 🌐, Tooling 🔧). Each row maps a use case to recommended packages, stability tier (🟢 Stable / 🟡 Experimental), runnable npm script, performance envelope, and save/replay compatibility status. Domain tables, summary counts, and a quick-reference "I want to…" table at the bottom.
15
+ - `tools/generate-recipes-matrix.ts` (new): structured recipe catalogue as TypeScript array; outputs `docs/recipes-matrix.md` deterministically. Run `npm run generate-recipes-matrix` to refresh.
16
+ - `npm run generate-recipes-matrix` script added.
17
+ - README: "Not sure which entry point to use? → Recipes Matrix" note added near the cookbook paragraph; matrix linked first in the Further Reading table.
18
+ - 0 new tests (5,569 total). Coverage unchanged. Build: clean.
19
+
20
+ ---
21
+
22
+ ## [0.1.61] — 2026-04-01
23
+
24
+ ### Added
25
+
26
+ - **PM-2 — Package-Boundary Enforcement in CI (complete):**
27
+ - `tools/check-package-boundaries.ts` (new): static import-graph analyser mapping all 207 src/ files to their planned `@ananke/*` package. Reports:
28
+ - **Hard violations** — files classified as `@ananke/core` that import from `@ananke/combat`, `@ananke/campaign`, or `@ananke/content` (86 identified; all expected in Phase 1 monolith, must be resolved in Phase 2 source migration).
29
+ - **Suspicious cross-boundary imports** — peer-layer imports (`combat↔campaign`, `combat↔content`, `content↔campaign`) grouped by edge with file:line references and example paths.
30
+ - **Cross-package import matrix** — NxN table showing import counts between packages, annotated ✓ (allowed) or ✗ (violation).
31
+ - **Source size estimate** — raw TypeScript byte counts per package (core 341 KB, combat 499 KB, campaign 833 KB, content 248 KB).
32
+ - **Unmapped files** — 9 files not yet in the mapping (atmosphere, battle-bridge, debug, host-loop, index, parallel, sensory, terrain-bridge).
33
+ - Flags: `--strict` (exit 1 on hard violations), `--json` (machine-readable output).
34
+ - `tools/extract-api.ts` (new): public API surface extraction — scans each package's entry-point source files for exported symbols, generates `docs/api-surface-<package>.md` with grouped tables (types/interfaces, enums, functions, constants, classes) and a source-file index.
35
+ - `docs/api-surface-core.md` — 125 exports
36
+ - `docs/api-surface-combat.md` — 221 exports
37
+ - `docs/api-surface-campaign.md` — 691 exports
38
+ - `docs/api-surface-content.md` — 103 exports (1140 total)
39
+ - `"ci"` script now runs `check-boundaries` after test coverage, making cross-boundary drift visible in CI output.
40
+ - npm scripts: `check-boundaries`, `check-boundaries:strict`, `extract-api`.
41
+ - 0 new tests (5,569 total — tools only). Coverage unchanged: 97.11% stmt, 88.08% branch, 95.82% func. Build: clean.
42
+
43
+ ---
44
+
9
45
  ## [0.1.60] — 2026-03-31
10
46
 
11
47
  ### Added
package/README.md CHANGED
@@ -96,6 +96,8 @@ for (let tick = 0; tick < 2000; tick++) {
96
96
  `stepWorld` is the only function that mutates state. Everything else is pure computation.
97
97
  Call it at 20 Hz for real-time simulation; 1 Hz or lower for campaign-scale time.
98
98
 
99
+ Not sure which entry point to use? See the **[Recipes Matrix](docs/recipes-matrix.md)** — use case → package → stability → runnable example → performance in one table.
100
+
99
101
  For task-oriented walkthroughs, see the **[Simulation Cookbook](docs/cookbook.md)** — 12 recipes
100
102
  from "Simulate a duel" to "Load a content pack", each with step-by-step code and expected output.
101
103
 
@@ -414,6 +416,7 @@ Ananke's outputs are validated against historical and experimental sources:
414
416
 
415
417
  | Document | What's in it |
416
418
  |---|---|
419
+ | [`docs/recipes-matrix.md`](docs/recipes-matrix.md) | **Start here** — use case → package → stability → example → performance in one table |
417
420
  | [`docs/cookbook.md`](docs/cookbook.md) | Task-oriented recipes — duel, 500-agent battle, species, renderer, campaign, replay, and more |
418
421
  | [`docs/module-index.md`](docs/module-index.md) | All 41 entry points — stability tier, use case, key exports, doc links |
419
422
  | [`docs/host-contract.md`](docs/host-contract.md) | Stable integration surface — everything needed to embed Ananke without reading `src/` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@its-not-rocket-science/ananke",
3
- "version": "0.1.60",
3
+ "version": "0.1.62",
4
4
  "type": "module",
5
5
  "description": "Deterministic lockstep-friendly SI-units RPG/physics core (fixed-point TS)",
6
6
  "license": "MIT",
@@ -247,7 +247,10 @@
247
247
  "test": "vitest run",
248
248
  "test:watch": "vitest",
249
249
  "test:coverage": "vitest run --coverage",
250
- "ci": "npm run build && npm run test:coverage",
250
+ "ci": "npm run build && npm run test:coverage && npm run check-boundaries",
251
+ "check-boundaries": "node dist/tools/check-package-boundaries.js",
252
+ "check-boundaries:strict": "node dist/tools/check-package-boundaries.js --strict",
253
+ "extract-api": "node dist/tools/extract-api.js",
251
254
  "lint": "node tools/lint-open.mjs",
252
255
  "run:demo": "node dist/tools/run-demo.js",
253
256
  "run:vertical-slice": "node dist/tools/vertical-slice.js",
@@ -273,6 +276,7 @@
273
276
  "ref:species-lab": "node dist/examples/reference/species-lab/index.js",
274
277
  "ref:species-lab:quick": "node dist/examples/reference/species-lab/index.js --quick",
275
278
  "generate-module-index": "node dist/tools/generate-module-index.js",
279
+ "generate-recipes-matrix": "node dist/tools/generate-recipes-matrix.js",
276
280
  "pack": "node dist/tools/pack-cli.js pack",
277
281
  "generate-fixtures": "node dist/tools/generate-fixtures.js",
278
282
  "generate-zoo": "node dist/tools/generate-zoo.js",