pingdotgg / pingdotgg/t3code

[Bug]: Revert leaves selected user prompt visible and composer empty

Open
#5,685 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage
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/web

Steps to reproduce
  1. Open a thread in a Git worktree and complete at least two user and assistant turns.
  2. Hover over the latest completed user prompt.
  3. Click Revert to this message.
  4. Confirm the rollback.
  5. Observe the timeline and composer after T3 reports that the revert completed.
Expected behavior

The selected user prompt and its following assistant turn should be removed from the timeline. The preceding assistant response should become the final visible message.

If the user-message placement is intended to support an edit-and-retry workflow, the selected prompt should also be restored to the composer as editable text. At minimum, it must not remain in the timeline as an immutable message after T3 has reverted to the checkpoint before that turn.

Actual behavior

The assistant work after the selected prompt is removed, but the selected user prompt remains visible as a locked timeline message. The composer is empty, so the prompt cannot be edited or resent. The user must enter another prompt to continue.

This leaves the live timeline inconsistent with the completed rollback. The screenshot shows the selected prompt still visible directly above an empty composer.

Current main also suggests a client-state mismatch: the server projection removes messages according to the requested checkpoint count, while the live client retains messages without a turn ID. User prompts are recorded without a turn ID.

Related but distinct: #2268 reports the entire thread disappearing and reverted text appearing in a new-chat draft. This report is specifically about the selected prompt remaining in the same thread as immutable history.

Impact

Major degradation or frequent failure

Version or commit

T3 Code desktop app 0.0.32

Environment

macOS, T3 Code desktop app 0.0.32, Claude Opus 5, Medium reasoning, 1M context, Auto runtime, worktree thread

Logs or stack traces

Screenshots, recordings, or supporting files

file-9635947fe1b307225cfa7dfb15631b2e.jpg

Workaround

No complete workaround found. Sending a separate new prompt continues the thread, but the reverted prompt remains uneditable and cannot be corrected or resent.

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 in apps/web by reproducing the revert flow in a Git worktree thread with at least two turns. Trace how T3 completes the rollback and compare the server projection with the live client state, especially messages without a turn ID. Done means the selected prompt and following assistant turn are removed, or the prompt is restored as editable composer text, with the timeline and composer consistent after revert.

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
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.