Skip to content

feat(composer): keep the mobile send button and move dictation into the tools menu - #423

Merged
chriswritescode-dev merged 1 commit into
mainfrom
feat/mobile-dictate-with-send
Oct 12, 2026
Merged

chriswritescode-dev merged 1 commit into
mainfrom
feat/mobile-dictate-with-send

Conversation

@chriswritescode-dev

@chriswritescode-dev chriswritescode-dev commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Split the mobile voice and submit controls: the mic button renders only while the prompt is empty or dictation is in progress, so the Send/Queue button is no longer replaced once the prompt has content.
  • Add an optional onDictate item to the composer tools menu so dictation stays reachable on mobile while a prompt has content.
  • Derive hasPromptContent once and reuse it for the submit button's disabled state.
  • Cover the mobile voice/submit split and the optional menu item in tests.

Files

  • frontend/src/components/message/PromptInput.tsx
  • frontend/src/components/message/ComposerToolsMenu.tsx
  • frontend/src/components/message/PromptInput.stt.test.tsx
  • frontend/src/components/message/ComposerToolsMenu.test.tsx

Validation

  • Frontend tests: 169 passed across 11 message component files; 28 passed across the two directly changed files.
  • pnpm eslint on the four changed files: clean.
  • pnpm typecheck (tsc -b): passed.

Summary by CodeRabbit

  • New Features
    • Mobile users can access dictation from the tools menu when their prompt contains text and voice feedback is inactive.
    • The mobile microphone appears for empty prompts and during voice feedback, while the Send button appears when text is entered and recording is inactive.

@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: a49613b8-31d6-4172-9b91-b0d60c53010d

📥 Commits

Reviewing files that changed from the base of the PR and between 3cf06f0 and a326993.


📒 Files selected for processing (4)
  • frontend/src/components/message/ComposerToolsMenu.test.tsx
  • frontend/src/components/message/ComposerToolsMenu.tsx
  • frontend/src/components/message/PromptInput.stt.test.tsx
  • frontend/src/components/message/PromptInput.tsx

Included review availability: This review used your included allowance. 3 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.



📝 Walkthrough

Walkthrough

The mobile prompt input now selects between voice input, dictation, and submission based on speech-to-text availability, prompt content, and voice feedback. The tools menu displays a “Dictate” item only when it receives a dictation callback.

Changes

Mobile dictation

Layer / File(s) Summary
Optional dictation menu item
frontend/src/components/message/ComposerToolsMenu.tsx, frontend/src/components/message/ComposerToolsMenu.test.tsx
The tools menu accepts an optional onDictate callback and shows a microphone menu item when the callback is provided. Tests cover both callback omission and selection.
Mobile voice and submit control routing
frontend/src/components/message/PromptInput.tsx, frontend/src/components/message/PromptInput.stt.test.tsx
The prompt input selects mobile voice, dictation, or submit controls based on speech-to-text eligibility, prompt content, and voice feedback. Tests cover empty prompts, entered text, and recording.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature


Merge Risk: ⚪ Minimal · up to a3269

The mobile composer retains a usable action across the inspected prompt and dictation states. No material issue requiring resolution before merge was identified.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 4 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely describes the primary change: keeping the mobile send button visible and moving dictation into the tools menu.
Description check Passed The description provides a clear summary, lists the changed files, and reports test, lint, and typecheck validation. It omits the template's Type of Change and Checklist sections, but the core change …
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR

🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@chriswritescode-dev
chriswritescode-dev merged commit bc958a5 into main Oct 12, 2026
2 checks passed
@chriswritescode-dev
chriswritescode-dev deleted the feat/mobile-dictate-with-send branch October 12, 2026 14:29
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