gavel — where the build stands

22 September 2026 · status of the application, not the hackathon board

The brain and the Discord route run. Google Meet is written and green on tests but has never joined a real call. Three things you can test today; one thing blocks a real Meet test, and it needs a second person.

1 · The scaffolding

PieceWhat it isStateDeployable?
brainDecides everything. Agenda, turns, timing. Imports no call SDK. ● WorksIn compose — not running anywhere now
ears-discordDiscord call connection. Decides nothing. ● WorksIn compose as ears — not running now
calendarScheduling / booking service. ● WorksIn compose — not running anywhere now
ears-meetGoogle Meet connection. Chromium + Playwright + PulseAudio. ◐ Built, unprovenNo — no compose service
stageKaren's live board. She screen-shares it; no separate page to visit. ◐ Demo mode onlyNo — no compose service
extension/compose as a browser plugin. Signs into the real account. ◐ Builds, unpublishedNo store listing yet
contractThe frozen seam: WebSocket JSON frames + fixtures. ● Frozenn/a — shared spec
conciergeBot that interviews the host and writes the agenda. ○ ParkedDeliberately not built
chair-videoGenerated video avatar. ○ CutRemoved — replaced by a still

Nothing generates video anywhere. Karen's face is one static image published as a real camera track; her "visual" is the shared board.

2 · Google Meet — built vs. proven

CapabilityBuiltProven
Join a Meet as a named guest● Yes◐ Harness only
Hear the room (tab audio → speech-to-text)● Yes◐ Faked audio
Know who is talking (per-tile indicator)● Yes◐ Faked DOM
Speak into the room (virtual mic)● Yes◐ Faked audio
Show a face (still as camera track)● Yes● Real Chromium, pixel-verified
Share the board as a screen● Yes◐ Tab capture, not in a call
Run in a real Google Meet call● Yes● Never done

93 tests pass. Every one of them runs against a faked Meet — no Google account, no network. That is a real result and it is not the same as working.

3 · What you can test today

On your laptop — no Google account needed

Each one wants pnpm install in that package first. The VPS gavel lives on has no pnpm, so these are laptop-only today.

With setup — and a second person

A real Google Meet call. Four steps, in order — steps 1 and 2 are yours:

cd packages/ears-meet && just setup      # uv sync + playwright chromium

MEET_PROFILE_DIR=~/gavel-meet-profile just login   # on a laptop, once

# .env at repo root — MEET_URL, MEET_PROFILE_DIR, MEET_BOT_NAME
#   optional: STAGE_URL, SLNG_API_KEY, AGENDA_FILE

just live-check --launch --duration 180 --speak-after 20

Not testable as a deployment

Neither ears-meet nor stage has a service block in compose.yaml. They run from a terminal, by hand. Nothing stands up the Meet route as a service yet — and this was never wired, it isn't something the merges broke.

4 · What needs you

ItemWhy it's stuckWho
First real Meet callA root-capable Linux box, a profile signed in on a screen, and a second participantYou
Compose blocks for ears-meet + stageNever written. Not a merge regression — no commit ever had themhelm
Norma's findings~230 findings sit behind a login I don't have. 7 real ones fixed; 10 visible ones judged noiseYou (login)
Two Devin sessionsSuspended mid-flight — close them or resumeYou
Plugin store listingChrome Web Store / Workspace Marketplace need a publisher accountYou