fix(env): address P1-P3 review items from code review

- P1: Fix bash completion $cliproxy_profiles scoping — inline profiles
  in env block since variable is only defined at COMP_CWORD=1 scope
- P2: Detect account-based profiles and show specific error message
  instead of generic "not found"
- P2: Show `ccs migrate` hint when unified mode is disabled and settings
  profile resolution fails
- P2: transformToOpenAI omits empty entries at transform time instead of
  relying on output filter (removes fragile coupling)
- P3: Add zsh and auto to --shell completions across all 4 shells; map
  --shell zsh to bash in command handler since syntax is identical
- P3: Auto-detect PowerShell from SHELL containing pwsh on non-Windows
- Tests: 33 pass (+1 pwsh detection test, updated transform assertions)
This commit is contained in:
Tam Nhu Tran
2026-02-11 07:09:58 +07:00
parent d5c03d1f2d
commit 3f5ecd4d69
6 changed files with 43 additions and 20 deletions
+3 -3
View File
@@ -155,8 +155,8 @@ _ccs_completion() {
if [[ ${COMP_WORDS[1]} == "env" ]]; then
case "${prev}" in
env)
# Complete with profile names and flags
local env_opts="--format --shell --help -h $cliproxy_profiles"
# Complete with profile names and flags (inline profiles since $cliproxy_profiles is out of scope)
local env_opts="--format --shell --help -h gemini codex agy qwen"
if [[ -f ~/.ccs/config.json ]]; then
env_opts="$env_opts $(jq -r '.profiles | keys[]' ~/.ccs/config.json 2>/dev/null || true)"
fi
@@ -168,7 +168,7 @@ _ccs_completion() {
return 0
;;
--shell)
COMPREPLY=( $(compgen -W "bash fish powershell" -- ${cur}) )
COMPREPLY=( $(compgen -W "auto bash zsh fish powershell" -- ${cur}) )
return 0
;;
*)