pingdotgg / pingdotgg/t3code

[Bug]: Incoming agent questions replace an unfinished message and redirect subsequent typing

Open
#11,116 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Area

apps/web, including the shared desktop composer.

Summary

When an agent asks a question while I am halfway through typing, the composer switches to a separate, empty question answer. If I keep typing and press Send, only the text entered after the question arrived reaches the agent. The first half remains in the original draft.

This breaks the meaning of the message I was composing. That draft might already answer the question, clarify its premise, or give an instruction that makes the question unnecessary. T3 cannot assume that text is unrelated and move my ongoing input into a different answer.

Steps to reproduce
  1. Start a Codex task and, while the agent is running, begin typing a follow-up in the composer.
  2. Have the agent issue a structured question before you finish typing. Observed with the newer question flow while Codex continues working.
  3. Continue typing without deliberately changing input fields or choosing to answer the question.
  4. Press Send.
  5. After the question clears, inspect the original draft and the message sent to the agent.
Expected behavior

A question arriving leaves the current text, cursor, focus, and send behavior intact. Continued typing completes the same message, and sending includes the whole message.

Questions and suggested answers can appear without taking over the composer. The user decides whether their message answers, clarifies, or supersedes the question.

Actual behavior

The interaction feels like two composers: one retains the unfinished prompt, while a clean one receives subsequent typing. Sending submits the second half as a question answer. The original draft reappears after the question clears.

Preserving the first half in storage does not preserve the composition. The user has already sent an incomplete message and has to reconstruct what they intended to say.

Impact

Major degradation or frequent failure. Typing while an agent works can silently produce an incomplete instruction.

Version or commit

Source investigated at 061543e9e5b54ec0048725c37d52fef2962df173. The installed version at the time of the reported occurrence was not captured.

Environment and supporting evidence

Observed with Codex. Source inspection identifies shared web/desktop behavior with no provider-specific guard:

The literal appearance of two simultaneous editors has not been reproduced independently. The source confirms the automatic switch between separate drafts and submission paths. No browser reproduction or recording is attached.

Related issue

#808 reports the same interruption, including that the text already being typed could answer the incoming question. It was closed because normal drafts and question answers were stored separately.

This report follows up on the unresolved UX behavior: keeping two drafts does not fix the automatic replacement of active input or the change in what Send submits. Please assess composition continuity, not just whether the original text can be recovered.

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 with the cited ChatComposer.tsx locations around lines 5641-5649 and 2667-2689, then trace the ChatView.tsx send path around lines 6452-6458. Verify how the message draft, question answer, editor focus, and Send action interact; done means an incoming question does not replace active input and sending includes the complete message.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.