docs(plan): P1 burned down; wire golden fixtures test into bun run test

- manifold package.json test script now includes tests/pipeline-golden.test.ts
- MAP.md: manifold exploration modules + tests/fixtures entries
- ONBOARDING.md §engine: exploration.ts + spine setOutputMorph + P3 swap point
- plan P1 marked landed with gate evidence
This commit is contained in:
monkey-w1n5t0n 2026-07-13 23:30:28 +02:00
parent 0ee7f1472c
commit d1f1f45f6b
4 changed files with 29 additions and 11 deletions

10
MAP.md
View file

@ -69,8 +69,14 @@ anchor + locked decisions) and the `docs/specs/*-spec.md` set.
prototype), `rng.ts` (seeded). prototype), `rng.ts` (seeded).
- `manifold/src/settings/``settings-store.ts` (monochrome icons, input-map shape, corner radius). - `manifold/src/settings/``settings-store.ts` (monochrome icons, input-map shape, corner radius).
- `manifold/src/serial/``memlnaut-serial.ts` Web Serial scaffold + `EditorPanel.tsx` (MEMLNaut Editor mode). - `manifold/src/serial/``memlnaut-serial.ts` Web Serial scaffold + `EditorPanel.tsx` (MEMLNaut Editor mode).
- `manifold/src/debug/probe.ts``window.__nisps` (`?debug=1`). `manifold/tests/e2e/smoke.spec.ts`. E2E on the - `manifold/src/engine/exploration.ts` (+ `jolt.ts`, `ou-explore.ts`) — Jolt press + OU explore gestures
VPS runs via non-snap node (see BUILD-PLAN). `manifold/osc-bridge/` — Deno WS↔UDP-OSC bridge. (Learning drawer). Interim TS math from the retired playground via get/set-weights + the spine's
`setOutputMorph` hook; marked `P3 SWAP POINT` for the WASM bindings.
- `manifold/src/debug/probe.ts``window.__nisps` (`?debug=1`). `manifold/tests/e2e/``smoke`,
`probe-api` (15-test engine-contract port), `spine` (spine invariant + probe-survives-mode-switch).
E2E on the VPS runs via non-snap node (see BUILD-PLAN). `manifold/tests/fixtures/` — golden parity
fixtures (gesture trace, curves, input/output pipelines) captured 2026-07-13 pre-P4, guarded by
`tests/pipeline-golden.test.ts` (in `bun run test`). `manifold/osc-bridge/` — Deno WS↔UDP-OSC bridge.
### `vcv/` — VCV Rack 2 plugin (MEMLNaut module, WIP) ### `vcv/` — VCV Rack 2 plugin (MEMLNaut module, WIP)
Native C++ Rack module: ML CV-mapper with RL feedback + a browser bridge. Currently 2→12 (being evolved to Native C++ Rack module: ML CV-mapper with RL feedback + a browser bridge. Currently 2→12 (being evolved to

View file

@ -82,15 +82,22 @@ Each phase ends green on its test gate and is independently landable. File phase
- ✅ `ml-debug.log`/`graphify-out/` were already absent from the tree; `.claude/worktrees/` gitignored. - ✅ `ml-debug.log`/`graphify-out/` were already absent from the tree; `.claude/worktrees/` gitignored.
- **Gate met:** `run-all-tests.sh` green (Playwright leg via the BUILD-PLAN non-snap-node VPS runner); parity PASS reading `manifold/public/` (max delta 2.4e-7); manifold typecheck+build green against the freshly-built artifact. - **Gate met:** `run-all-tests.sh` green (Playwright leg via the BUILD-PLAN non-snap-node VPS runner); parity PASS reading `manifold/public/` (max delta 2.4e-7); manifold typecheck+build green against the freshly-built artifact.
### P1 — Retire playground, single TS home (≈1 day) ### P1 — Retire playground, single TS home (≈1 day) — ✅ landed 2026-07-13
- Branch `archive/playground-solidjs` at current main; delete `playground/` from main. - ✅ Branch `archive/playground-solidjs` + tag `playground-solidjs-final`; `playground/` deleted from main.
- Manifold's `src/engine/` is now the only TS spine. Port the two playground-only exploration UIs that Parity fixtures for P4 captured FIRST: `manifold/tests/fixtures/` (288-event gesture trace, curve
manifold lacks (Jolt press gesture, OU explore control) as *UI shells only* — their math arrives in P3; goldens, input/output pipeline goldens under 14+8 configs) + drift-guard `pipeline-golden.test.ts`.
interim they may call the existing `nisps_ml_get/set_weights` route the playground used. Note: input pipeline's momentum path reads `performance.now()` — fixtures pin a clock contract (see
- Move Playwright specs worth keeping (spine invariant, probe API) into `manifold/tests/`. fixtures README). C15 (stub + c15.wasm) now lives only on the archive branch (ALIGNMENT defect #1).
- Retarget every script/doc reference (`CLAUDE.md`, `MAP.md`, deploy script) from playground to manifold. - ✅ Jolt press + OU explore UI shells in the Learning drawer; interim TS math via get/set_weights in
- **Gate:** chokepoint E equivalent — full test script green with playground gone; manifold e2e passes. `manifold/src/engine/{exploration,jolt,ou-explore}.ts`, marked `P3 SWAP POINT`.
- ✅ Keeper Playwright specs ported: `probe-api.spec.ts` (15 tests), `spine.spec.ts` (4). Playground UI/
persistence specs dropped with the playground.
- ✅ References retargeted: run-all-tests stage 5 → manifold, ci.yml manifold-tests job, osc-bridge.yml
(was already broken), codegen TS target removed (returns P5), AGENTS/README/MAP/ALIGNMENT/
AGENT-REFERENCE/specs-MAIN. The VPS deploy webhook already built only manifold — no change needed.
- **Gate met:** full `run-all-tests.sh` green with playground gone (ctest 4/4, parity PASS, lint clean,
manifold 9 unit + 20 e2e).
### P2 — Storage-policy split: templated hardware, dynamic browser (the structural centre, ≈1 wk) ### P2 — Storage-policy split: templated hardware, dynamic browser (the structural centre, ≈1 wk)

View file

@ -179,6 +179,11 @@ a setting → `--r-*` tokens.
- `dataset.ts` — JS-side example store + sample-weight modes (uniform/recency/spatial/combined). - `dataset.ts` — JS-side example store + sample-weight modes (uniform/recency/spatial/combined).
- `curves.ts` — math primitives. **Must stay lockstep with C++ `nisps/core/math.hpp`** (golden tests - `curves.ts` — math primitives. **Must stay lockstep with C++ `nisps/core/math.hpp`** (golden tests
compare WASM vs TS). `sink.ts``EngineSink` framework boundary. `types.ts` — C-ABI surface types. compare WASM vs TS). `sink.ts``EngineSink` framework boundary. `types.ts` — C-ABI surface types.
- `exploration.ts``ExplorationController` adapter for the Jolt press + OU explore gestures
(Learning drawer). Interim TS math in `jolt.ts` / `ou-explore.ts` (ported from the retired
playground), driven via get/set-weights; OU applies through the spine's inert-by-default
`setOutputMorph` hook. The `─── P3 SWAP POINT ───` comment marks where the one-core-engine plan
swaps these for `nisps_ml_jolt_press/release` + `nisps_ml_explore_intensity` WASM bindings.
### Inputs — `src/inputs/` ### Inputs — `src/inputs/`
- `input-layer.ts` — composition hub. One rAF loop polls sources, pulls all axes into a vector, - `input-layer.ts` — composition hub. One rAF loop polls sources, pulls all axes into a vector,

View file

@ -9,7 +9,7 @@
"build": "tsc --noEmit && vite build", "build": "tsc --noEmit && vite build",
"preview": "vite preview --port 4273", "preview": "vite preview --port 4273",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"test": "bun test src", "test": "bun test src tests/pipeline-golden.test.ts",
"test:e2e": "playwright test", "test:e2e": "playwright test",
"test:e2e:headed": "playwright test --headed" "test:e2e:headed": "playwright test --headed"
}, },