Skip to content

Add enhanced transcripts toggle to Settings - #103

Merged
alexkroman merged 1 commit into
mainfrom
claude/enhanced-transcripts-setting-ldee5k
Jul 29, 2026
Merged

Add enhanced transcripts toggle to Settings#103
alexkroman merged 1 commit into
mainfrom
claude/enhanced-transcripts-setting-ldee5k

Conversation

@alexkroman

Copy link
Copy Markdown
Collaborator

What & why

Adds a user-facing "Enhanced transcripts" toggle to the Settings window's new Transcription section, allowing users to opt out of AssemblyAI's server-side LLM cleanup rewrite (which removes disfluencies and fixes punctuation). When disabled, the dictation request omits the llm block entirely, and the verbatim transcript is pasted exactly as spoken.

The feature is on by default — the product's default behavior is to polish transcripts. The transcriber reads this setting at every request via an injected closure, so changes apply immediately to the next dictation without rebuilding.

Key changes:

  • New EnhancedTranscriptsStore persists the toggle in UserDefaults (defaults to on; unset reads as enabled)
  • AssemblyAITranscriber accepts an enhancedTranscripts closure and conditionally includes the llm block in the config
  • DictationConfig.llm is now optional; omitted when the setting is off
  • Settings window gains a Transcription section with the toggle and explanatory footer
  • Updated documentation in AGENTS.md and BLURTENGINE.md

How it was tested

  • scripts/check.sh passes (or CI will, if I'm not on a Mac)
  • I read AGENTS.md and this doesn't reintroduce anything deliberately removed
  • Docs updated if behavior changed

Test coverage:

  • EnhancedTranscriptsStoreTests verify the store defaults to on and persists the toggle
  • AssemblyAITranscriberTests confirm the config includes llm when enabled and omits it when disabled
  • PersistedSettingsTests updated to account for the new store key

https://claude.ai/code/session_01AAuNR2X97wf1jyFes8kdAF

A new Transcription section in Settings > Advanced carries an
"Enhanced transcripts" toggle. On (the default), each dictation request
keeps asking the dictation API for its server-side LLM cleanup rewrite;
off, the request omits the llm block entirely so the verbatim
transcript is pasted exactly as spoken.

- EnhancedTranscriptsStore: UserDefaults-backed switch, on by default
  (unset reads as enabled), registered in PersistedSettings' roster.
- AssemblyAITranscriber: new injectable enhancedTranscripts closure,
  read per request, gating DictationConfig's now-optional llm block.
- Settings UI: TranscriptionSection toggle with a shared UI-test
  identifier; docs updated in AGENTS.md and BLURTENGINE.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AAuNR2X97wf1jyFes8kdAF
Copilot AI review requested due to automatic review settings July 29, 2026 22:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a user-facing Enhanced transcripts toggle (default on) that controls whether AssemblyAITranscriber includes the dictation API llm cleanup-rewrite block, enabling users to opt out and paste verbatim transcripts.

Changes:

  • Introduces EnhancedTranscriptsStore (UserDefaults-backed; unset defaults to enabled) and adds it to PersistedSettings reset sweeps.
  • Updates AssemblyAITranscriber to read an injected enhancedTranscripts closure per request and conditionally omit config.llm.
  • Adds engine tests for the new store behavior and for llm inclusion/omission, plus docs/UI wiring for the Settings toggle.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Tests/BlurtEngineTests/PersistedSettingsTests.swift Extends roster tests to include the enhanced-transcripts defaults key and updates expected key count.
Tests/BlurtEngineTests/EnhancedTranscriptsStoreTests.swift Adds unit tests verifying the store defaults to enabled when unset and round-trips persistence.
Tests/BlurtEngineTests/AssemblyAITranscriberTests.swift Adds coverage asserting llm is present when enabled and omitted when disabled; updates helpers to avoid real UserDefaults.
Sources/BlurtEngine/STT/AssemblyAITranscriber.swift Adds per-request enhanced-transcripts gating via injected closure; makes DictationConfig.llm optional so it can be omitted.
Sources/BlurtEngine/Config/PersistedSettings.swift Adds the new defaults key to the engine’s reset roster.
Sources/BlurtEngine/Config/EnhancedTranscriptsStore.swift Introduces the new UserDefaults-backed store with “unset == enabled” semantics.
BLURTENGINE.md Updates engine documentation to describe the optional server-side cleanup rewrite and the setting.
App/Blurt/Shared/UITestIdentifiers.swift Adds a UI test identifier for the enhanced-transcripts toggle.
App/Blurt/Blurt/Wizard/SettingsWindowRoot.swift Adds a new Transcription section in Settings with the Enhanced transcripts toggle.
AGENTS.md Updates repo/architecture docs to include the enhanced-transcripts setting and behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +105 to +108
Text(
"Polishes each dictation before pasting — removing filler words and fixing punctuation. "
+ "Turn off to paste your words exactly as spoken.")
}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wording here is deliberate, so leaving it as-is:

  • "Filler words" over "disfluencies": this is user-facing settings copy, and "filler words" is the plainer term; "disfluencies" stays in the engine docs where precision matters.
  • The best-effort fallback (a rare llm_error/null rewrite degrading to the verbatim transcript) is an internal degradation path, not something the setting controls — enumerating it in a two-sentence settings footer would add noise without helping the user decide whether to flip the toggle. It's documented in AGENTS.md/BLURTENGINE.md and covered by tests.

Also holding off on copy churn since the PR is green and already in the merge queue.


Generated by Claude Code

@alexkroman
alexkroman enabled auto-merge July 29, 2026 22:35
@alexkroman
alexkroman added this pull request to the merge queue Jul 29, 2026
Merged via the queue into main with commit 3eb7522 Jul 29, 2026
8 checks passed
@alexkroman
alexkroman deleted the claude/enhanced-transcripts-setting-ldee5k branch July 29, 2026 22:52
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.

3 participants