Skip to content

Empty prompt bubble renders below skill pill on skill-only invocations #672

Description

@jeonghun-jj-lee

Important

Problem — When a user invokes a skill with no message body (e.g. /tdd with no additional text), a small empty gray rectangle renders below the skill pill. The blob is the user-message-text prompt bubble mounting unconditionally with its padding and background visible despite having no text content.

Scope — in: the UserMessageDisplay render path in session-ui's message-part.tsx and the identical code in the opencode overlay. out: assistant-side empty-text filtering (already handled by renderable()), CSS-only fixes (fragile with SolidJS comment markers vs :empty).

Acceptance Criteria

  • Invoking a skill with no body text (e.g. /tdd) renders the skill pill without an empty prompt bubble below it
  • Invoking a skill WITH body text still renders both the skill pill and the text bubble
  • UserMessageComments still render when present on a skill-only message (guard includes comments check)

Key Decisions

The [data-slot="user-message-text"] div should be wrapped in <Show when={text() || messageComments().length > 0}> rather than just <Show when={text()}>, so that inline comments attached to a skill-only message are not accidentally hidden.

Constraints & Invariants

  • The fix must be applied in both the amicode overlay (packages/app-bundle/overlay/packages/session-ui/) and the opencode source (packages/session-ui/)
  • renderable() is not called on the user-message path and should not need to be — the conditional belongs at the render site

Prior Art

  • UserMessageDisplay component in session-ui message-part.tsx (around line 1823)
  • renderable() function in the same file (line 753) — handles the equivalent filter on the assistant side
  • last-prompt-bubble.test.ts — already models skill-only messages for the floating bubble feature, but does not cover inline rendering

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions