Summary
Three small but reproducible CLI/argument-parsing bugs surfaced in the CAIA-bench batch. Bundled because each is a one-line fix.
Bug 1 — Cobra parser consumes -X.Y substrings inside --q
surf search-web --q "Kit AI ... -voice -s.ai" → invalid argument "s.ai" for "-t, --rsh-timeout" flag: time: invalid duration "s.ai". The cobra parser is treating -s as the -t short alias.
Fix: require --q="..." form OR ---terminate, OR use cobra.UnknownFlags() for the search subcommands.
Reproducer: pi-grok-4-2/GT071.
Bug 2 — exchange-perp re-appends :QUOTE even when input has it
Input BTCUSDT → API call BTCUSDT:USDT. Input BTC/USDT → API call BTC/USDT:USDT. Result: 8 NOT_FOUND errors.
Fix:
if !strings.Contains(symbol, ":") {
symbol += ":" + quote
}
Reproducer: claude-opus-oauth/GT082.
Bug 3 — fund-portfolio --invested-after is int-typed but documented like a date
surf fund-portfolio --id <uuid> --invested-after 2023-01-01 → invalid argument "2023-01-01" for "--invested-after" flag: strconv.ParseInt: parsing "2023-01-01": invalid syntax.
Fix: accept date string AND int (parse string as ISO date), OR rename to --invested-after-ts with clear int docs.
Reproducer: pi-grok-4-2/GT058.
Source
cyberconnecthq/research-eval → reviews/surf_cli_vulns.md sections D9, E1, E2.
Summary
Three small but reproducible CLI/argument-parsing bugs surfaced in the CAIA-bench batch. Bundled because each is a one-line fix.
Bug 1 — Cobra parser consumes
-X.Ysubstrings inside--qsurf search-web --q "Kit AI ... -voice -s.ai"→invalid argument "s.ai" for "-t, --rsh-timeout" flag: time: invalid duration "s.ai". The cobra parser is treating-sas the-tshort alias.Fix: require
--q="..."form OR---terminate, OR usecobra.UnknownFlags()for the search subcommands.Reproducer:
pi-grok-4-2/GT071.Bug 2 —
exchange-perpre-appends:QUOTEeven when input has itInput
BTCUSDT→ API callBTCUSDT:USDT. InputBTC/USDT→ API callBTC/USDT:USDT. Result: 8NOT_FOUNDerrors.Fix:
Reproducer:
claude-opus-oauth/GT082.Bug 3 —
fund-portfolio --invested-afteris int-typed but documented like a datesurf fund-portfolio --id <uuid> --invested-after 2023-01-01→invalid argument "2023-01-01" for "--invested-after" flag: strconv.ParseInt: parsing "2023-01-01": invalid syntax.Fix: accept date string AND int (parse string as ISO date), OR rename to
--invested-after-tswith clear int docs.Reproducer:
pi-grok-4-2/GT058.Source
cyberconnecthq/research-eval→reviews/surf_cli_vulns.mdsections D9, E1, E2.