Skip to main content

build_side_question_argv

Function build_side_question_argv 

Source
pub(crate) fn build_side_question_argv(
    base_one_shot_args: &[String],
) -> Vec<String>
Expand description

Build the argv for a /btw side-question one-shot turn (server/agent_handlers/side_question.rs) from base_one_shot_args — the same one-shot cli_args a normal turn on this block would use.

Deliberately does NOT touch resume/session-id handling: the caller always passes SubprocessSpawnConfig::session_id: None for this turn (a /btw never resumes a session — context comes from a text prefix in the prompt instead, per the module’s design), so build_turn_argv’s own session_id.is_none() branch already returns base unchanged with no --resume appended — nothing here needs to duplicate that guarantee.

Appends two flags, confirmed against code.claude.com/docs/en/cli-reference (checked 2026-09-19):

  • --disallowedTools "*" — the docs’ own words are “a bare tool name removes the matching tools… \"*\" removes every tool”, making this turn fully tool-less. The doc’s other caveat — “a rule naming EndConversation can’t remove it while any other tool remains” — is about a rule that NAMES EndConversation specifically; a wildcard that merely happens to cover it too is a different case and isn’t described as failing.
  • --max-turns 1 — print mode’s own hard cap on agentic turns, a backstop against looping that holds even if the no-tools flag were somehow bypassed.

--output-format stream-json is NOT added here — every subprocess-mode provider’s base one-shot launch_args already carries it (see providers.rs), so base_one_shot_args already has it.