VS Code extension: skill/slash-command messages with long arguments are never collapsible (no "Show more"/"Show less") and the sticky header hides Claude's response

Status Open
Reported on v2.1.238
Maintainer reply None cached
Activity 0 comments · opened Aug 21, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet (#72707, #63804, #61674, #42772 are about plain prompts; this is a different render path)
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

When a custom skill (or any slash command) is invoked with a long argument string, e.g. /teach followed by a pasted multi-paragraph brief, the resulting user message in the VS Code extension chat panel:

  1. is rendered at full height with no truncation, no "Show more" on hover, and no "Show less" button;
  2. is rendered in monospace (the slash-command style);
  3. is position: sticky; top: 0 with an opaque background, so while Claude responds the message stays pinned over the viewport and the response is hidden underneath it. You have to scroll past the whole brief and it keeps snapping back.

Reloading webviews (Developer: Reload Webviews) or restarting VS Code does not change anything; the behaviour is deterministic for that message.

Plain (non-slash) user messages of the same length collapse correctly to ~60px with "Show more" / "Show less".

Cause (from reading webview/index.js in the 2.1.238 VSIX)

  • Skill invocations are stored as <command-message>…</command-message><command-name>/teach</command-name><command-args>…</command-args>. The webview's text parser rewrites this to the string "/teach <args>" and sets isSlashCommand: text.startsWith("/").
  • The user-message renderer branches on that flag:
  • isSlashCommand === false -> the expandable component (maxHeight: 60, Show more / Show less);
  • isSlashCommand === true -> <div class="userMessage slashCommandMessage">{text}</div> with no expandable wrapper at all.
  • The surrounding container gets the stickyHeader class (position: sticky; z-index: 2; background-image: …) for any user message containing text, so an uncollapsed multi-KB message pins over the response.

The slash-command branch appears to assume commands are one-liners (/model opus). Skills with $ARGUMENTS routinely receive long text.

What Should Happen?

Slash-command / skill messages should go through the same expandable wrapper as ordinary user messages (collapsed to the same max height with "Show more"/"Show less"), or at minimum be capped in height so the sticky header cannot cover the response area. Ideally the command name could stay visible as the collapsed summary (/teach …).

Error Messages/Logs

None; purely a rendering issue. No console errors in the webview developer tools.

Steps to Reproduce

  1. Create a trivial skill:

``
mkdir -p ~/.claude/skills/longargs
cat > ~/.claude/skills/longargs/SKILL.md <<'SKILL'
---
name: longargs
description: repro for long slash-command arguments
---
Reply with the single word OK. Arguments: $ARGUMENTS
SKILL
``

  1. Open the Claude Code VS Code extension (chat panel, not the terminal UI), start a new session.
  2. In the input box type /longargs then paste ~60+ lines of text (e.g. a long paragraph repeated), send it.
  3. Observe: the sent message is shown in full, monospace, with no "Show more" affordance on hover and no "Show less"; scrolling down while/after Claude responds keeps the message pinned at the top and the reply is hidden behind it.
  4. Control: send the same 60+ lines as a plain message without the leading /longargs. It collapses to ~60px with "Show more" on hover and "Show less" once expanded.

Claude Model

Opus (not model dependent)

Is this a regression?

I don't know

Last Working Version

n/a

Claude Code Version

CLI 2.1.238; VS Code extension anthropic.claude-code 2.1.238 (latest on the marketplace); VS Code 1.134.0

Platform

Anthropic API

Operating System

Linux (Pop!_OS, kernel 7.0.11-76070011-generic)

Additional Context

  • The four related issues (#72707, #63804, #61674, #42772) describe the collapse being missing/unresponsive on plain prompts. This report is specifically about the isSlashCommand branch, which skips the collapse wrapper by design, so fixes to the plain-prompt measurement will not cover it.
  • Workaround: keep the slash-command line short and pass the brief separately (/teach @briefs/part2.md, or send the brief as a plain message first, then /teach use the brief above).

View original on GitHub ↗