From cd7562e3f18925559e9a5340c72a55b5be17aa87 Mon Sep 17 00:00:00 2001 From: AlexZ005 Date: Tue, 22 Sep 2026 00:45:39 +0300 Subject: [PATCH] [docs] 1.16.0 "Waves, and one world to keep": changelog and CLAUDE.md status entry - CHANGELOG: the 1.16.0 section (the Waves game + the format-2/format-1 content refs, the simulate-race rule + the external-hold knock fix, the open-core-m1 housekeeping line), in the wording the four 29f lanes wrote for the integrator. - CLAUDE.md: the round-3 status entry; the older duplicate of the "TWO PLAY PRESSES" gotcha (round 1, still calling the rule an open ticket) dropped in favour of the copy PR #236 wrote. - Gates on the union (7d0010d = #233 #234 #235 #236 over v1.15.1): build green, svelte-check 336/47 identical list, vitest 196; battery under the e2e lock: open-core-m1 18/0, dial-metadata 44/0 (first run 29/1 "context destroyed by navigation", green on re-run), ai-presets 46/0, scene-physics-state 37/0, session-scenes 36/0, knock-node 50/0, knock-physics 77/0, throw-peer 28/0, play-interact 46/0, game-towers 20/0, game-stars-room 36/0, templates-modal 45/0, template-modules 27/0, game-untangle 46/0, game-dungeon-realms 64/0, game-football 136/0, game-waves 90/0; modules flights football 93/0, door-keypad 13/0. Co-Authored-By: Claude Fable 5.1 --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ CLAUDE.md | 26 +++++++++++++++++--------- 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19a4a5f5..f5ee71c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,34 @@ per release, newest first. HTML comments like this one are stripped before rendering, so maintainer notes stay out of the user-facing window. --> +## 1.16.0 โ€” Waves, and one world to keep ๐ŸŒŠ + +### ๐ŸŽฎ A new game, and a Games tab that can move again + +- ๐ŸŒŠ **Waves โ€” a new game on the Games tab.** Hold the goal against three waves of enemies + walking in from the spawn pads; knock them down, the round ends when the last one falls. Two + players plus a late joiner see the same wave, and every kill is credited to the hand that made + it. (Needs the `health` and `waves` modules; the card offers to install them.) +- ๐ŸŽฎ **Seven games, not three.** The scenes and packs feeds are pinned to `format-2` / `format-1` + refs instead of `v2` / `v1`. jsDelivr treated those as immutable version numbers, so the Games + tab could never see a scene released after the first resolve (#230). + +### ๐ŸฅŠ Physics that holds up with two players + +- โš–๏ธ **Two players pressing Play at the same moment no longer start two physics simulations.** + The lower peer id keeps the world and the other hands it over cleanly โ€” a toast names the + handover, and a third player watching agrees with them. +- ๐ŸฅŠ **Knocking a moving target works on the host too.** A body another writer was moving (a + module walking it, a peer's stream) read as "carried" to the knock on the peer running the + simulation, so the host's hand passed through it. The hit is now logged and shared; the shove + alone is skipped. + +### ๐Ÿงน Housekeeping + +- ๐Ÿงช `open-core-m1`'s drawer-mount check had been asserting the pre-tabbed connect drawer since + 2026-07-25 and was carried as a known red ever since; it now drives the Rooms shortcut the app + actually offers, and the suite is green. No product change. + ## 1.15.1 โ€” Knock, and a key you never typed ๐Ÿ”‘ ### ๐Ÿšช Gated cloud rooms work end to end diff --git a/CLAUDE.md b/CLAUDE.md index 62c38d51..9de987e5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4396,15 +4396,6 @@ loadable play content. Everything a user does must be visible to connected peers suite that polls `flowValues` for "all N lit" can only ever catch it for one publish. Assert the TRIGGER LOG instead, folded to seconds-of-day the way `retiredByRound` does. -- **TWO PLAY PRESSES INSIDE THE SIM START-UP WINDOW START TWO SIMULATORS.** `playMode - .maybeSimOnPlay` guards on `simulating || remoteSimulating`, and the `simulate` message has - not landed yet when the second peer's guard runs โ€” so both simulate. Measured (24-B R1): after - B's hit the ball on A sat under a permanent `hold: external` fed by B's 30 Hz `move`s (74 in - ~2 s), applyThrow snapped back, no goal could score. The same shape for a late joiner if the - handshake `simulate` push is missing. `game-football` enters Play in ORDER and asserts it; the - modules football flight clicks both Play buttons back-to-back and rides the race. Open ticket: - a peer receiving `simulate` while simulating must yield by a deterministic rule (lower peer id - keeps it). - **A MESH NAME WITH A SPACE ARRIVES UNDERSCORED ON THE PEER** over the object sync (`Entrance plinth` -> `Entrance_plinth`; a LIGHT keeps its space). Graphs bind by uuid so games work; a suite asserting a peer's objects must do so by UUID (`game-dungeon-realms`). @@ -4799,6 +4790,23 @@ override for e2e โ€” never share 5173 (the user's main-checkout server). locked (replicate the INDEX per-item opt-in; ONE mesh with scenes as tags; scene-is-primary renaming), and the vocabulary settled: **session = the mesh, room = who is in a scene, PocketBase rooms stay DISCOVERY** โ€” that naming blocks R4. +- Status (2026-09-22): **1.16.0 "Waves, and one world to keep" โ€” ROADMAP 29 ROUND 3, the follow-up + round closed by the integrator (lane `29f-integrate`).** Merged: core #236 + modules #14 (the + simulate-race rule, `simAuthority.js`: a peer receiving `simulate` while simulating yields to the + LOWER peer id โ€” see the gotcha and the architecture bullet beside `throwVelocity`), on top of the + already-merged #233 (the standing `open-core-m1` red was the TEST asserting the pre-tabbed drawer + since 2026-07-25 โ€” 18/18 now), #235 (content refs `scenes@format-2` / `packs@format-1`, core #230) + and #234 (the `waves` template def in `MODULE_DEFS` + suite `game-waves`, and the knock fix: a body + under an EXTERNAL physics hold โ€” a module walking it โ€” is HIT, not carried, on the initiator too). + Scenes: the `games/waves` row released and `format-2` retagged (NEVER `v2`); modules `dev` โ†’ `main` + (waves def env `sunset`, the door-keypad + football flight fixes) and the `waves` index row gained + `"template": "games/waves"` after the scene was served. Cloud: deployed from the tag with the + `VITE_SCENES_BASE=โ€ฆscenes@main` stopgap REMOVED from `.env.deploy` (core defaults to `format-2` + now). Gates on the union: svelte-check 336/47 (identical list), vitest 196, build green, the serial + battery green (see the round-3 execution-log entry in the roadmap 29 master for the counts). OWED + on device: the two-player Play race handover toast + ball continuity at the yield, being hit in VR + in Waves, the Waves card thumbnail framing (`thumb.camera` in the def), the walkers stacking at the + goal, and one EYEBALL: the production Games tab shows seven cards. - Status (2026-09-20): **1.15.1 "Knock, and a key you never typed" โ€” ROADMAP 29 ROUND 2, the two core seams, taken IN-HOUSE by the integrator.** The `29-core-seams` lane had sat ~11 h at a budget checkpoint with nothing committed and a resume prompt nobody sent, so `feat/1.15.1` (off