[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:

  1. Voice-toggle strips typed slash commands. Toggling the in-house voice-to-text button wipes any pre-existing typed /foo from the input box on send. The harness never receives the structured <command-name> field; the command never executes.
  2. 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)

  1. Type /your-command some prose here: into Claude Code CLI input box (do NOT send yet).
  2. Toggle the in-house voice-to-text button.
  3. Speak additional content.
  4. Send the message.
  5. The typed /your-command is 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)

  1. Send a message in Claude Code CLI.
  2. Right-click the sent message and select Attach message as context.
  3. Compose a new message and send.
  4. 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 /foo reaches 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:

  1. 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.
  2. 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-external was stripped.
  3. 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 /word tokens 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).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗