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
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