From 989d624af64eff199ae41214c8e559e17ecc40fd Mon Sep 17 00:00:00 2001 From: Labyricorn Date: Mon, 17 Aug 2026 07:16:58 -0700 Subject: [PATCH] Document Channel Points MVP milestone --- .../contents.lr | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .labyricorn/devlog/channel-points-mvp-proof-of-concept/contents.lr diff --git a/.labyricorn/devlog/channel-points-mvp-proof-of-concept/contents.lr b/.labyricorn/devlog/channel-points-mvp-proof-of-concept/contents.lr new file mode 100644 index 0000000..ae20ea8 --- /dev/null +++ b/.labyricorn/devlog/channel-points-mvp-proof-of-concept/contents.lr @@ -0,0 +1,51 @@ +_model: devlog-entry +--- +schema_version: 1 +--- +title: Twungeon becomes a runnable Channel Points proof of concept +--- +date: 2026-08-17 +--- +author: Codex and Christopher Chambers +--- +summary: Twungeon moved beyond its planning baseline with an authoritative local game loop, production-shaped transport and UI boundaries, automated verification, and a deliberate scope correction from Bits to Channel Points resurrection. +--- +tags: implementation, proof of concept, MVP, TypeScript, Twitch, Twitch Extension, Channel Points, Twurple, testing, documentation +--- +source_commit: 222cf903f657dcceb5b309cbd6231d4522e9b077 +--- +body: + +Twungeon now has a runnable proof of concept rather than only a product and +technical plan. The implementation establishes a framework-independent, +authoritative TypeScript game core with player phases, action points, +AutoGuard, movement, combat, healing, death, resurrection, Goblin behavior, +floor advancement, total-party resets, ordered action logs, and stale or +duplicate command rejection. + +A seeded generator produces connected two-room floors, while HTTP and WebSocket +boundaries expose snapshots and authenticated commands. The shared browser UI +supports broadcast and controller use, including the required dormant banner, +map, status, controls, and chronological log. Synthetic identities and events +make the loop usable without Twitch credentials. + +The Twitch boundary is production-shaped but not yet live-accepted. Twurple +handles chat identity and follower checks, the Extension gateway verifies +Twitch JWTs server-side, and EventSub listens for one configured Channel Points +custom reward. Redemption IDs provide deduplication and the stable redeemer ID +must match the dead character owner. + +This milestone also corrects the MVP scope. Earlier planning records described +Bits resurrection; the current PRD, technical specification, checklist, +contracts, implementation, tests, and operator guides now use Channel Points. +Bits and Cheers are explicitly outside the MVP and have no gameplay handler. +The historical entries remain unchanged as a record of the earlier decision. + +The automated gates pass with linting, strict type checking, 19 domain and +generator tests, 6 integration and multi-viewer tests, and a production build. +These results verify the implemented local proof of concept. They do not claim +that live Twitch credentials, independent setup, first-time-viewer usability, +or real-viewer concept validation have passed. + +The implementation and scope correction are recorded in +[commit `222cf903f657dcceb5b309cbd6231d4522e9b077`](https://git.labyricorn.com/Labyricorn/Twungeon/commit/222cf903f657dcceb5b309cbd6231d4522e9b077).