Repository navigation
Conversation
Make task-fit overrides explicit in the managed AGENTS policy and delegation skill, so a visible roster does not silently fall through to parent inheritance. Preserve the selection contract and eligible roster annotations in custom V2 prompts, use fork_turns none, and cover the behavior with regression tests and updated documentation.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A configured Commander roster can be visible to a Codex parent while every child still inherits the parent model. The parent must pass the selected ID in
spawn_agent.model; advertising a roster does not select a worker. This change makes that request explicit in the managed policy and skill, and preserves model-selection instructions through custom V2 prompts.Observed issue and instruction ambiguity
In an affected native Sol conversation, earlier spawn calls supplied Luna and DeepSeek model IDs. Later calls omitted
model, even though Commander still injected the roster. Those children inherited Sol, and Commander's serving records show Sol was already the requested model. There was no proxy-side substitution of Luna or DeepSeek.The native collaboration instructions permitted model overrides when explicitly requested by the user, applicable
AGENTS.md, or a skill. Commander's generated policy said to consult the roster and match work to task fit, while its skill conditioned overrides on the active contract permitting them. Neither clearly supplied the explicit request in the instruction source Codex expected.The custom
injectionPromptpath compounded that ambiguity: it returned the customized text in place of the built-in selection instructions and expanded{{roster}}without per-model guidance. A valid custom prompt could therefore preserve model IDs while dropping the instructions for selecting and passing them.These are verified instruction gaps and observed omission/inheritance behavior. The parent's private reasoning is unavailable. The same native override restriction appeared in both successful and affected calls, so this PR does not attribute the change to a Codex update.
Change and reason to merge
fork_turns: "none"for overrides.{{roster}}with eligible per-model annotations, preserving the guidance operators configured.This closes a gap between Commander's roster configuration and Codex's explicit-override contract without requiring operators to repair each custom prompt themselves. Freshness, route, surface, encrypted-task compatibility, and native validation gates remain authoritative. The change clarifies the model's instructions; it does not guarantee a particular model choice on every task.
Validation
bun run typecheckandbun run privacy:scanpassed.bun run test:parallelrun completed its initial work queue. The shim failure passed its automatic same-mode retry. The eight-file macOS packaging batch hit dependency-install timeouts with an empty isolated-home cache; its stuck retry was stopped, then only that same shared batch was rerun using the populated Bun cache with test-home isolation preserved: 58 passed, 0 failed. The original full-suite process did not exit zero; this is combined verification with the failed batch recovered in its original mode.git diff --checkpassed.Activation for existing installations
Refresh the managed delegation setup through Commander's installer/dashboard after upgrading, then start a new Codex task so it loads the updated policy. Existing managed artifacts are ownership-checked and reported as outdated; merely pulling this source change does not rewrite an installed global policy.