evOo-local/docs/VOICE-FIRST-REVIEW.md
cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

4.0 KiB
Raw Permalink Blame History

Voice First / Executive Board — Review Report

Audience: Ingo Wagner
Branch: antigravity-handoff/project-timeline @ 8d0b8e3 (PRs #33–#40 merged + follow-up fixes) Date: 2026-09-19 (Europe/Vienna)
Verifier host: evOo Linux box (Tailscale grokbot-box). Ingo’s Mac was not SSH-reachable from this host (no key / Tailscale SSH off).

Definition of done checklist

# Criterion Result Evidence
1 Dev stack healthy: API :3100/health + web :5173 BLOCKED (Mac) Mac mini / MacBook Air online on Tailscale; ports 3100/5173 not exposed; SSH Permission denied (publickey). Could not restart pnpm dev on /Users/ingowagner/evOo.
2 Executive Board: user VOICE FIRST turn → UX Designer replies with concept thoughts + ≥1 question; no raw handoff_to_bot JSON; no bounce to Boss PASS (unit / code) · UNVERIFIED (live) PRs #39–#40 + bot-reply-sanitize, prose-handoff-recovery, group-handoff workshop instructions. 56 focused tests green. Live group chat not exercised (no Mac API).
3 Transcript: no tool JSON blobs / no assistant: role leaks PASS (unit) · UNVERIFIED (live) sanitizeBotReplyText strips prose tool JSON + role prefix; speechFromBlocks skips tool-activity + unspeakable blobs (regression fixed after merge).
4 Voice Mode (CallView) UX Designer: invite before mic when owning work; after outgoing handoff mic stays closed + transfer line PASS (code + unit) · UNVERIFIED (live) CallView rebuilt: speakUserTurnInvitation / handleSpeechIdle / shouldSpeakOpeningInvitation; parkAfterHandoff + voiceHandoffTransferLine; mount no longer auto-opens mic.

What was done on this pass

  1. Merged open PR heads #33–#40 into antigravity-handoff/project-timeline and pushed to origin.
  2. Fixed merge regression in packages/core/src/speech-text.ts: speechFromBlocks again drops tool-activity chips and unspeakable tool JSON (test was failing after -X theirs merge).
  3. Fixed merge regression in apps/web/src/pages/CallView.tsx: invitation-before-mic restored; outgoing handoff keeps mic closed and speaks transfer line.
  4. Focused vitest: 56 passed (call-view-voice, voice-handoff, speech-text, bot-reply-sanitize, prose-handoff-recovery).

Remaining gaps (for Ingo’s Mac)

  1. SSH / Tailscale SSH from agent hosts to macbook-air-von-ingo / mac-mini-von-ingo so localhost verify can run without manual UI.
  2. On Mac repo path /Users/ingowagner/evOo:
    git fetch origin && git checkout antigravity-handoff/project-timeline && git pull
    pnpm install && pnpm dev   # ensure :3100 + :5173
    
  3. Live Executive Board check (RPC/DB preferred):
    • Find Executive Board chat_groups id.
    • Post a fresh user turn about VOICE FIRST AI Talks.
    • Confirm UX Designer message: concept prose + question; no handoff_to_bot JSON; Boss not re-tasked with the same work.
  4. Open Voice Mode on UX Designer: hear invite before mic; after a specialist handoff, mic stays closed with transfer caption.

Sample expected UX Designer reply shape (sanitized)

I’ve been thinking about VOICE FIRST AI Talks as a short, spoken workshop: one specialist owns the lane, invites you before the mic opens, and never dumps the same task back upstairs. For the first talk, I’d keep it to three beats — hook, one demo, one ask.
Which audience should we design for first — founders, designers, or internal execs?

Group id tested

None live — Mac localhost unreachable. After Mac verify, record chat_groups.id here.

Branch / PR notes

  • Timeline branch now contains merges of cursor/voice-mic-energy-2d2c … cursor/handoff-prose-sanitize-d1d4 plus commits:
    • fix(core): drop tool-activity and unspeakable blobs from speechFromBlocks
    • fix(web): restore invite-before-mic and keep handoff mic closed
  • Draft PRs #33–#40 can be closed or marked superseded once this branch is the review source of truth.