Repository navigation
Description
Describe the bug
In an interactive 1.0.109 session with experimental features on, the task tool's model parameter lists hydrafusion and hydrafusion-max among its values, and /model with an unsupported name lists both under "Available models:". A sub-agent launched with either one does not run HydraFusion:
- In 1.0.109, the launch fails before the sub-agent makes any model request, with
Model "hydrafusion" is not available. - In 1.0.105 and 1.0.108, the sub-agent completes, but its request goes to the saved default model from
settings.json. Itssubagent.completedevent reports"model":"hydrafusion"and names the default model only infirstDispatchedModel. Thetasktool result does not mention the substitution.
With the same account, hydrafusion works as the session model in 1.0.109: copilot --experimental --model hydrafusion -p "..." returns an answer.
The 1.0.109 changelog entry "Show an error when a selected or saved model is unavailable instead of silently switching to another model" seems to explain why 1.0.109 reports an error where 1.0.105 and 1.0.108 substituted the default model.
Affected version
1.0.109 (error); 1.0.105 and 1.0.108 (substitution). Linux x86-64.
Steps to reproduce the behavior
-
Run a prompt-mode session launching one sub-agent with the model under test:
copilot --experimental --model claude-haiku-4.5 --no-custom-instructions --no-auto-update --available-tools task --output-format json -p 'Call the task tool exactly once with these arguments: agent_type "general-purpose", name "probe", description "model probe", mode "sync", model "hydrafusion", prompt "Reply with exactly one word: ok". Then output the tool result verbatim and stop. Do not call any other tool and do not retry.' -
On 1.0.109, the
subagent.failedevent in the output has these fields, among others:{"error": "Model \"hydrafusion\" is not available.", "model": "hydrafusion", "explicitModelOverride": "hydrafusion", "modelSelectionSource": "explicit_override", "totalToolCalls": 0, "durationMs": 40}With
model "hydrafusion-max"the launch fails the same way. Withmodel "gpt-6-luna"the sub-agent completes and returnsok. -
For the earlier builds, I ran that command with three environment variables:
COPILOT_CLI_DIST_DIRset to the cached 1.0.105 or 1.0.108 package under~/.cache/copilot/pkg/linux-x64/,COPILOT_AUTO_UPDATE=false, andCOPILOT_HOMEset to a directory holding only asettings.jsonwith{"model":"gpt-6.1-sol","experimental":true}. Adding--usage-output-file <path>shows the models used. On both builds, thesubagent.completedevent had"model":"hydrafusion"and"firstDispatchedModel":"gpt-6.1-sol", and the usage file listed one request togpt-6.1-solnext to the session model's two requests. Withmodel "hydrafusion-max"on 1.0.105, the event had"model":"hydrafusion-max"and the samefirstDispatchedModel. -
With
"model":"gemini-3.8-flash"in thatsettings.json, on 1.0.108, the request went togemini-3.8-flashinstead, forhydrafusionand forhydrafusion-max. On 1.0.109 with the same directory, thehydrafusionlaunch fails as in step 2. -
On 1.0.109, I also tried
fusion(the Copilot Fusion alias) andauto. Neither is in thetasktool's list in the interactive session, so I added this sentence to the prompt after the argument list:Pass the model value exactly as given even if it is not among the listed values.Withmodel "fusion"the launch fails the same way (Model "fusion" is not available.), although--model fusionreturns an answer as the session model. Withmodel "auto"the sub-agent completes with one request togpt-6-luna, so absence from the list does not by itself cause the rejection.
Expected behavior
Either a sub-agent can run HydraFusion, or the task tool does not offer hydrafusion and hydrafusion-max and the documentation states the limitation. The HydraFusion documentation says only that "HydraFusion works separately from subagents and doesn't start them", without saying whether a sub-agent can run HydraFusion.
Activity