- Add GitHub link button next to connection status for quick issue reporting
- Add 24H button on analytics page with hourly granularity chart
- Add /api/usage/hourly endpoint with date range filtering
- Add hourly data aggregation and caching (disk + memory)
- Fix timezone display: convert UTC hours to local time in chart
- Fix CLIProxy Stats card loading state synchronization
- Bump disk cache version to 3 (includes hourly data)
- Add label-pending-release.yml workflow to tag issues when PR created
- Update dev-release.yml to comment and label issues after npm publish
- Labels: pending-release (yellow), released-dev (blue)
- Auto-removes pending-release when released-dev is applied
When a user explicitly installs a specific CLIProxy version via
`ccs cliproxy --install <version>`, this version should persist and
not be auto-updated. Previously, subsequent commands would check for
updates and overwrite the user's choice.
Changes:
- Add .version-pin file to persist user's explicit version choice
- Update ensureCLIProxyBinary() to check for version pin and skip auto-update
- Update --install command to save version pin with "(pinned)" confirmation
- Update --latest command to clear version pin and enable auto-update
- Add --update command as alias for --latest (for unpinning workflow)
- Update status display to show "(pinned)" indicator when version is pinned
- Update help text to document new pin/unpin behavior
Closes#88
Relaxed isUnifiedConfig() type guard to accept version >= 1 and partial
configs. Added mergeWithDefaults() to preserve user data while filling
missing sections. Fixes profile "not found" after terminal restart.
Closes#82
- Add split-view provider editor with model mapping UI and JSON editor
- Implement persistent custom presets (save/load per provider)
- Add provider logos with white backgrounds for light/dark theme
- Integrate CLIProxyAPI control panel embed via iframe
- Add service manager for CLIProxyAPI lifecycle control
- Support variant logo display using parent provider
- Add categorized model selector with search and groups
- Replace tab-based layout with sidebar + detail panel pattern
- Add provider navigation in left sidebar with quick actions
- Implement provider detail panel with model preferences and accounts
- Add Config Editor and Logs quick access in sidebar
- Fix naming consistency: Clipproxy → Cliproxy (single p) across 8 files
- Fix TypeScript errors for models and stats data shapes
- Reorganize quality gates into mandatory sections for main project and UI
- Add comprehensive ESLint and TypeScript configuration tables
- Include automatic enforcement and pre-commit hook information
- Update development server usage instructions
- Expand Pre-PR checklist with separate validation steps
- Add stats-fetcher.ts for CLIProxy analytics integration
- Add openai-compat-manager.ts for model discovery and listing
- Add CLIProxy stats routes to web-server for real-time metrics
- Create cliproxy-stats-card component for analytics dashboard
- Add use-cliproxy-stats hook for data fetching
- Extend doctor.ts with CLIProxy health checks
- Update analytics page with CLIProxy usage metrics
- Add examples for codex provider authentication
- Clarify that gemini, codex, and agy are different providers
- Show account listing and switching examples for each provider
- Fix overflow issues in main layout by removing pb-12 and adding min-h-0
- Fix code editor theme switching by adding key prop to force re-render
- Fix localhost disclaimer positioning by removing fixed positioning and redundant padding
- Simplify analytics page layout structure and adjust spacing
- Add GET/PUT /api/file endpoints for generic file access with security validation
- Add GET /api/files endpoint to list editable JSON files in ~/.ccs/
- Create CodeEditor component with JSON syntax highlighting (prism-react-renderer)
- Add "Raw JSON" tab to SettingsDialog for direct JSON editing
- Support conflict detection, atomic writes, and automatic backups
- Lazy load editor to minimize initial bundle impact (~31KB gzipped)
Closes#73
- Add URL warning for common mistakes (e.g., /chat/completions endpoint)
- Add optional model mapping prompt for Opus/Sonnet/Haiku backends
- Show edit hint after profile creation for modifying settings
- Support custom model configurations in unified config mode
Closes#72
Prevents double migration message when user explicitly runs
'ccs migrate --dry-run' - autoMigrate was triggering real migration
before the migrate command handler ran.