The spawn() call was missing the env option, so ANTHROPIC_AUTH_TOKEN
and ANTHROPIC_BASE_URL were not being passed to the proxy subprocess.
This caused 401 Unauthorized errors.
OpenAI-compatible endpoints like /chat/completions require Authorization header
with 'Bearer ' prefix. Previously the token was sent without prefix, causing
401 Unauthorized errors.
Auto-detects endpoint type based on URL path and formats header accordingly.
Fixes#61
- Add auth status endpoint to show built-in profiles authentication state
- Display auth status in UI with visual indicators for authenticated state
- Show last authentication date and token file count
- Update CLI command to better differentiate between built-in profiles and custom variants
- Improve UI layout to separate built-in profiles from custom variants
- Increase border and input opacity from 0.25 to 0.35 for better visibility
- Update GitHub repository link from claude-cli to ccs
- Maintain consistent theme styling across components
- Fix README.md dashboard command (ccs config) and port info
- Update all documentation to reflect React 19 dashboard
- Document new tooling: Bun, Vite, semantic release
- Add TypeScript strict mode and type coverage details
- Update architecture with WebSocket and modern stack
- Revise project roadmap with current implementation status
Move Crail from primary to accent color and promote neutral grey to primary.
Update all related color variables for both light and dark themes to maintain
visual consistency. Add new dev script to streamline development workflow.
- Settings editor with API key masking and conflict detection
- Health dashboard with status cards and one-click fixes
- Home dashboard with stats and quick actions
- Shared data viewer for commands/skills/agents
- Build scripts for UI + server bundle
- Bundle size verification (<500KB gzipped)
- Pre-release checklist script
- Add port-utils.ts module to detect which process occupies CLIProxy port
- Enhance doctor command to show specific process (PID/name) using port
- Distinguish between CLIProxy process vs other conflicting processes
- Support cross-platform detection (Windows netstat, Unix lsof)
- Provide actionable guidance when port conflict detected
This helps users identify if CLIProxy is already running or if another
application needs to be terminated to free up the port.
Deprecated 2 Claude thinking models:
- gemini-claude-opus-4-5-thinking
- gemini-claude-sonnet-4-5-thinking
These models have compatibility issues with Antigravity.
A new deprecation system was added with badges and warnings in the UI.
- Styled cliproxy help output with UI primitives and added status hint
- Added cliproxy --help reference to main help command
- Updated bash, zsh, fish, and PowerShell completions with:
- Missing commands (api, cliproxy)
- CLIProxy OAuth profiles (gemini, codex, agy, qwen)
- Provider flags and update command flags
- Add `ccs cliproxy create/list/remove` commands for variant management
- Interactive wizard with provider/model selection from catalog
- Settings file auto-generated with all 6 ANTHROPIC_* env fields
- Fix `ccs api create` to include all 4 model fields (was missing 3)
- Fix `--config` flag to save to correct variant settings file
- Remove paid tier badge from AGY models (all free via Antigravity)
- Add settings file format example to README for CLIProxy variants
- Add 22 unit tests for cliproxy command validation and config handling
- Removed broken: true and issueUrl from Claude thinking models
- Added MAX_THINKING_TOKENS=8191 for Antigravity-proxied Claude models
- Removed alwaysThinkingEnabled:false requirement
- Updated info message explaining thinking token limit
Claude models now work with extended thinking when using Antigravity
proxy (MAX_THINKING_TOKENS < 8192 is required).