Skip to content

Simplify dictate to auto-start recording and exit after one utterance#206

Merged
alexkroman merged 2 commits into
mainfrom
claude/keen-bell-mj7oos
Jun 17, 2026
Merged

Simplify dictate to auto-start recording and exit after one utterance#206
alexkroman merged 2 commits into
mainfrom
claude/keen-bell-mj7oos

Conversation

@alexkroman

Copy link
Copy Markdown
Collaborator

Summary

Refactor assembly dictate to always auto-start recording and exit after one utterance, removing the interactive idle-loop mode and the --once flag's functional behavior. This simplifies the UX for the common case (pipe-friendly single utterance) and makes it the default.

Key Changes

  • Auto-start recording: Recording now begins immediately when dictate runs, eliminating the "Press Enter to start" prompt and idle-loop mode
  • Single-utterance default: The session captures one utterance and exits, closing stdout pipes so downstream commands unblock (e.g., assembly dictate | assembly llm …)
  • Deprecate --once: The flag is now a hidden no-op that warns users it can be omitted; kept only for backward compatibility with existing scripts
  • Simplify key handling: Replaced TOGGLE_KEYS / QUIT_KEYS distinction with unified STOP_KEYS (Enter, Space, q, Esc, Ctrl-D all stop recording); removed the idle-prompt quit-key logic
  • Remove _session() function: Eliminated the branching logic that chose between single-shot and interactive modes; _capture_and_transcribe() is now called directly
  • Remove stdio.stdout_is_tty() check: No longer needed since single-utterance is always the behavior
  • Update help text and examples: Clarified that recording starts immediately and dictate exits after one utterance; removed --once from visible options and examples

Implementation Details

  • The seams fixture no longer patches stdio.stdout_is_tty() since TTY detection is unused
  • Test key sequences simplified: removed leading toggle keys and trailing quit keys (e.g., ["\r", None, "\r", "q"][None, "\r"])
  • Keyboard timeouts now only include zero-timeout in-recording polls (no blocking None waits for idle prompts)
  • Quit keys during recording now transcribe the captured audio instead of discarding it
  • The --once deprecation warning is suppressed by --quiet to avoid noise in automated scripts

https://claude.ai/code/session_01RFDkryY7tiJMLs93ednr1G

claude added 2 commits June 17, 2026 00:55
`assembly dictate` now always auto-starts recording and exits after one
utterance — the old idle-prompt loop (idle until Enter, record, transcribe,
repeat) is gone, so dictation behaves the same whether stdout is a tty or a
pipe. `--once` is kept as a hidden, deprecated no-op that warns it can be
dropped, so existing scripts don't break.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RFDkryY7tiJMLs93ednr1G
@alexkroman alexkroman enabled auto-merge June 17, 2026 01:02
@alexkroman alexkroman added this pull request to the merge queue Jun 17, 2026
Merged via the queue into main with commit 6af8dcf Jun 17, 2026
19 checks passed
@alexkroman alexkroman deleted the claude/keen-bell-mj7oos branch June 17, 2026 01:11
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