Move onto tak (5/5): the web and Pyodide front-ends, and the web/ runtime - #197
Merged
Merged
Conversation
…time WebUserInterface and PyodideUserInterface are now FishE's adapters over the kit's: the (currentPrompt, timeService, player) constructor, FishE's page copy (title, tagline, tip) and the FISHE_WEB_HOST/PORT variables, with the server, the rendezvous, the screens and the Worker bridge in tak. The base passes keyword arguments through so the web front-end can take its address and switches cooperatively. web/ is reduced to the consumer files: index.html loads the kit's client, stylesheet and boot script from /tak/ and configures TakBoot with the same IndexedDB name (fishe-saves) and save-directory variable as before, so every existing browser save keeps loading; serve.py and build_zip.py are thin calls into tak.web. client.js, client.css and game-worker.js are deleted - the kit ships them. Tests: header assertions ported to the chips contract; the client-parity tests are gone (the client lives in tak and is tested there); the serve and bundle tests pin what FishE asks of the kit. 910 passed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KaGDnS44p4wsoDADXhyh9M
2 of 3 tasks
dmccoystephenson
added a commit
that referenced
this pull request
Sep 26, 2026
The Worker moved into tak in #197 and web/game-worker.js was deleted, but four comments still named it. The Dockerfile's note also still said the server doesn't need tak and is pure stdlib - web/serve.py is now tak.web.serve, serving the kit's assets at /tak/. requirements.txt still said FishE was "being moved back onto" tak one module at a time; that move finished with #197. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Last step of RFC 0004's retrofit.
src/ui/webUserInterface.pyandsrc/ui/pyodideUserInterface.pyare FishE's adapters over the kit's front-ends: the(currentPrompt, timeService, player)constructor, FishE's page copy (title, tagline, tip) and theFISHE_WEB_HOST/FISHE_WEB_PORTvariables. The server, the rendezvous, every screen and the Worker bridge live in tak.BaseUserInterfacepasses keyword arguments through so the web front-end takes its address and switches cooperatively.web/is reduced to the consumer files.index.htmlloads the kit's client, stylesheet and boot script from/tak/and configuresTakBootwith the same IndexedDB name (fishe-saves) and save-directory variable as before, so every existing browser save keeps loading.serve.pyandbuild_zip.pyare thin calls intotak.web.client.js,client.cssandgame-worker.jsare deleted — the kit ships them.Test plan
./test.shlocally → 910 passed (916 − 5 parity tests moved to tak − 2 Pyodide asset tests merged into 1)python3 web/build_zip.py && FISHE_WEB_PORT=8093 python3 web/serve.pyon this branch, driven by headless Chromium (Playwright): page served withCross-Origin-Embedder-Policy: require-corp,/tak/client.jsserved, Pyodide boots, save menu → "Create New Save" → the docks with the header rendered as chips (Day 1 · Location: Docks · 8:00 AM · Money: $20.00 · Fish: 0 · Energy: 60/60) and the descriptor text. The driver did not get through the fishing minigame's React!/busy screens — a scripting gap, not an observed failure.fishe.danielstephenson.dev: existing browser saves still listed; one cast and one saledrafted by Claude on behalf of Daniel Stephenson
🤖 Generated with Claude Code
https://claude.ai/code/session_01KaGDnS44p4wsoDADXhyh9M