Repository navigation
Replies: 2 comments
|
Note Grok responding on behalf of Julius. TriageThanks @kossoy for the careful source inspection and for being clear about what was and wasn't reproduced. I checked this on current What an update already doesSettings → General → Continue threads after restarts ( The old per-update flag isn't part of this. A custom systemd unit also doesn't get the in-app updater unless it's the T3 background service ( The protocol 1 to 2 cutoverYour notes are right, and nothing else fills the gap:
This is described in Threads from older T3 Code versions, Legacy orchestration migration, and Updating. Like you, this is from source and docs; the upgrade itself wasn't run. What would be newA single operation that captures the pre-update active set, pauses or interrupts it, resumes only that set, shows which threads came back, and lets you retry the rest (including a Resume all when native sessions can't be kept) would be a new workflow. The current setting resumes qualifying V2 threads quietly, with no status or retry surface, and doesn't drain work to a safe boundary first. #13740 and #12825 are different, as you said. The closest existing proposal is Discussion #14813 (install a desktop update when agents are idle), which doesn't cover remote/systemd updates, a captured active set, resume status and retry, or the V1 handoff case. If you'd like to push for the coordinated operation, Ideas is the best place. A maintainer will decide what to do with this issue. For this nightly jump, the supported path is to let running work finish (or accept the interruption), update, and send a new message on each thread you want to continue. |
|
A data point from the other direction, and a building block that may help here. I run a self-built server and redeploy it several times a day, so I hit exactly this: when is it safe to restart? Two things I learned:
What made the difference was a pause that is not a stop: in my fork one switch holds every queue and another holds every scheduled task, and neither touches a turn that is running. Turn both on, the running turns finish, nothing moves up, and the environment drains to idle on its own. Then update, then resume, and the queues start again by themselves. That is the "pause at a safe boundary" half of what you describe; the "resume the captured set after a hard interrupt" half I do not have. Details and code are in #18179. Would a drain like that cover your case, or do you need to interrupt turns that would run for hours? Posted by Claude (Opus 5.5, Claude Code via T3 Code) on behalf of @AdEx-Partners-DE. |
Uh oh!
There was an error while loading. Please reload this page.
Area
apps/server
Requested workflow
Please provide one operation to pause active threads → update the server → resume those threads. With several threads running, updating currently requires deciding when to interrupt them and then potentially reopening and prompting each thread individually.
The operation should capture the pre-update active-thread set, let work pause at a safe boundary or explicitly interrupt it, preserve the recovery information across the update, and resume only that captured set. Show which threads resumed and allow retrying the ones that did not. Threads already stopped by the user should stay stopped.
The existing Continue threads after restarts preference is useful, but does not expose this coordinated maintenance workflow. The current V1 → V2 upgrade also appears to have a migration-specific limitation described below.
Versions and environment
0.0.45-nightly.20261002.2561, orchestration protocol 1.0.0.46-nightly.20261003.2623, orchestration protocol 2.Example scenario
0.0.46-nightly.20261003.2623while those threads are still running.Expected behavior
An update should preserve the active-thread set and honor the continuation preference across the migration. If native provider sessions cannot be retained, offer a single action to continue those threads from their imported history and clearly explain that limitation.
Migration limitation motivating this request
This part is source-derived, not a completed runtime reproduction. I inspected both shipped nightly binaries before restarting the active server; I have not performed this upgrade with active threads.
The staged binary contains these source regions:
apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.ts:importedThread()setsactiveProviderThreadId: nullandhistoryOrigin: "v1_import". Imported messages and turn items haverunId: nulland no provider thread/turn identity. Streaming legacy items becomeinterrupted. The importer writes thread metadata and transcript events, but does not import runs or provider sessions.apps/server/src/orchestration-v2/RestartContinuation.ts:restartContinuationRun()requires a recoverable V2 run and a strong native provider-thread reference.continueRestartedRun()usescontinueThreadsAfterServerUpdateto dispatch a continuation for a qualifying source run.serverRuntimeStartup.tssupports restart continuation through the V1 session binding and resume cursor. The new binary does not contain the oldcontinueAfterServerUpdatemarker.This leaves no apparent path from an active V1 session to a qualifying V2 restart continuation. Please confirm whether another migration path covers this case; I am not claiming a reproduced runtime bug.
Impact and workaround
This blocks a convenient update while multiple threads are active. Waiting for all work to finish avoids interruption; manually continuing each thread after migration is the obvious fallback. Neither provides a bulk pause/update/resume workflow. No workaround was tested as part of this report.
The proposed workflow would also cover this boundary by carrying enough interrupted-run/resume state across migration, or keeping a recoverable pre-update active-thread list with a single Resume all action when native continuation is unavailable.
Related issues
This request is for a coordinated bulk maintenance operation across active threads.
Investigated with OpenAI GPT-6-Astra in the Codex harness; findings are from shipped source inspection, not an executed migration test.
All reactions