[Bug]: Codex harness accepts send_user_message_async but the UI drops the messages
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Start a Codex thread through T3 Code's harness.
- Have the agent call
send_user_message_asyncwith a visible test message. - Observe that the tool result reports
{ "accepted": true }. - Check the T3 Code thread UI for the asynchronous message.
- Repeat the call with a second distinct message.
Expected behavior
Messages accepted through send_user_message_async should be delivered to and rendered in the active T3 Code thread. If this event type is unsupported, the harness should reject the call explicitly instead of returning accepted: true.
Actual behavior
Both tool calls returned { "accepted": true }, but neither message appeared in the T3 Code UI. The calls therefore look successful to the agent while the user receives nothing.
Impact
Major degradation or frequent failure
This silently breaks agent progress notifications and any workflow that relies on asynchronous user messages.
Version or commit
Current T3 Code environment as of 2026-09-02; exact commit unavailable.
Environment
macOS, T3 Code, Codex harness, gpt-5.6-sol
Logs or stack traces
send_user_message_async({"message":"This is a test message sent with send_user_message_async."})
=> {"accepted":true}
send_user_message_async({"message":"Here's the second test message from send_user_message_async."})
=> {"accepted":true}
Workaround
Return the message through the normal assistant commentary/final response stream.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/server by tracing the send_user_message_async event from the harness call through server handling and delivery to the active thread UI. Reproduce with two distinct messages and verify that accepted calls render in the thread; if unsupported, verify they are rejected explicitly rather than reported as accepted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100