kiosk-ui-v0: full-screen HTTP kiosk on 127.0.0.1:7788#78
Open
webdevtodayjason wants to merge 1 commit intocodex/ops-team-bootstrapfrom
Open
kiosk-ui-v0: full-screen HTTP kiosk on 127.0.0.1:7788#78webdevtodayjason wants to merge 1 commit intocodex/ops-team-bootstrapfrom
webdevtodayjason wants to merge 1 commit intocodex/ops-team-bootstrapfrom
Conversation
Task 021 — engineer-floor.
- src/kiosk/handlers.ts: injectable state machine (idle/listening/
thinking/speaking) with talkStart/talkEnd/interrupt, stubbed mic
and speech hooks.
- src/kiosk/server.ts: node:http server with host-header loopback
guard, /api/status JSON, SSE /events with tick frames, and the
talk/start, talk/end, interrupt POST routes.
- src/kiosk/index.html: dark full-screen UI with 400px CSS radial-
gradient disc (breath/spin/pulse animations per state), status
text, 280x100 tap-to-talk button, settings gear placeholder,
/events EventSource subscription.
- src/cli/kiosk.ts: runKiosk() entry wiring stub capture/speech
handlers and SIGINT/SIGTERM clean shutdown.
- tests/kiosk/: 19 tests (handlers state machine, server routes,
SSE connect, host-header 403, 404 fallthrough).
- deploy/argent-lite-kiosk.desktop: chromium --kiosk launcher.
Validation:
- pnpm check — exit 0
- pnpm test tests/kiosk/ — 19/19 pass
- pnpm test — 381/381 pass
- pnpm build — exit 0
- node dist/src/cli/kiosk.js — binds 7788, GET / = 200 HTML,
/api/status = {"state":"idle","statusText":"Tap to talk"}
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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
Task 021 — engineer-floor. Ships a full-screen walk-up kiosk UI that runs on
127.0.0.1:7788with a state-machine disc, tap-to-talk push-button, and an SSE event stream ready for the mic/TTS wiring that engineer-auth and engineer-router land later in the cycle.Surface (authorized by inbox)
src/kiosk/handlers.ts— injectable state machine (idle → listening → thinking → speaking), stubbed mic/speech hookssrc/kiosk/server.ts— node:http server, loopback host-header guard,/api/status, SSE/events,/api/talk/start|end,/api/interruptsrc/kiosk/index.html— dark full-screen UI, 400px CSS radial-gradient disc (breath/spin/pulse per state), 280×100 tap-to-talk button, settings gear placeholder, EventSource subscriptionsrc/kiosk/index.ts— module barrelsrc/cli/kiosk.ts—runKiosk()wiring stub handlers and SIGINT/SIGTERM clean shutdowntests/kiosk/handlers.test.ts— 11 state-machine tests (happy paths + error paths + getState override)tests/kiosk/server.test.ts— 8 server tests (HTML, status JSON, POST routes, SSE initial frame, host-header 403, 404)deploy/argent-lite-kiosk.desktop—chromium --kiosklauncherConstraints honored
anyValidation
pnpm checkpnpm test tests/kiosk/pnpm testpnpm buildnode dist/src/cli/kiosk.jshttp://127.0.0.1:7788,GET /→ 200 HTML,GET /api/status→{"state":"idle","statusText":"Tap to talk"}Test plan
pnpm checkpnpm test tests/kiosk/pnpm testpnpm buildnode dist/src/cli/kiosk.jsbinds 7788 and serves the kiosk HTML🤖 Generated with Claude Code