Patch release 1.0.17: live session config over ACP (model and reasoning effort), and a simpler background-task wait API that folds multi-task waiting into get_command_or_subagent_output.
Changelog
[new] Agent-mode sessions expose typed configOptions on session/new and session/load (standard ACP). Clients can change a live option with session/set_config_option. Supported IDs: model (switch the session model) and reasoning_effort (minimal / low / medium / high / xhigh on the current model when it advertises support). The response is the full updated option list; a config_option_update notification keeps subscribers in sync, and leader mode keeps each client’s default model aligned when model changes.
[changed]get_command_or_subagent_output now takes task_ids as a list (one id is a single-element array; max 20). Omit timeout_ms or pass 0 for a non-blocking snapshot; a positive timeout waits until all listed tasks complete (clamped to one hour). If the wait returns while work is still running, leave the child alone—completion wakes the parent automatically.
[removed]wait_commands_or_subagents is gone. Multi-task waiting is handled by get_command_or_subagent_output with a task_ids list instead of a separate wait tool and wait_any / wait_all modes.
[changed] Docs for agent mode, sessions, background tasks, and permissions reflect the config-option RPC and the unified background-output tool.
Under the hood
Positive background waits honor GROK_MAX_WAIT_BLOCK_MS when the host transport deadline is shorter than the one-hour clamp (plain milliseconds; invalid values keep the default).
Sampler builds include additional span-timing instrumentation for internal latency measurement.
Upgrade notes
ACP or automation that called wait_commands_or_subagents should call get_command_or_subagent_output with task_ids (and optional timeout_ms) instead.
To change model or reasoning effort on a live agent session, use session/set_config_option with the documented value shape ({ "value": "…" }). Boolean config values are not supported yet.