Skip to content

21-C C6-b/C7: module-owned template defs for Dungeon Realms and Untangle (author script loader + suites) - #225

Merged
AlexZ005 merged 2 commits into
release/nextfrom
feat/29-c6-template
Sep 19, 2026
Merged

AlexZ005 merged 2 commits into
release/nextfrom
feat/29-c6-template

Conversation

@AlexZ005

@AlexZ005 AlexZ005 commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

What landed

  • scripts/author-templates.cjs: a MODULE_DEFS LOADER region (football, dungeon-realms, untangle) read from
    the sibling modules checkout as modules/<id>/<id>.def.json, and an additive thumb.sceneGroups (scene-root
    module groups cloned into the card render — a dungeon's world is scene-root content, so the card showed a lone arch).
    Absent = byte-identical behaviour. Kept apart from the HUD helper region 29-football edits.
  • tests/e2e/game-dungeon-realms.test.cjs (64 checks, two peers + late joiner, real zips, skip-never-fail): the
    two-module case; the Kit regenerates seed 1337 FROM THE NODE after /clear all (a 777 dungeon before the load is
    replaced); trigger-log assertions on drevent start/victory → Set Game State; HUD Text/lists read the module's
    value/rows nodes; the replicated gem event counts once; grounded resolves from the contract; victory across 5 floors.
  • tests/e2e/game-untangle.test.cjs (44 checks): THE ORDERING (clear → level 1 → node applies level 2, from a level-5
    board), pose as node data (editing boardY on A moves B), trigger-log utevent solved, Counter once, autoAdvance in
    lockstep, no sprite on desktop, the late joiner.
  • Staged scenes content (integrator releases): cloud-lane-29-staging/games/{dungeon-realms,untangle}/.

Gates: npm run build OK; svelte-check identical to base (341 errors / 47 warnings, same list); vitest 143/143;
held suites game-stars-room 36/36, game-towers 20/20 at base.

🤖 Generated with Claude Code

AlexZ005 and others added 2 commits September 19, 2026 15:55
…ne-root groups on the card, the dungeon-realms suite

- scripts/author-templates.cjs: a MODULE_DEFS LOADER region (football, dungeon-realms) - each slug is read
  from the sibling modules checkout as modules/<id>/<id>.def.json (moduleDef), emitted by that module's own
  build so the def and the module cannot drift; `--only <slug>` authors one. Additive `thumb.sceneGroups`:
  a def names scene-root module groups to clone into the card render - a dungeon's world is scene-root
  content (golden rule 5), so the card showed a lone arch. Absent = the picture it always was. Kept
  apart from the HUD helper region 29-football edits.
- tests/e2e/game-dungeon-realms.test.cjs (64 checks; two peers + a late joiner; the real
  games/dungeon-realms/scene.tpscene from the feed / DUNGEON_REALMS_TPSCENE / a sibling scenes checkout;
  dungeon.zip + dungeon-realms.zip from DUNGEON_KIT_ZIP / DUNGEON_REALMS_ZIP / MODULES_REPO / a sibling
  modules checkout / the CDN; skip-never-fail): the two-module requirement list; the 6 arch objects, night
  env, click + grounded play block, the HUD document; the Kit regenerates seed 1337 FROM THE NODE after
  applySession's /clear all (a 777 dungeon before the load is replaced); B over the handshake with the same
  Kit checksum; Start -> the `drevent start` stamp in the TRIGGER LOG -> Set Game State playing on both ->
  the HUD screen; HUD Text reads the Realms Value nodes, HUD lists the Realms HUD Rows; a gem -> B's HUD,
  the replicated gem event counts ONCE (Counter -> HUD Text); P pause / Resume; unseal -> portal -> floor 2
  on both; victory across five floors -> `drevent victory` -> the shell is over; the late joiner reads it
  all. B's objects are asserted by UUID: a mesh name with a space arrives underscored on the peer
  ("Entrance_plinth"; a light keeps its space) and the graph binds by uuid anyway.

Counterfactual: dungeon-realms' game.js no longer pulses the start event -> 3.7 "the On start stamp landed
in the TRIGGER LOG" red (+3.8-3.10, 3.14, 5.2 downstream); restored, module.js byte-identical.

Gates: npm run build OK; svelte-check identical to base (341 errors / 47 warnings, same list); vitest
143/143; held game-stars-room 36/36 and game-towers 20/20 at base. Authored scene staged in
cloud-lane-29-staging/games/dungeon-realms/ (9169 B + 3848 B thumb).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ngle suite

- scripts/author-templates.cjs: `untangle` joins MODULE_DEFS (modules/untangle/untangle.def.json, emitted by
  `npm run build:untangle`); its board is scene-root content too (`thumb.sceneGroups: ['untangle-module']`).
- tests/e2e/game-untangle.test.cjs (46 checks; two peers + a late joiner; the real games/untangle/scene.tpscene
  from the feed / UNTANGLE_TPSCENE / a sibling scenes checkout; untangle.zip from UNTANGLE_ZIP / MODULES_REPO /
  a sibling modules checkout / the CDN; skip-never-fail): THE ORDERING - applySession runs /clear all FIRST
  (the module counts one scene clear) and the graph's Untangle Board node applies LEVEL 2 on the next tick,
  from a level-5 board (not 1, not 5); the SAME file loaded again re-applies level 2 (the node re-armed by the
  clear); the pose is node data (editing boardY on A's node moves B's board and back); B builds the identical
  scramble; Start -> playing + the HUD screen; HUD Text reads the Untangle Value nodes (level, crossings) and
  follows a move; a solve -> the `utevent solved` stamp in the TRIGGER LOG on B, the Counter counts ONCE on
  both, autoAdvance to level 3 in lockstep; no sprite on desktop (the VR-only path); P pause / Resume; the
  late joiner has the room, the level, A's positions and the game shell.

Counterfactual: untangle's onSceneClear no longer re-arms the node -> 1.12 "the same file loaded again ...
the node re-applied LEVEL 2 (a board exists)" red (+2.1, 3.2, 4.3, 4.6, 4.7 downstream); restored,
module.js byte-identical.

Gates: the same build + svelte-check run as C6-b (scripts/ and tests/e2e are outside the app bundle and
the checked sources): build OK, svelte-check identical to base. Authored scene staged in
cloud-lane-29-staging/games/untangle/ (8946 B + 2802 B thumb).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@AlexZ005 AlexZ005 changed the title 21-C C6/C7: Dungeon Kit + Dungeon Realms split, and the Dungeon Realms / Untangle template defs 21-C C6-b/C7: module-owned template defs for Dungeon Realms and Untangle (author script loader + suites) Sep 19, 2026
@AlexZ005
AlexZ005 merged commit 1077be0 into release/next Sep 19, 2026
4 checks passed
@AlexZ005
AlexZ005 deleted the feat/29-c6-template branch September 19, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant