-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Keeping authority stable while the model switches #4579
Copy link
Copy link
Open
Labels
cliCLI, config inject, packaging flagsCLI, config inject, packaging flagsenhancementNew feature or requestNew feature or requestneeds-design설계 필요. Implementation waits on a written design.설계 필요. Implementation waits on a written design.priority: P3Low: new provider/client integration, large or experimental feature (>2000 LOC or >50 files), RFC/roLow: new provider/client integration, large or experimental feature (>2000 LOC or >50 files), RFC/ro
Description
Activity
Metadata
Metadata
Assignees
Labels
cliCLI, config inject, packaging flagsCLI, config inject, packaging flagsenhancementNew feature or requestNew feature or requestneeds-design설계 필요. Implementation waits on a written design.설계 필요. Implementation waits on a written design.priority: P3Low: new provider/client integration, large or experimental feature (>2000 LOC or >50 files), RFC/roLow: new provider/client integration, large or experimental feature (>2000 LOC or >50 files), RFC/ro
Area
CLI
What are you trying to accomplish?
Nice proxy. The combos and failover setup is the cleanest way I've seen to stop caring which provider is actually doing the work.
I've been working on the other half of that problem: what happens to the user's permissions and acceptance rules when the worker changes. I have a live Claude→Codex example where neither provider owns those rules — the worker changed mid-job, the approved job didn't restart, and the replacement didn't inherit the previous provider's authority or private context. The rules live with the owner and get checked at the receiver, outside either provider.
Two places where that maps onto what opencodex already does. First, the executor/policy boundary — your docs already disable native exec paths because they bypass the client's approval/sandbox path, which is exactly where receiver-owned authorization would sit. Second, cross-model subagents: one model can hand work to another while keeping the native UI, but delegating work shouldn't automatically delegate authority. The child should only carry what the user explicitly granted.
You made the model replaceable; I've been working on making the model's authority replaceable-independent too. Those two pieces fit unusually well. Write-up here if you want to look: https://github.com/terryncew/openline-wallet/blob/main/APPROVED_JOB_LIVE_001.md
What prevents this today?
Permissions and acceptance rules are provider-owned today: when the worker changes mid-job, the authorization context follows the provider instead of the owner.
What should OpenCodex do?
Keep the authorization rules with the owner and check them at the receiver, independent of which provider executes the work — so delegating work to a child model does not automatically delegate authority.
Example usage or interface
A Claude→Codex handoff mid-job where the replacement worker does not inherit the previous provider's authority or private context, while the approved job does not restart. Write-up: https://github.com/terryncew/openline-wallet/blob/main/APPROVED_JOB_LIVE_001.md
Alternatives or workarounds
No response
Additional context
No response
Checks