Repository navigation
Street runner on the connection and missing pages - #36
Conversation
The connection screen and the missing page now show a street scene edge to edge across the top, with their message, Try again and Sign out (or Go to Home) in its sky. Tapping the street, Space or the up arrow plays Street runner: jump the bins, puddles and recycling, stay low for pigeons. It ships in the first download so it works offline, plays no sound, pauses when the page is hidden or loses focus, and stores only the best distance on the device. If the connection returns during a run, the screen says so and waits for Open Commune instead of reconnecting under the player. With no run in progress it reconnects straight away, as before. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A6P7aTcMBccooYYr4xYnVS
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
CI on 44aee55 did not run. "Web app", "Database, local API and worker" and "Secret scan" each finished in about 2 seconds with no runner assigned ( Run locally on this commit: 664 web tests in 68 files, the web typecheck and a production build all pass. The Vercel preview error is the known account issue from the earlier PRs. Generated by Claude Code |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Before: when Commune couldn't check the account, it showed a white card on cream saying "We couldn't connect" (or "You're offline") with Try again and Sign out. A missing address showed the sign-in layout's "This page isn't here." panel with Go to Home. Neither offered anything to do while waiting.
After: both screens show a pixel-art terraced street running edge to edge across the top of the screen, with the same message and buttons sitting in its sky. Tapping the street, Space or the up arrow plays Street runner: a resident with a bag of shopping runs down the pavement and has to jump wheelie bins, puddles and recycling boxes. After 220 m pigeons swoop at head height, so you stay low for those. It speeds up as you go and keeps your best distance. Below the scene, two quiet lines explain the controls.
Edem chose this game from three prototypes and asked for the message to sit inside the game rather than beside it: https://claude.ai/artifact/JgvBHKaCtNXkhRTMqRd3ff
Built on #35 (styles and loading on demand); the diff here shows only this change.
Behaviour
commune.streetRunnerBestin local storage. Nothing about the game is sent anywhere.shell/Recovery.tsx) is unchanged and has no game.Needs the owner
h1in the scene instead of anh2in the sign-in panel.How it was checked
tests/street-runner.test.tsx). They check the engine (an unattended run hits the first bin, timed jumps clear bin after bin, it is safe under a low pigeon and not when jumping into one, puddles only count on the ground, there is always room to react) and the screen (Space starts a run, Escape and a hidden tab pause it, Space is left to a focused button, and the connection returning mid-run waits for Open Commune). The existing connection and missing-page tests pass unchanged.How
shell/streetRunner.tsholds the game with no React: the run state,advance()(movement, spawning with a gap that always leaves reaction time at the current speed, collisions) anddrawStreet(), which draws solid 3 px blocks on a canvas from--street-*colour tokens inshell/street-scene.css.shell/StreetScene.tsxsizes the canvas to the scene with a ResizeObserver, runs the loop withrequestAnimationFrame, handles keys, taps, pause and the best score, and renders the message passed as children. It tells its parent when a run starts or stops, which is howConnectionRecoveryknows to hold the reconnect. jsdom has no canvas, sotests/setup.tsmakesgetContextreturn null and the scene draws nothing in tests.🤖 Generated with Claude Code
https://claude.ai/code/session_01A6P7aTcMBccooYYr4xYnVS
Generated by Claude Code