📋 revelation: post-convergence amendments — wlen (len is taken), gates, deploy notes (fable)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
19f17705e6
commit
e6c464daae
@ -4,6 +4,56 @@
|
||||
|
||||
---
|
||||
|
||||
## ⚠ AMENDMENTS — read BEFORE your lane (Fable, 2026-07-14, post-convergence)
|
||||
|
||||
This brief was drafted at `main@b8b1188`, **before** the pantheon merged with the
|
||||
crossover wave (keyroll note-length · world_sats · OpenSky cache · the god's-eye
|
||||
Spirit · 18 post-merge review fixes). The convergence landed as `19f1770`. These
|
||||
amendments override anything they contradict below.
|
||||
|
||||
1. **GATE (replaces §0.2's):** branch from `main` ≥ `19f1770`. Confirm your base
|
||||
has BOTH waves: `grep -c godspeakCommand viz/index.html` ≥ 1 (ε) AND
|
||||
`grep -c attachNoteLengths viz/index.html` ≥ 1 (keyroll) AND
|
||||
`git log --oneline -3` includes the ⚭ convergence commit. If not, STOP.
|
||||
2. **WHEELS — the `len` name is TAKEN.** Keyroll landed `seq.len` as a
|
||||
**per-step ARRAY of note lengths** (see `seqFor`: `len: new Array(16).fill(1)`,
|
||||
plus `migrateSeq`'s `len-default`/`len-badlen` self-checks). WHEELS's per-lane
|
||||
pattern length must be a **different field: `wlen` (int 1–16, default 16)**.
|
||||
Everywhere W.1–W.5 below says `len`, read `wlen`. Your `migrateSeq` additions
|
||||
must coexist with the existing len-array migration (add `wlen` clamping beside
|
||||
it; new self-check assertions for `wlen`, don't touch the len ones).
|
||||
3. **WHEELS × keyroll indexing:** the note branch of `seqTick` now reads
|
||||
`sq.len[cur]` (per-step note length) — with wheels, `cur` becomes
|
||||
`wheelStep(sq)` for BOTH the `steps[]` gate and the `len[]` lookup (one `cur`,
|
||||
used twice — do not let them diverge).
|
||||
4. **WHEELS × exportMid:** the drum block now has an `owned(v, sq)` gate (lanes
|
||||
export only if playing or edited off `DRUM_SEED`) — your absolute-loop rewrite
|
||||
in W.4 must keep that gate exactly. The note track is length-aware with a
|
||||
same-pitch overlap clamp; don't disturb it.
|
||||
5. **TESTAMENT:** the master chain gained nodes since your anchor was written
|
||||
(squash from β; the Schumann layer predates). Grep the actual tail of
|
||||
`build()` for the final limiter node and its name — do not trust `N.lim` as a
|
||||
name, verify it. Also `Synth.pluck` now takes an optional `durMs` — irrelevant
|
||||
to your tap, but don't be surprised by the signature.
|
||||
6. **PSALM:** `Synth.pluck(midi, vel, durMs)` exists — sustained sung notes may
|
||||
pass a duration instead of relying on the fixed decay; treat that as an
|
||||
allowed (flag-it-in-report) enhancement, not scope creep. The mic-analysis
|
||||
AudioContext isolation rule stands.
|
||||
7. **CANON:** factory patches must survive `migrateSeq` with the NEW fields
|
||||
(len arrays, `wlen` once WHEELS lands, `locked`, `kit`) — author them by
|
||||
exporting real patches from a post-WHEELS build, never by hand-writing JSON.
|
||||
8. **Regression additions to §0.7:** the groove self-check must stay green
|
||||
(it now asserts len-array migration), and the god's-eye skin must still cycle
|
||||
(right-click → skin) with zero console errors — it shares the overlay/render
|
||||
path some of you will be near.
|
||||
9. **Deploy note for ω (the closer):** the production box is currently TWO waves
|
||||
behind and its venv still lacks `sgp4` — the deploy checklist you prepare must
|
||||
start with `/home/humanjing/godstrument/.venv/bin/pip install sgp4`, then the
|
||||
CLAUDE.md filtered rsync, then restart. GODSPEAK stays local-rig-only (inert
|
||||
on the VPS); `mlx-whisper` must never enter `requirements.txt`.
|
||||
|
||||
---
|
||||
|
||||
## Part 0 — shared context
|
||||
|
||||
### 0.1 The four revelations
|
||||
|
||||
Loading…
Reference in New Issue
Block a user