@its-not-rocket-science/ananke 0.1.59 → 0.1.61

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/package.json +9 -2
package/CHANGELOG.md CHANGED
@@ -6,6 +6,43 @@ Versioning follows [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ---
8
8
 
9
+ ## [0.1.61] — 2026-04-01
10
+
11
+ ### Added
12
+
13
+ - **PM-2 — Package-Boundary Enforcement in CI (complete):**
14
+ - `tools/check-package-boundaries.ts` (new): static import-graph analyser mapping all 207 src/ files to their planned `@ananke/*` package. Reports:
15
+ - **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).
16
+ - **Suspicious cross-boundary imports** — peer-layer imports (`combat↔campaign`, `combat↔content`, `content↔campaign`) grouped by edge with file:line references and example paths.
17
+ - **Cross-package import matrix** — NxN table showing import counts between packages, annotated ✓ (allowed) or ✗ (violation).
18
+ - **Source size estimate** — raw TypeScript byte counts per package (core 341 KB, combat 499 KB, campaign 833 KB, content 248 KB).
19
+ - **Unmapped files** — 9 files not yet in the mapping (atmosphere, battle-bridge, debug, host-loop, index, parallel, sensory, terrain-bridge).
20
+ - Flags: `--strict` (exit 1 on hard violations), `--json` (machine-readable output).
21
+ - `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.
22
+ - `docs/api-surface-core.md` — 125 exports
23
+ - `docs/api-surface-combat.md` — 221 exports
24
+ - `docs/api-surface-campaign.md` — 691 exports
25
+ - `docs/api-surface-content.md` — 103 exports (1140 total)
26
+ - `"ci"` script now runs `check-boundaries` after test coverage, making cross-boundary drift visible in CI output.
27
+ - npm scripts: `check-boundaries`, `check-boundaries:strict`, `extract-api`.
28
+ - 0 new tests (5,569 total — tools only). Coverage unchanged: 97.11% stmt, 88.08% branch, 95.82% func. Build: clean.
29
+
30
+ ---
31
+
32
+ ## [0.1.60] — 2026-03-31
33
+
34
+ ### Added
35
+
36
+ - **PM-1 — First-Party Reference Builds (complete):**
37
+ - `examples/reference/tactical-duel/` — end-to-end tactical demonstration: combat, anatomy, AI, `serializeBridgeFrame`, `hashWorldState`, `ReplayRecorder`. Runs in < 1 ms/tick; produces a replay file comparable with `npx ananke replay diff`. Includes architecture doc and pain-points guide.
38
+ - `examples/reference/campaign-sandbox/` — turn-based world simulation: four polities (Rome, Carthage, Athens, Sparta) with trade, alliances, population dynamics, plague outbreak, inter-polity spread, save/reload via `stampSnapshot`. Runs in < 1 ms/day. Includes full `README.md` with correct API signatures.
39
+ - `examples/reference/species-lab/` — xenobiology lab: attribute profiles for 6 species (Elf, Dwarf, Orc, Goblin, Troll, Halfling), extended-senses predicates, round-robin combat tournament (100 seeds × 15 matchups) with outcome distributions and physics insights. Quick mode (`--quick`) completes 150 trials in < 1 s. Includes pain-points guide and extension examples.
40
+ - Each reference build includes: architecture diagram, package choices rationale, measured performance envelope, pain points encountered and resolved, extension examples.
41
+ - npm scripts: `ref:tactical-duel`, `ref:campaign-sandbox`, `ref:species-lab`, `ref:species-lab:quick`.
42
+ - ROADMAP: PM-1 through PM-10 added (Platform Maturity Roadmap); PA-1, PA-5–PA-8 marked complete.
43
+
44
+ ---
45
+
9
46
  ## [0.1.59] — 2026-03-30
10
47
 
11
48
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@its-not-rocket-science/ananke",
3
- "version": "0.1.59",
3
+ "version": "0.1.61",
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",
@@ -268,6 +271,10 @@
268
271
  "example:species": "node dist/examples/quickstart-species.js",
269
272
  "example:lockstep": "node dist/examples/lockstep-server.js",
270
273
  "example:rollback": "node dist/examples/rollback-client.js",
274
+ "ref:tactical-duel": "node dist/examples/reference/tactical-duel/index.js",
275
+ "ref:campaign-sandbox": "node dist/examples/reference/campaign-sandbox/index.js",
276
+ "ref:species-lab": "node dist/examples/reference/species-lab/index.js",
277
+ "ref:species-lab:quick": "node dist/examples/reference/species-lab/index.js --quick",
271
278
  "generate-module-index": "node dist/tools/generate-module-index.js",
272
279
  "pack": "node dist/tools/pack-cli.js pack",
273
280
  "generate-fixtures": "node dist/tools/generate-fixtures.js",