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: fix/issue-21739
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 13 commits
  • 5 files changed
  • 3 contributors

Commits on Oct 22, 2026

  1. test(server): reproduce #21739 late ACP session/load response losing …

    …controls
    
    These tests reproduce #21739: when the replay-idle gap elapses before the
    agent answers session/load, the runtime never adopts the real response's
    config options and the adapter keeps model switching disabled.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    juliusmarminge and claude committed Oct 22, 2026
    Configuration menu
    Copy the full SHA
    6dd48e2 View commit details
    Browse the repository at this point in the history
  2. fix(acp): adopt a session/load response that arrives after replay idle

    When replay idle made a loaded ACP session usable before the agent answered
    session/load, the race interrupted the request waiter, so the real response's
    config options, modes and model config id were never adopted, and the adapter
    kept model switching disabled because it froze the capability at open.
    
    The runtime now keeps the session/load request running (still bounded by
    sessionLoadTimeout and scoped to the runtime) and adopts its response once the
    provisional session is active, emitting the usual config/mode events. The
    response is dropped if the session was superseded, the runtime is stopping, or
    a newer selection or config update landed first. The adapter recomputes
    supportsModelSwitchInSession on config updates and publishes it with
    provider_session.updated, and the session manager forwards the live
    providerSession instead of a spread snapshot.
    
    Fixes #21739
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    juliusmarminge and claude committed Oct 22, 2026
    Configuration menu
    Copy the full SHA
    cbe29aa View commit details
    Browse the repository at this point in the history
  3. fix(acp): a late session/load response refreshes the model catalog

    Registry agents fill their model picker from onSessionConfigurationUpdate,
    which only ran for raw config/mode notifications and during setup. The
    runtime now emits SessionSetupAdopted after adopting a late session/load
    response; the adapter swaps in that setup (so legacy `models` count for
    model switching) and publishes the configuration once.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    juliusmarminge and claude committed Oct 22, 2026
    Configuration menu
    Copy the full SHA
    67b7bd3 View commit details
    Browse the repository at this point in the history
  4. fix(acp): re-apply the thread selection after a late session/load

    A late session/load adoption now clears the configured selection so the
    next turn configures the model and mode against the real options. The
    model-switch capability refresh is upgrade-only, and a late session/load
    failure or timeout is logged as failed.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    juliusmarminge and claude committed Oct 22, 2026
    Configuration menu
    Copy the full SHA
    b586665 View commit details
    Browse the repository at this point in the history
  5. fix(acp): Plan restore no longer uses the provisional setup after a l…

    …ate session/load
    
    The build snapshot recorded by a Plan configureSession against the
    provisional replay-idle setup was empty, so turning Plan off after the late
    session/load response was adopted restored nothing. Drop the snapshot on
    adoption so the next Plan turn records the real mode.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    juliusmarminge and claude committed Oct 22, 2026
    Configuration menu
    Copy the full SHA
    edc4496 View commit details
    Browse the repository at this point in the history
  6. fix(acp): a selection sent before a late session/load reply keeps it …

    …from being adopted
    
    The late-response guard only saw mode/config writes once the agent answered
    them, so an agent that serves requests in order could have its stale load
    response adopted over a pending set_mode/set_config_option/set_model. Count
    those writes when they are sent and drop the late response if any were sent
    after the provisional start. The opening model-switch capability also keeps
    the negotiated value instead of possibly opening lower.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    juliusmarminge and claude committed Oct 22, 2026
    Configuration menu
    Copy the full SHA
    9d6926b View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2026

  1. Merge remote-tracking branch 'origin/main' into HEAD

    # Conflicts:
    #	apps/server/scripts/acp-mock-agent.ts
    #	apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts
    #	packages/provider-acp/src/server/AcpSessionRuntime.ts
    juliusmarminge committed Oct 30, 2026
    Configuration menu
    Copy the full SHA
    77f990c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    937f1f5 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2026

  1. Merge remote-tracking branch 'github/main' into HEAD

    # Conflicts:
    #	packages/provider-acp/src/server/AcpSessionRuntime.ts
    #	packages/provider-acp/src/server/adapter.ts
    juliusmarminge committed Nov 3, 2026
    Configuration menu
    Copy the full SHA
    7186a1a View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2026

  1. Merge remote-tracking branch 'origin/main' into fix/issue-21739

    # Conflicts:
    #	apps/server/src/orchestration-v2/ProviderSessionManager.ts
    #	packages/provider-acp/src/server/adapter.ts
    juliusmarminge committed Nov 11, 2026
    Configuration menu
    Copy the full SHA
    4d3ee76 View commit details
    Browse the repository at this point in the history
  2. test(server): drop the late session/load selection test the drop case…

    … already covers
    
    AI-assisted; verified with the tests and tools listed above.
    juliusmarminge committed Nov 11, 2026
    Configuration menu
    Copy the full SHA
    a87c21b View commit details
    Browse the repository at this point in the history
  3. fix(acp): a mode notification before a late session/load reply keeps …

    …it from being adopted
    
    A current_mode_update can leave the mode state reference unchanged (no mode
    metadata yet, or a mode outside availableModes), so the identity guard let
    the stale load response through and it overwrote the newer mode. Count
    accepted mode and config notifications alongside session writes.
    
    AI-assisted; verified with the tests and tools listed above.
    juliusmarminge committed Nov 11, 2026
    Configuration menu
    Copy the full SHA
    8948ec7 View commit details
    Browse the repository at this point in the history
  4. fix(acp): a late session/load reply defers to startup metadata and se…

    …ssion open
    
    The runtime now snapshots its change count before applying buffered startup
    notifications, so metadata newer than the provisional start drops the late
    response. The adapter holds an adoption that lands during openSession and
    applies it once the initial configuration is in place, so the real catalog
    and the thread's selection are not overwritten by the provisional ones.
    
    AI-assisted; verified with the tests and tools listed above.
    juliusmarminge committed Nov 11, 2026
    Configuration menu
    Copy the full SHA
    79eb316 View commit details
    Browse the repository at this point in the history
Loading