Skip to content

feat(ui): cloud transcription opt-in in Settings → AI (MEET-12) - #378

Merged
eliotlim merged 2 commits into
mainfrom
feat/meet-12-cloud-transcription-ui
Oct 7, 2026
Merged

eliotlim merged 2 commits into
mainfrom
feat/meet-12-cloud-transcription-ui

Conversation

@eliotlim

@eliotlim eliotlim commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Problem

Cloud transcription ('openai-compat') was API-only; docs pointed at a Settings control that didn't exist, and there was no privacy disclosure at the decision point. Board: MEET-12.

Solution

Transcription provider picker (Default local / Off / Cloud OpenAI-compatible) in the existing AiSettings section: cloud fields (baseUrl/model as placeholders, API key with the chat section's exact write-only semantics + apiKeySet state), privacy note rendered at selection, Whisper status/download gated to local, save/status errors surfaced with last-good restore and guaranteed key scrub on both failure paths, focus-retaining picker with aria-busy, i18n ×4. Bonus: the chat key field now shares the same apply-on-blur path (duplicated scrub logic removed).

Before / After

Behavior Before After
Enable cloud transcription hand-crafted API call Settings → AI picker with privacy note at the decision point
Server rejects a bad baseUrl silently looked saved error line + last-good config restored (tested ftp:// and embedded-creds)
Key handling n/a write-only, never echoed, scrubbed on success AND failure (4-way matrix test)

Small visual addition inside existing settings chrome (text controls; design gate cleared on implementation + fix round).

Test procedure

pnpm --filter @book.dev/ui exec vitest run src/components/__tests__/AiSettings.test.tsx (13 tests); pnpm verify green serialized.

Operational notes

None. Local remains the blessed default; cloud is deliberate opt-in.


Reviews: design (Devon — BLOCK→CLEAR after error-surfacing fix round), code (Quinn).

🤖 Generated with Claude Code

@vercel

vercel Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
app.book.pub Ready Ready Preview Oct 6, 2026 2:31pm UTC

Request Review

@eliotlim
eliotlim disabled auto-merge October 7, 2026 13:37
@eliotlim
eliotlim merged commit 190c550 into main Oct 7, 2026
23 of 24 checks passed

This branch was successfully deployed

1 active deployment
Preview — 76b0f395 Deployed Oct 6, 2026 by vercel[bot]
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