[Claude Code CLI] (1) Voice-toggle strips typed slash commands; (2) Right-click "Attach message as context" double-pastes body (Windows 11)
Resolved 💬 1 comment Opened Apr 25, 2026 by ahumanft Closed May 29, 2026
Summary
Two distinct input-layer bugs in Claude Code CLI on Windows 11:
- Voice-toggle strips typed slash commands. Toggling the in-house voice-to-text button wipes any pre-existing typed
/foofrom the input box on send. The harness never receives the structured<command-name>field; the command never executes. - Right-click "Attach message as context" double-pastes the body. Using that menu item duplicates the prose content of the attached message in the next send (body appears twice with an interrupt-block between).
Both happen at the input layer. Typed slash commands without voice-toggle work correctly -- harness routes them via structured fields and the command executes normally.
Repro -- Bug 1 (voice-toggle wipes typed slash commands)
- Type
/your-command some prose here:into Claude Code CLI input box (do NOT send yet). - Toggle the in-house voice-to-text button.
- Speak additional content.
- Send the message.
- The typed
/your-commandis GONE from the sent message body, even though it was visible in the input pre-toggle.
Repro -- Bug 2 (right-click "Attach message as context" doubles body)
- Send a message in Claude Code CLI.
- Right-click the sent message and select Attach message as context.
- Compose a new message and send.
- The prose content of the attached message appears TWICE in the new send (once pre-interrupt block, once post).
Expected behavior
- Voice-toggle preserves any pre-existing typed content (including slash commands) and appends transcribed speech to it. Typed
/fooreaches the harness; command executes. - Right-click attach-as-context inserts a single copy of the attached message into the new send.
Actual behavior
- Voice-toggle path strips typed slash commands from the input on send. The receiving model never sees the structured
<command-name>field; the command never executes; the rendered/copied body shows no slash. - Attach-as-context path duplicates the body of the attached message; the duplicated halves wrap any interrupt block from the original.
Empirical evidence
Session on 2026-04-25:
- User typed
/build-command-skill(typed-only, no voice). Model received structured<command-name>build-command-skill</command-name>field plus full skill body correctly. - User typed
/bug-external typing this, speaking here:into the input box. Screenshot captured this state with the slash command clearly visible. User then toggled the in-house voice-to-text button and spoke additional prose. On send, the model received only the spoken prose: the typed/bug-externalwas stripped. - Separately, when user used right-click "Attach message as context" on a prior message and re-sent, the body of the attached message arrived doubled in the receiving model context.
Suspected cause
- Bug 1: voice-toggle path likely re-renders the input box after toggling, possibly through a code path that treats leading
/wordtokens as a command-mode trigger and consumes them rather than preserving as message body content. - Bug 2: attach-as-context path may concatenate the message body with itself, or fail to deduplicate when an interrupt block is present in the source message.
- Both potentially related to v2.1.101 (April 11, 2026) merging custom slash commands into the skills system, if that merge changed the input-pipeline routing.
Environment
- OS: Windows 11
- Claude Code version: 2.1.101+ likely (commands-into-skills merge mentioned in changelog)
- Custom slash commands defined in
~/.claude/commands/ - Many active skills (~70+ across plugins + user)
Prior reports searched
WebSearch on 2026-04-25 returned no exact match. Closest issues are about commands not being detected at all (#10357, #9518, #9926, #2288, #8831) -- different problem (those are about file discovery; these are input-pipeline stripping/duplication). One related but distinct fix: /feedback no longer disappears from slash menu (different surface).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗