Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pingdotgg/t3code
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: pingdotgg/t3code
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: factory/issue-15611-a18631
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 4 commits
  • 19 files changed
  • 1 contributor

Commits on Nov 12, 2026

  1. fix(server): a queued message waits while it is being edited

    Opening a queued message's editor only changed client state, so the server
    sent the original text as soon as the running turn ended and the unsaved
    edit was left in the composer.
    
    Opening the editor now sets a hold on the queued run (`queued-run.edit.hold`).
    The queue stops at that run, so neither it nor the messages behind it start.
    Cancel releases the hold, and Save releases it with the edited text. Either
    one starts the queue again if the thread is idle. A thread waiting on an edit
    reports its last run instead of a queued one, so it no longer reads as
    connecting. Web and mobile share the hold through the client-runtime edit
    store. Older servers reject the new command and the edit works as before.
    
    Fixes #15611
    
    AI-assisted; verified with the tests and tools listed above.
    juliusmarminge committed Nov 12, 2026
    Configuration menu
    Copy the full SHA
    b5f6afe View commit details
    Browse the repository at this point in the history
  2. fix(server): an abandoned queued-message edit no longer blocks the queue

    The edit hold lived in the projection while its editor lived only in client
    memory, so a reload, app quit, or server restart left the queue stuck, and
    Resume queue did not clear it. The client also showed the editor before the
    server had acknowledged the hold, so the original text could still be sent.
    
    - The server releases a connection's edit holds when its socket closes.
    - Restart recovery drops edit holds; Resume queue and send-now clear them.
    - The client opens the editor only after the server confirms the hold, and
      reports a failed hold instead of opening.
    
    AI-assisted; verified with the tests and tools listed above.
    juliusmarminge committed Nov 12, 2026
    Configuration menu
    Copy the full SHA
    8ea794b View commit details
    Browse the repository at this point in the history
  3. fix(web): a queued message stays editable against an older server

    A server without the edit hold rejects the hold command, and the editor then
    refused to open. When the hold fails the edit now opens unheld, as before
    holds existed; the queue watcher still ends it if the run has left the queue.
    
    AI-assisted; verified with the tests and tools listed above.
    juliusmarminge committed Nov 12, 2026
    Configuration menu
    Copy the full SHA
    6c037a8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    53d95fb View commit details
    Browse the repository at this point in the history
Loading