Skip to content

Live dictation through Gecko Suite (SN-9) - #223

Merged
davior merged 1 commit into
mainfrom
claude/beautiful-wright-og4xur
Nov 5, 2026
Merged

davior merged 1 commit into
mainfrom
claude/beautiful-wright-og4xur

Conversation

@davior

@davior davior commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Summary

With AI_BACKEND=suite, Notes' live (Deepgram) dictation now streams to Gecko Suite's /api/v1/ai/speech/stt/stream instead of Notes' own relay (SN-9).

  • The protocol is unchanged; only the address differs. The suite now holds the Deepgram key and counts the minutes under Notes, the same stream GVC's new microphone uses (davior/gvc#43).
  • Notes' own Deepgram key is then no longer needed for dictation, which M8 (removing Notes' keys) depends on.
  • In local mode nothing changes.

Changes:

  • utils/dictationStream.ts works out where the stream goes. In suite mode it's the suite, with your chosen Deepgram model and app=notes; otherwise Notes' /stt-stream/ws, as today. deepgramStream.ts uses it.
  • Messages: when the suite has no Deepgram key, the message says to set one up in Gecko Suite, and the suite refusing the page's origin has its own message.
  • AI-backend setting: now read along with Notes' settings, so it's known before the first dictation.
  • CSP: connect-src gains wss://suite.geckopico.com.

Not in this PR: voice mode (the Flux conversation, flux_stream) still uses Notes' own Deepgram key. It's a different Deepgram API, and moving it to the suite is a separate piece for M8.

Test plan

  • cd frontend && npm test && npm run build: 236 tests pass, build succeeds. The new tests in utils/dictationStream.test.ts cover the stream address in suite mode (suite, app, model, encoded token) and in local mode (Notes' own relay).
  • cd backend && pytest -q: 1429 passed, 1 skipped. There's no backend change.
  • Not run: a real microphone against the deployed suite.

Deployment

  1. Before pulling: deploy gecko-suite#16, the suite's live stream. It needs a Deepgram provider set up in the suite (the same key Notes has today is fine).
  2. Configuration: nothing new.
  3. Deploy. This rebuilds the frontend; the backend is unchanged but rebuilds with it.
    git pull origin main
    docker compose up --build -d
    Then hard-refresh.
  4. Verify:
    • Dictate in a note or the assistant in Firefox, with the speech provider set to Deepgram: words appear as you speak, as before.
    • The suite's Usage page shows the seconds under Notes.
    • The browser console shows no CSP errors.
  5. Roll back: redeploy the previous commit, and dictation goes back through Notes' own relay and key.

Generated by Claude Code

With AI through Gecko Suite, Notes' live (Deepgram) dictation streams to the
suite's /api/v1/ai/speech/stt/stream instead of Notes' own relay: same
protocol, but the suite holds the Deepgram key and counts the minutes under
Notes. That leaves Notes' own Deepgram key unneeded for dictation, which M8
relies on. In local mode nothing changes.

- utils/dictationStream.ts: where the stream goes, with the chosen Deepgram
  model and app=notes; deepgramStream uses it, and says "set up in Gecko
  Suite" when the suite has no key.
- The AI-backend setting is read with the settings, so it is known before
  the first dictation.
- CSP: connect-src gains wss://suite.geckopico.com.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1geD2ELWgL2sDpxYbx3Aw
@davior
davior marked this pull request as ready for review November 5, 2026 00:06
@davior
davior merged commit 44099a8 into main Nov 5, 2026
2 checks passed
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.

2 participants