Skip to content

Allow thread execution overrides for all providers - #1610

Merged
ymichael merged 1 commit into
mainfrom
bb/explain-model-change-error-thr_8ky7fb5ceh
Aug 14, 2026
Merged

Allow thread execution overrides for all providers#1610
ymichael merged 1 commit into
mainfrom
bb/explain-model-change-error-thr_8ky7fb5ceh

Conversation

@ymichael

Copy link
Copy Markdown
Collaborator

Summary

  • remove the stale Claude-only gate for sticky thread model and reasoning overrides
  • validate every override against the thread provider's active model catalog, while retaining the requirement to start a new thread when changing providers
  • add route coverage for Codex, Claude Code, Pi, and ACP and document how sticky overrides differ from per-turn follow-up overrides

Context

The original implementation explicitly gated Codex out for v1. That policy became stale: follow-up requests already send changed model and reasoning settings through the same next-turn/runtime reconfiguration paths, and the Codex, Pi, and ACP resume adapters all apply those settings today.

Deleting the now-always-supported capability avoids rejecting future and dynamically configured ACP providers through a second provider allowlist.

Testing

  • pnpm exec turbo run test --filter=@bb/server -- test/public/public-threads.execution-override.test.ts test/services/threads/thread-execution-override.test.ts
  • pnpm exec turbo run test --filter=@bb/agent-providers --filter=@bb/templates
  • pnpm exec turbo run typecheck --filter=@bb/server --filter=@bb/agent-providers --filter=@bb/templates

AGENT GENERATED: by GPT-5

@bb-slop-cop

bb-slop-cop Bot commented Aug 14, 2026

Copy link
Copy Markdown

🚨 SLOP COP 🚨 · review

I am the Slop Cop. I am reviewing this pull request for security, code quality, performance, architecture, and end-to-end behavior.

);
}

const models = await loadThreadProviderModels(deps, thread);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 slopcop/review — Keep a restore gate for ACP execution overrides

This now accepts model changes for every dynamic ACP provider. The runtime classifies ACP model changes as session changes and sends thread/resume.

When an agent lacks loadSession, the bridge creates session/new. The next turn then loses prior provider context.

Please retain a capability gate for these agents. Alternatively, add a live ACP model change that does not replace the session.

Please add a custom ACP test without loadSession. The current route matrix only checks built-in catalog persistence.

@bb-slop-cop bb-slop-cop Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 SLOP COP 🚨 · review

Plain English summary

This change lets each provider change a thread model and reasoning level for later turns. The server limits each model choice to the current provider.

Review

I found one high-impact correctness problem.

  • Custom ACP agents without loadSession can lose provider conversation history after a valid override.
  • ACP treats the model change as a session change. The runtime sends thread/resume.
  • The bridge creates a new session when the agent cannot restore the old session.
  • Keep a capability gate for these agents, or add a live option change path.
  • Add a test with a custom ACP agent that lacks loadSession.

The security review found no issue. The performance review found no hot-path or scale problem.

The capability removal reduces a duplicate provider list. A runtime support check would better match each active provider session.

Validation

  • The focused server suite passed 15 tests.
  • The provider suite passed 11 tests.
  • The template suite passed 44 tests.
  • Type checks passed for the server, provider, and template packages.
  • All current GitHub CI checks passed.
  • The exact pull request SHA ran in a local development server.
  • A browser PATCH returned 200 for a Codex model and reasoning update.
  • The next Codex turn used gpt-5.6-luna with high reasoning.

@ymichael
ymichael merged commit 5bd6b0b into main Aug 14, 2026
10 checks passed
@ymichael
ymichael deleted the bb/explain-model-change-error-thr_8ky7fb5ceh branch August 14, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant