Tam Nhu Tran
1c72b4b8d5
refactor(cliproxy): flatten module structure and colocate tests ( #1135 )
...
- Split types.ts (331 LOC) into 4 concern-based files under types/:
platform-types, binary-types, provider-types, config-types
- Preserve backward compat via barrel re-export (types.ts → types/index)
- Reorganize 53 root-level files into 8 subdirectories:
accounts/, ai-providers/, auth/, binary/, config/, executor/,
management/, proxy/, quota/, routing/, services/, sync/
- Reduce src/cliproxy/ root from 65 to 8 files (target: ≤10)
- Colocate 87 unit tests from tests/unit/cliproxy/ into
src/cliproxy/*/__tests__/ (13 colocated test directories)
- Update import paths across 40+ consumer files
- Add TDD backward-compat test for types split
Refs #1135
2026-04-29 17:06:39 -04:00
Tam Nhu Tran
6c799b2e58
feat(logging): unify CCS runtime logs and dashboard viewer
...
- add a shared structured logging service with bounded retention
- expose native /api/logs endpoints and the dashboard /logs route
- wire focused runtime emitters, cleanup support, and feature tests
Refs #926
2026-04-08 15:57:15 -04:00
kaitranntt
46f1699b1c
fix(ghcp): display device code during OAuth device code flow
...
When authenticating with GitHub Copilot using device code flow,
the user code was not being displayed. This fix:
- Parses device codes from CLIProxy output in oauth-process.ts
- Displays code prominently in CLI terminal with box formatting
- Broadcasts device code events via WebSocket for UI display
- Creates DeviceCodeDialog component for web UI (ccs config)
- Follows same pattern as Gemini project selection dialog
Closes #189
2025-12-24 03:02:36 -05:00
kaitranntt
a66abba174
feat(cliproxy): implement interactive project selection for OAuth flows
...
- Add ProjectSelectionHandler to parse and handle CLIProxy project prompts
- Integrate project selection into AuthHandler with UI-first support
- Add project selection API endpoints and WebSocket events
- Implement ProjectSelectionDialog and useProjectSelection hook in UI
- Fixes macOS OAuth timeout by handling interactive project selection via UI
2025-12-18 04:11:59 -05:00
kaitranntt
4005f1c01c
feat(cli): standardize UI output with ui.ts abstraction layer
2025-12-12 05:11:59 -05:00
kaitranntt
56502ab6a8
feat(web-dashboard): add rest api and real-time sync
...
REST API & CRUD:
- Add REST API routes for profiles, cliproxy, accounts
- Integrate React Query with data fetching hooks
- Create API client wrapper with TypeScript types
- Add shadcn/ui components (dialog, input, label, table)
- Build profiles table with edit/delete actions
- Create profile form dialog with zod validation
- Mount QueryClientProvider in App
Real-time Sync & WebSocket:
- Implement file watcher with chokidar for config changes
- Create WebSocket server with broadcast capability
- Add client auto-reconnect with exponential backoff
- Integrate React Query cache invalidation on WS messages
- Add connection status indicator in header
- Implement heartbeat keepalive (30s interval)
- Add graceful cleanup on server shutdown
- Show toast notifications for external config changes
Dependencies:
- Add @tanstack/react-query, react-table, react-hook-form, zod
- Add chokidar for file watching
2025-12-07 12:00:56 -05:00
kaitranntt
6a6f2a2463
feat(web-dashboard): add express server and react ui scaffolding
2025-12-07 11:37:28 -05:00