New v0.6 — Record meetings locally · Korean, Japanese & 96 more languages. See what's new →

Issue #493 -> PR #494

The AI failed correctly. The product waited anyway.

The transcript was already done. The delay came from placing an optional full-text AI rewrite between "transcription complete" and "show the user the result."

The actual insight

This was not an AI quality bug. It was an AI placement bug.

A summary compresses a transcript. A formatter must give the whole transcript back. That makes the formatter's output grow with the meeting. If that work fails after timeout and falls back to local cleanup, the product bought latency without buying a better result.

Workload shape

"Clean this transcript" is output-sized work.

Summary
short answer
Formatter
whole transcript back

System shape

Before: completion was downstream of optional AI.

local STT transcript exists
AI rewrite full output required
timeout 45s / 300s
fallback same cleanup, late

The fix

PR #494 adds a contract before AI can spend time.

01
Surface

Is this transcript formatting, not dictation formatting?

02
Consent

Did the user leave Use for transcripts enabled?

03
Budget

Is the transcript <= 20,000 characters?

04
Exit

If not, skip AI and finish locally.

Proof, not vibes

The numbers tell the story.

66,276 chars in the larger observed meeting
300.2s formatter timeout before fallback
13-17s summary time on the same provider
3,591 XCTest cases passed after the fix

Takeaway

AI enhancements need a placement contract.

If AI can improve the result, great. If it is optional, slow, output-sized, or likely to fall back, it needs to sit behind an explicit gate. The user should never pay timeout just to receive the result the app already had.