Skip to content

Move onto tak (5/5): the web and Pyodide front-ends, and the web/ runtime - #197

Merged
dmccoystephenson merged 1 commit into
mainfrom
feature/tak-retrofit-5-web-runtime
Sep 21, 2026
Merged

dmccoystephenson merged 1 commit into
mainfrom
feature/tak-retrofit-5-web-runtime

Conversation

@dmccoystephenson

Copy link
Copy Markdown
Member

Summary

Last step of RFC 0004's retrofit.

  • src/ui/webUserInterface.py and src/ui/pyodideUserInterface.py are FishE's adapters over the kit's front-ends: the (currentPrompt, timeService, player) constructor, FishE's page copy (title, tagline, tip) and the FISHE_WEB_HOST/FISHE_WEB_PORT variables. The server, the rendezvous, every screen and the Worker bridge live in tak. BaseUserInterface passes keyword arguments through so the web front-end takes 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 is tested in tak); the serve and bundle tests pin what FishE asks of the kit.

Test plan

  • ./test.sh locally → 910 passed (916 − 5 parity tests moved to tak − 2 Pyodide asset tests merged into 1)
  • Browser: python3 web/build_zip.py && FISHE_WEB_PORT=8093 python3 web/serve.py on this branch, driven by headless Chromium (Playwright): page served with Cross-Origin-Embedder-Policy: require-corp, /tak/client.js served, 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.
  • CI on this PR
  • After the gateway rebuilds fishe.danielstephenson.dev: existing browser saves still listed; one cast and one sale

drafted by Claude on behalf of Daniel Stephenson

🤖 Generated with Claude Code

https://claude.ai/code/session_01KaGDnS44p4wsoDADXhyh9M

…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
@dmccoystephenson
dmccoystephenson merged commit 64a316f into main Sep 21, 2026
1 check passed
@dmccoystephenson
dmccoystephenson deleted the feature/tak-retrofit-5-web-runtime branch September 21, 2026 02:04
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>
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