From a1a158b8d0ee9758120a135ced5fa26da339ec65 Mon Sep 17 00:00:00 2001 From: monkey-w1n5t0n Date: Tue, 21 Jul 2026 13:23:11 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20burn=20down=20plan=20=C2=A73,=20record?= =?UTF-8?q?=20Phase=202's=20two=20deliberate=20deviations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plan §3 marked burned down, noting where execution departed from the written plan and why: L35 deleted rather than relocated (zero consumers), and S35's describe ABI widening forcing two out-of-scope buffer fixes. Also records the package.json test-glob bug found en route — new unit tests were silently not being run. ALIGNMENT defect 5's trailing sentence updated: the behaviour bugs it listed as pending are fixed. --- ALIGNMENT.md | 2 +- docs/specs/plans/simplification-plan.md | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ALIGNMENT.md b/ALIGNMENT.md index bca5842..342cd6f 100644 --- a/ALIGNMENT.md +++ b/ALIGNMENT.md @@ -50,7 +50,7 @@ The clean-slate rewrite (2026-04-29) consolidated everything into one C++20 code **Why it blocks the mission.** The registries are dual-truth bugs waiting to fire (one already did: the selftest table). Stale specs are agent-confusing surface area. -**Rough cost.** Plan phase 3 (~2–3 days, codegen takes ownership) plus the docs disposition pass (§8). Behaviour bugs found en route (dataset-cap divergence 100 vs 128 + OOB read, VCV 2-D input truncation, VCV audio-thread race + JSON) are plan §3. +**Rough cost.** Plan phase 3 (~2–3 days, codegen takes ownership) plus the docs disposition pass (§8). The behaviour bugs found en route (dataset-cap divergence, VCV 2-D input truncation, VCV audio-thread race and JSON) were fixed in phase 2 on 2026-07-21. ### 6. No performance measurement despite a performance-defined mission (2026-07-21) diff --git a/docs/specs/plans/simplification-plan.md b/docs/specs/plans/simplification-plan.md index 9e0d179..fb92785 100644 --- a/docs/specs/plans/simplification-plan.md +++ b/docs/specs/plans/simplification-plan.md @@ -48,6 +48,19 @@ All verifier-checked deletions; protected exceptions noted. Rough net effect: th ## §3 Phase 2 — Behaviour bugs (~2 days) +**BURNED DOWN 2026-07-21.** All nine landed with regression tests where testable. Two deviations +from the text below, both deliberate: **L35** was resolved by DELETING the OSC full-state bridge +rather than moving its JSON to the worker — reading the current transport showed both directions +have zero consumers (manifold's osc-client.ts never sends `/nisps/state`|`/nisps/weights` and +bridge.ts drops them), so relocating heap-heavy work to serve nobody was the wrong shape; +`dataToJson`/`dataFromJson` are untouched and still serve Rack patch save/load off the audio +thread. **S35** required extending `nisps_ml_describe` from a 6-int to a 7-int wire format, which +forced matching buffer-size fixes in two call sites outside the finding's scope +(`wasm-worker.ts`, `parity_wasm.mjs`) that would otherwise have overflowed the WASM heap by 4 +bytes on every call. Also fixed en route: `manifold/package.json`'s test script listed test files +explicitly, so new unit tests were silently not run — now a glob. + + - **S35** Dual example store: name `kDefaultMaxExamples = 128` once in nisps, expose via `nisps_ml_describe`, align the TS mirror (currently 100) — fixes `train()`/`trainAsync()` diverging past 100 examples and the latent OOB sample-weight read. - **S10** VCV bridged mode truncates inputs to 2-D: `EngineApi.inputVector()` returns the spine's full N-dim raw vector; VcvBackend tracks/dead-zones the full length. - **L34/L35** VCV plugin RT-safety: worker deep-copies example vectors into staging before flagging; move full-state JSON off Rack's audio thread onto the existing worker (reuse the staged-weights pattern).