📖 brief: STATUS + CONTINUATION — Z0-Z2 approved, C1-C4 instructions (Fable review)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
9a7f94759c
commit
b6f1c59e15
@ -225,3 +225,68 @@ FM→string→GODSONIQ and plucks confirm; screenshot for the session log; conso
|
||||
- Don't gate existing users into zero — it's a door, not a wall. `gs_mood` returning
|
||||
users land where they left off.
|
||||
- Keep the first-visit card copy short and Godstrument-voiced. No onboarding-speak.
|
||||
|
||||
---
|
||||
|
||||
# STATUS + CONTINUATION (Fable review, 2026-07-10)
|
||||
|
||||
**Z0–Z2 verified and approved** (commits 2a705e3, d30cea4, 4e44533, 9a7f947): the three-door
|
||||
card, the calm 7+7 ring field, spinning orbs, drag-to-route, the synth-roll assign menu —
|
||||
all live-verified, Z-AC met (bitcoin sang through a sun-opened filter from zero), console
|
||||
clean, syntax clean, field-draw correctly guarded. Genuinely good work.
|
||||
|
||||
Continue from here, in this order:
|
||||
|
||||
## C1. Fix: leaving zero silently DISCARDS the user's build (real bug)
|
||||
|
||||
`exitZeroToMood` always restores `gs_prezero`, replacing routesArr — so a user who built
|
||||
cables in zero and clicks "first light" loses their build with no warning. The brief's
|
||||
intent (§2 graduation): *"leaving zero shows the full field with everything the user
|
||||
built still wired."* Fix: on exit, if the current (zero-built) patch has ≥1 route, offer a
|
||||
small three-way choice (same visual language as the door card, but compact):
|
||||
- **keep my build** — don't restore prezero; just drop the overlay + apply the mood's
|
||||
mutes/gains only (the build stays as the whole patch);
|
||||
- **bring the old world back** — current behavior (restore prezero);
|
||||
- **weave them together** — restore prezero THEN re-registerRoute the zero-built routes
|
||||
on top (registerRoute dedups by source|dest).
|
||||
If the zero build has 0 routes, skip the prompt entirely (current behavior is right).
|
||||
|
||||
## C2. Zero build must survive a reload
|
||||
|
||||
Routes persist via the matrix, but `zeroUI.nodes` (picked feeds / stage orbs) don't — a
|
||||
returning zero-user (gs_mood="0 zero") reloads into an empty stage even though their
|
||||
cables exist. Persist the picks to localStorage (`gs_zeronodes`: {group: [srcKeys]}) on
|
||||
every pick/route; restore in `zeroUI.open()`. Also reconstruct socket lit-state (already
|
||||
done via refreshSockets) — verify with a reload test.
|
||||
|
||||
## C3. Orb interactions beyond drag (touch + depth)
|
||||
|
||||
HTML5 drag doesn't exist on touch, and orbs currently have no menu:
|
||||
- **Tap-to-patch fallback:** click/tap an orb → it "arms" (glow ring, cursor hint);
|
||||
click a socket → routeGroup(armed, dest); click elsewhere → disarm. Keep drag working.
|
||||
- **Right-click an orb** → small menu: member list with × to remove a feed, "unpatch
|
||||
everything from this orb", and (stub for Z3) "💾 save as vibe". Removing the last
|
||||
member removes the orb.
|
||||
- **⛈ graduation affordance:** a small fixed "⛈ enter the storm" pill inside the zero UI
|
||||
(bottom-right above the rack) → runs the C1 exit flow with mood "the full storm".
|
||||
|
||||
## C4 = Z3 (vibes), Z5 (OMNI panel), Z4 (dimensions), Z6 (ship) — per the brief above
|
||||
|
||||
Follow the brief sections 3, 4, 5, 6 as written, with these additions learned since:
|
||||
- The orb right-click "save as vibe" (C3) is the natural zero-mode entry to Z3 — a vibe
|
||||
is exactly one orb's members + the routes they carry.
|
||||
- auth.py vibes store: use the existing `CREATE TABLE IF NOT EXISTS` idiom (auth.py:44-46
|
||||
style) so the server migrates itself on restart — additive only. Test locally against a
|
||||
COPY of godstrument_users.db, never the live file, and remember the deploy never ships
|
||||
the db.
|
||||
- Vibe import parses user-pasted data → validate hard (source/dest against known sets,
|
||||
numeric clamps, 32-route cap, try/catch the base64/JSON). This is a trust boundary.
|
||||
- **Before the Z6 deploy, run the `/ship-check` skill** (pre-deploy security sweep) —
|
||||
this feature set touches auth.py and user-pasted input, which is exactly its territory.
|
||||
- Nit (low): while in zero, the chakra-view key (F3/C) flips chakraMode with nothing
|
||||
drawn — make it a no-op in zero (or have it exit zero first via the C1 flow).
|
||||
|
||||
Keep the cadence: extraction-check → build → verify in the logged-in preview (z0test /
|
||||
zeropass123 account exists) → screenshot → commit per milestone. Deploy only at Z6 after
|
||||
the adversarial review. The grimoire is truth — Z6 writes zero/vibes/dimensions/OMNI-panel
|
||||
sections in the tech-manual style (numbered how-to + spec table) and regenerates the manual.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user