pingdotgg / pingdotgg/t3code

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

Open
#7,805 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

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

https://github.com/user-attachments/assets/5f35e3a5-20cd-4ad2-b94a-ffebe60be771

Workaround

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the custom-answer flow in the web or desktop client, then inspect ComposerPromptEditor.tsx alongside the Maximum update depth, call stack, and Lexical errors. Verify the behavior with a $skill entry, selection, trailing space, submission, and a subsequent question. Done means $skill remains plain text, no picker or skill token appears, the answer is sent once, and composer state resets.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.