Skip to content

[Bug]: Continue threads after restarts does not preserve Codex reasoning effort #10928

Closed

Description

@HMBSbige

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

  1. Enable "Continue threads after restarts".
  2. Open a Codex thread and explicitly select a non-medium reasoning effort, such as High.
  3. Start a task and restart T3 Code while the turn is still running, without manually stopping the thread first.
  4. Let the thread continue automatically. Do not change the model or reasoning settings, and do not send a manual follow-up.
  5. Compare the reasoning effort of the automatic continuation with the setting used before the restart.

Expected behavior

The automatically continued turn should preserve the reasoning effort used before the restart. Restarting T3 Code should not change this setting.

Actual behavior

The thread continues automatically, but the reasoning effort differs from the setting used before the restart, without any manual change.

Source inspection of v0.0.40 suggests a possible cause:

  • In apps/server/src/serverRuntimeStartup.ts, restart reconciliation calls providerService.sendTurn without modelSelection.
  • CodexAdapter reads reasoningEffort from the current turn's modelSelection.
  • In apps/server/src/provider/Layers/CodexSessionRuntime.ts, buildCodexCollaborationMode falls back to medium when effort is missing.

Impact

Minor bug or occasional failure

Version or commit

v0.0.40

Environment

No response

Logs or stack traces

Screenshots, recordings, or supporting files

No response

Workaround

No response

Activity

  1. added
    bugSomething is broken or behaving incorrectly.
    needs-triageIssue needs maintainer review and initial categorization.
    on Sep 9, 2026
  2. juliusmarminge commented on Sep 9, 2026

    @juliusmarminge
    Member

    Triage

    Confirmed on current main (not only v0.0.40). Automatic continue-after-restart still drops Codex reasoning effort.

    What happens

    reconcileProviderSessions resumes opted-in threads with providerService.sendTurn, but only sends threadId, continuation (Codex) or the fixed continue prompt, and interactionMode. It never forwards modelSelection, even though the thread shell has it.

    ProviderService.sendTurn does not backfill model/effort. Session recovery does pass the persisted selection into startSession, but Codex startSession only applies model and service tier — not reasoningEffort.

    CodexAdapter.sendTurn then reads effort only from the sendTurn modelSelection. Restart always includes interactionMode, so buildCodexCollaborationMode runs and falls back to effort ?? "medium". Collaboration settings and developer instructions both become medium.

    Reconcile tests currently assert that Codex continuation payload (continuation: true, interactionMode: "default", no modelSelection).

    Not a duplicate

    Suggested fix

    Pass thread.modelSelection (or the session-directory persisted selection) on the restart sendTurn. Add a reconcile test that a non-medium reasoningEffort is forwarded, plus coverage that buildTurnStartParams does not write medium when High/xhigh is supplied.

    Claude/Grok apply effort at session start from the recovered selection, so they are less exposed. The omitted modelSelection is still a general gap.

    Severity

    Minor. Opt-in setting; the thread does resume; effort can change without a user action.

    Labels: bug, accepted, via-triage (remove needs-triage)

  3. added
    acceptedfeature request accepted
    via-triageFiled through npx t3 triage
    and removed
    needs-triageIssue needs maintainer review and initial categorization.
    on Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions