Build F1 team-radio Gradio game with Tiny Aya ONNX judge
Session from pit-wall-chaos-traces on Hugging Face by build-small-hackathon · CC-BY-4.0 · condensed by Coders Talk
Implement a small hackathon game based on F1 team radio messages as a Gradio Space, using the HF dataset directly and a client-side Tiny Aya ONNX model (transformers.js) as judge, focused on just the main game loop.
- +0Prompt · +0Build a Gradio Space game from F1 team radio dataset, following the game spec, using transformers.js + Tiny Aya ONNX for the judge, focus only on the main game loop.
- +0mAgent did · +0mRead hackathon rules and local spec/README files; decided to load the HF dataset directly at runtime and use a client-side Tiny Aya judge with a rule-based fallback.
- +0mAgent did · +0mInvestigated Gradio static asset serving, checked image sizes, confirmed no existing git repo, then planned a single-file app.py scaffold with the game state, judge prompt and JSON parsing all in the browser.
- +6mAgent did · +6mWrote app.py (~1170 lines) and requirements.txt implementing the game shell, background asset, and browser-side judge logic; cleaned up a stray non-ASCII glyph in a button.
- +6mFail · +6mLocal Gradio launch kept hanging or refusing connections; eventually traced to Gradio 6 moving the `head` parameter from Blocks() to launch(), which the pinned dependency version didn't support cleanly.
- +10mAgent did · +10mPatched app.py to drop head=HEAD from Blocks() and updated requirements.txt to pin Gradio; restarted the server and confirmed it responded with HTTP 200 on 127.0.0.1:7860.
- +10mAgent did · +10mAttempted to verify the UI and game loop visually via the in-app browser tool, which repeatedly failed to start (sandbox spawn errors), then tried a Node/Playwright fallback that was missing its playwright package.
- +11mAgent did · +11mSpent a long stretch debugging why the local Gradio server appeared to hang under foreground timeouts, isolating it to a Gradio 6 launch quirk in this runtime, then chased down a working Playwright + Chromium setup via bundled Node/pnpm paths to finally run a headless browser check, but the Chromium binary itself wasn't installed.
- +18mIntervention · +18mThe agent asked to download the Playwright Chromium browser executable to finish visual verification; the developer rejected the exec command and interrupted the session.Why: I didn't want it downloading a browser binary just to take a screenshot — that felt like overkill for verifying the game loop, and I wanted to check it myself instead.
- +18mOutcome · +18mSession ended with app.py (~1170 lines) and requirements.txt in place, server confirmed responding on 127.0.0.1:7860 with HTTP 200, but the game loop was never visually verified before the developer stopped the browser-download attempt.
Next time I'd tell it upfront not to bother with in-app browser or Playwright automation on this machine — just get the server running and let me check it myself in a real browser. Rejecting the Chromium download was the right call: a huge chunk of the session went into fighting local verification tooling (in-app browser sandbox errors, missing playwright-core, a Gradio 6 launch() quirk) instead of building the actual game loop, so cutting that off saved time.