Skip to content

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
codex/kiosk-ui-v0
Open

kiosk-ui-v0: full-screen HTTP kiosk on 127.0.0.1:7788#78
webdevtodayjason wants to merge 1 commit intocodex/ops-team-bootstrapfrom
codex/kiosk-ui-v0

Conversation

@webdevtodayjason
Copy link
Copy Markdown
Contributor

Summary

Task 021 — engineer-floor. Ships a full-screen walk-up kiosk UI that runs on 127.0.0.1:7788 with 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 hooks
  • src/kiosk/server.ts — node:http server, loopback host-header guard, /api/status, SSE /events, /api/talk/start|end, /api/interrupt
  • src/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 subscription
  • src/kiosk/index.ts — module barrel
  • src/cli/kiosk.tsrunKiosk() wiring stub handlers and SIGINT/SIGTERM clean shutdown
  • tests/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.desktopchromium --kiosk launcher

Constraints honored

  • Node built-ins only — no new deps
  • Strict TS, no any
  • Real mic/speaker wiring left as stubs per inbox (engineer-auth / engineer-router own them this cycle)

Validation

Command Exit code Result
pnpm check 0 tsc --noEmit clean
pnpm test tests/kiosk/ 0 19/19 passed
pnpm test 0 381/381 passed
pnpm build 0 tsc clean
node dist/src/cli/kiosk.js listens on http://127.0.0.1:7788, GET / → 200 HTML, GET /api/status{"state":"idle","statusText":"Tap to talk"}

Test plan

  • pnpm check
  • pnpm test tests/kiosk/
  • pnpm test
  • pnpm build
  • Live bind: node dist/src/cli/kiosk.js binds 7788 and serves the kiosk HTML

🤖 Generated with Claude Code

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>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 12, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d386dc11-15ac-4ea5-adf9-cfad49993ecf

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/kiosk-ui-v0

Comment @coderabbitai help to get the list of available commands and usage tips.

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