Repository navigation
fix(conditions): stop transcript rows from showing as Claude slash commands - #1478
Merged
Merged
Conversation
Stage 0 evidence from the user's debug bundle and real Claude 2.1.296 recordings: the picker always sits on top of the composer's top rule, and colour cannot tell a wrapped Bash path row from an unselected picker row. Refs #1477 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mmands Bumps claude-code-headless to the composer-anchored slash-picker parser (claude-code-headless#72). A wrapped Bash path line or a reply's inline code no longer opens the composer's Slash commands popup. On Claude 2.1.296 the real picker now marks the selected command again and shows full descriptions. Fixes #1477 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rows Bumps claude-code-headless to the description-column rule from review round 1. The doc records the reason: H3 is disproven, H6 and H7 replace it. The picker no longer shows a phantom /loop or /resume) item. A hint row on the composer no longer lets a past /compact echo show as a selected command. Refs #1477 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
While Claude runs a long Bash command, the composer's Slash commands popup opens with no picker in Claude at all. It shows one bogus command: the wrapped second line of the command (
/scratchpad/shots && cd $S && sed …). It stays there for the whole run (debug bundlemanual/2026-10-14T00-51-55-934-e14bb3c2, "Weird slash glitch").The cause is in claude-code-headless's
detectSlashPicker. It accepted any coloured/-led row anywhere on screen. Wrapped Bash lines are painted exactly like an unselected picker row, and inline code like`/compact`exactly like the selected one, so colour cannot separate them. Counts:What changed
This bumps
packages/claude-code-headlessto claude-code-headless#72 (30f9de5) and adds the decomposition doc. The parser now anchors on the composer and classifies rows by Claude's description column:/;So nothing in the transcript can become a command, including through a right-aligned hint row on the rule.
On Claude 2.1.296 the same change also fixes these:
❯ /clear …) was dropped and nothing was marked selected;/-led row (/loop 5m /foo),/resume)) became a phantom command with a duplicate React key.The picker state type is unchanged, so no app code changes.
Design notes
See
docs/decomposition/claude-slash-picker.md, the branch's first commit. It holds the Stage 0 evidence, hypotheses with verdicts, and a graveyard. One correction for #1293: its suggested direction, "anchor below the composer box", is wrong for this predicate. The installed binaries draw the picker above the composer, and the parser's old header comment was wrong about that too, because it was derived from the vendored source.Review round 1
One round, with Codex (parser and real layouts) and Claude Code (tests, evidence and integration). Both returned FIX-BEFORE-MERGE on #72. The full disposition table is in claude-code-headless#72. In short:
/-led wrapped descriptions (both reviewers, reproduced on the binary).Ctrl+Y to paste deleted text,◉ xhigh · /effort) let the walk publish a past❯ /compactecho as the selected command. Found in 2 of the user's bundles, and now recorded as a fixture.The decomposition doc was revised in place: H3 is disproven, and H6 (the description column) and H7 (hint rows) replace it, with a new Stage 2b.
Verification
origin/mainand this PR's round-0 head;npx tsc -bis clean.vitest run slashPicker SlashCommand conditionspasses 103/103 across 12 files.package.jsonis unchanged. A--package-lock-onlyresync in this worktree only dropped entries for submodules that weren't checked out, so it was reverted./, and confirm no slash popup appears. Then type/cland confirm/clearis highlighted.Order
Merge claude-code-headless#72 first, then this PR. The gitlink already points at the pushed PR head (
30f9de5). If #72 is merged with a merge commit, that commit stays reachable from the package's main.Still open
*marker meaning, the 60×6 pane, and a D coincidence.Fixes #1477
Refs #1293
🤖 Generated with Claude Code