Skip to content

[BUG]: Dollar Skill invocation in question tool UI glitches out #7805

Description

@patriksimms

What happened

When a provider asks the user a question, the custom-answer composer still supports $skill suggestions and renders selections as skill tokens.

Submitting this composer responds to the pending question with plain answer strings. It does not start a provider turn or explicitly invoke the selected skill. The picker can remain visible after submission, the previous answer can leak into the next question, and the editor enters recursive update failures.

This affects web and desktop. Mobile uses a plain text input for question answers.

Steps to reproduce

  1. Start a thread with a provider that can request user input.
  2. Have the provider open a question with a custom-answer field.
  3. Type $find-skills into the custom answer.
  4. Select the skill suggestion or add a trailing space.
  5. Submit the answer.

Expected behavior

Question answers should treat $skill syntax as plain text. They should not show skill suggestions or create skill tokens.

Submitting should send the answer once and reset the composer state.

Actual behavior

The custom-answer editor shows the skill picker even though pending question responses only support answer strings. After submission, the picker can remain visible and the previous $find-skills value can leak into the next question. The provider may infer the skill from the text, but T3 did not explicitly invoke it.

Impact

Major degradation or frequent failure.

Version and environment

  • T3 Code Desktop Alpha 0.0.33
  • Reproduced on main at 549201fcf
  • macOS 26.6.2, arm64
  • T3 Code desktop and web client
  • Claude Agent with Claude Opus 5

Logs

Uncaught Error: Maximum update depth exceeded

Uncaught RangeError: Maximum call stack size exceeded
ComposerPromptEditor.tsx

Uncaught Error: Point.getNode: node not found
Lexical

Recording

t3code_issue_trimmed.mov

Workaround

Avoid $skill syntax in custom question answers. Select a predefined answer or enter plain text without $.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions