You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(login,workflow): keep the output schema on retry and persist the picked effort
Two defects a review swarm surfaced, both verified against source and both
reproduced by a failing test before the fix.
A workflow subagent lost its output schema whenever a provider rate limit forced
its turn to be retried: the retry path never forwarded the schema, so the model
was not offered the StructuredOutput tool, answered in prose, and the batch
recorded it as completed rather than as a schema failure. The structured-output
contract was void on exactly the path most likely to be taken under load, with
no trace. Existing coverage only exercised the spawn path, which is why this
stayed green.
Login stored only an on/off thinking flag, so picking low, medium, or xhigh
reopened the session at high, and an OpenAI Codex login reopened at the model's
maximum effort no matter what was chosen. The level now travels with the
boolean, and a level the model does not declare is still ignored rather than
persisted. The TUI's own model picker also built its aliases by hand and dropped
the declared efforts, so it now shares the one converter.
Also adds the changesets this branch was missing: the size guideline and kill
switch, the fan-out caps, run correlation, and the ACP method rename.
Rename the ACP authentication method to reflect that login is multi-provider: it now reads "Log in with a provider" and explains that the provider is chosen in a terminal. Clients matching the previous wording will need updating.
Save the thinking-effort level picked during login. Only an on/off flag was stored, so choosing low, medium, or xhigh reopened the session at high, and an OpenAI Codex login reopened at the model's maximum effort regardless of the choice.
Keep a Dynamic Workflow subagent's output schema when a provider rate limit forces its turn to be retried. The retried turn lost the schema, so the subagent answered in prose and the workflow reported it as completed rather than as a schema failure.
Give every Dynamic Workflow run an id and stamp it on the subagent events it produces, so a client can tell which run a given subagent belongs to when several are in flight.
Add two ways to rein in Dynamic Workflow fan-out: `disableWorkflows` turns the tool off entirely, and `workflowSizeGuideline` sets an advisory ceiling that is mentioned to the model and warned about, on every surface, when a run exceeds it. Both are settable in config or by environment variable.
Bound subagent fan-out with hard caps: 128 subagents per call, 200 per session, and a nesting depth of 3. Nesting was previously unbounded, so a workflow that spawned workflows could grow without limit; past depth 3 the call now fails instead.
0 commit comments