mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 02:11:28 +00:00
`stripClaudeSubcommandSessionArgs` was unconditionally stripping `--permission-mode`, `--dangerously-skip-permissions`, and `--allow-dangerously-skip-permissions` from every Claude subcommand invocation. That's correct for `auth`/`doctor`/`mcp`/etc. — their parsers reject those flags with `error: unknown option '...'`. But `claude agents` does accept all three (see `claude agents --help`): they configure the default permission mode for sessions dispatched from the agent view. As a result, `ccs <profile> agents --permission-mode bypassPermissions` silently dropped the flag before forwarding to Claude and the agent view kept its previous default. Add a small per-subcommand allowlist (`SUBCOMMAND_ALLOWED_SESSION_FLAGS`) and a `getClaudeSubcommandName(args)` helper, then branch the strip logic on the detected subcommand. `agents` keeps the three permission flags; every other subcommand (including unknown future ones) falls through to the existing strip behavior. `--teammate-mode` is still stripped for every subcommand — no upstream subcommand accepts it. Tests cover both before- and after-position arguments, the `--flag=value` form, the `--teammate-mode` exclusion for `agents`, and regression coverage for non-`agents` subcommands.