Commit Graph
610 Commits
Author SHA1 Message Date
github-actions[bot] 1a140e4a32 chore(release): 6.2.1-dev.2 [skip ci] 2025-12-18 06:46:12 +00:00
kaitranntt b4a63b6b71 docs(claude): restructure CLAUDE.md for clearer quality gate workflow
- Add Common Mistakes section to prevent format step being skipped
- Make pre-commit sequence explicit: format → lint:fix → validate
- Explain WHY this order matters (validate only checks, doesn't fix)
- Condense branching section from 110+ to 35 lines
- Merge 3 checklists into 1 unified Pre-Commit Checklist
- Remove duplicate ESLint/TS tables (now single merged table)
- Reduce total lines from 407 to 273 (-33%)
2025-12-18 01:43:58 -05:00
github-actions[bot] 26f45604ff chore(release): 6.2.1-dev.1 [skip ci] 2025-12-18 06:42:01 +00:00
Kai (Tam Nhu) TranandGitHub e222332e86 Merge pull request #130 from kaitranntt/kai/feat/session-persistence
feat(cliproxy): session persistence and dashboard status widget
2025-12-18 01:41:01 -05:00
kaitranntt 770c17e71c test(cliproxy): add lifecycle tests for stop/status commands
Add comprehensive unit tests for CLIProxy proxy lifecycle:
- Status command logic: session lock exists/not, uptime formatting
- Stop command logic: stale lock cleanup, active proxy stop
- Command routing: stop/status subcommands, unknown handling

Tests cover the CLI handlers for the new proxy persistence feature.
2025-12-18 01:37:24 -05:00
kaitranntt 85cfbde5fd fix(dashboard): detect legacy proxy instances without session lock
Proxy status endpoint now falls back to port check when session tracker
has no data. Handles proxies started before session persistence feature.
2025-12-18 01:30:35 -05:00
kaitranntt 589cd2c2b7 feat(dashboard): add CLIProxy status widget with start button 2025-12-18 01:26:30 -05:00
semantic-release-bot a68aa26824 chore(release): 6.2.1 [skip ci]
## [6.2.1](https://github.com/kaitranntt/ccs/compare/v6.2.0...v6.2.1) (2025-12-18)

### Bug Fixes

* **ui:** add error state handling to API Profiles page ([2e77646](https://github.com/kaitranntt/ccs/commit/2e77646d607676fee1297948878cd4ba1939c58f)), closes [#125](https://github.com/kaitranntt/ccs/issues/125)
* **websearch:** pass through to native WebSearch for account profiles ([6bd1f42](https://github.com/kaitranntt/ccs/commit/6bd1f420d994e799125f338940689e969e524991))
2025-12-18 06:11:54 +00:00
Kai (Tam Nhu) TranandGitHub b1c7c459bb Merge pull request #128 from kaitranntt/dev
fix(release): v6.2.0-dev.2 - WebSearch native passthrough and UI improvements
2025-12-18 01:10:51 -05:00
kaitranntt 81463eda65 test(cliproxy): add tests for stopProxy and getProxyStatus
Add unit tests for the new session tracker functions:
- stopProxy: error handling, stale lock cleanup, success structure
- getProxyStatus: not running, full status, dead proxy cleanup, session count
2025-12-18 01:04:33 -05:00
kaitranntt a7450bdffe feat(cliproxy): default session persistence for CLIProxy
CLIProxy now persists by default after terminal closes:
- Spawn proxy with detached mode (survives terminal close)
- Remove auto-kill on Claude exit (proxy keeps running)
- Add `ccs cliproxy stop` to explicitly terminate proxy
- Add `ccs cliproxy status` to show running proxy info

Closes #129
2025-12-18 00:57:09 -05:00
github-actions[bot] 641dc4b67a chore(release): 6.2.0-dev.2 [skip ci] 2025-12-18 05:34:22 +00:00
Kai (Tam Nhu) TranandGitHub 7d03933f44 Merge pull request #127 from kaitranntt/kai/fix/websearch-hook-native-passthrough
fix(websearch): pass through to native WebSearch for account profiles
2025-12-18 00:33:19 -05:00
kaitranntt 6bd1f420d9 fix(websearch): pass through to native WebSearch for account profiles
WebSearch hook was blocking native Claude accounts (ccs ck, default)
with "No Providers Enabled" message instead of passing through to
server-side WebSearch.

Changes:
- Add shouldSkipHook() detection for account/default profile types
- Fix blocking bug: exit(0) when no providers enabled instead of blocking
- Pass CCS_PROFILE_TYPE and CCS_WEBSEARCH_SKIP env vars for profile-aware behavior
- Add profile type signals to settings, cliproxy, account, and default execution paths
2025-12-18 00:27:40 -05:00
github-actions[bot] 7b40929a78 chore(release): 6.2.0-dev.1 [skip ci] 2025-12-18 05:27:35 +00:00
Kai (Tam Nhu) TranandGitHub e4ee713d11 Merge pull request #126 from kaitranntt/kai/fix/api-profiles-empty-state
fix(ui): add error state handling to API Profiles page
2025-12-18 00:26:32 -05:00
kaitranntt 2e77646d60 fix(ui): add error state handling to API Profiles page
Adds proper error handling when useProfiles() hook fails to fetch data.
Previously, API errors would cause a blank screen as the component had
no error state handling. Now shows a user-friendly error message with
a retry button.

Fixes #125
2025-12-18 00:20:25 -05:00
semantic-release-bot afe0f66b9f chore(release): 6.2.0 [skip ci]
# [6.2.0](https://github.com/kaitranntt/ccs/compare/v6.1.0...v6.2.0) (2025-12-18)

### Bug Fixes

* **ui:** improve account flow viz layout to fill available width ([7b876d2](https://github.com/kaitranntt/ccs/commit/7b876d23647eb190156e832df0b9bac6b7a6935f))
* **ui:** improve account-flow-viz layout and styling ([ee85a1f](https://github.com/kaitranntt/ccs/commit/ee85a1fd82c570e4c9296c746673c57a140f1677))
* **ui:** optimize bundle size and fix calendar crash ([572703f](https://github.com/kaitranntt/ccs/commit/572703f4399ae49dc73c3e1bdf00611a859a0f0f))
* **ui:** unify account card padding and fix SVG glow filter ([ab4c95b](https://github.com/kaitranntt/ccs/commit/ab4c95bac9a64145ab24ccc1f8f143be4f64d06b))

### Features

* **cliproxy:** remove thinking token cap and update agy haiku model ([925ac8e](https://github.com/kaitranntt/ccs/commit/925ac8e1d47066bf6bfa2e9a36a31ee972a1beb8))
* **ui:** add ClaudeKit badge and Sponsor buttons to navbar ([9028b74](https://github.com/kaitranntt/ccs/commit/9028b742f8f764217ccb04335d94c88966cbbb71))
* **ui:** add multi-zone layout and enhanced drag features to account flow viz ([365f820](https://github.com/kaitranntt/ccs/commit/365f820c55106b7a4c1e2af40637144fb58c7644))
* **ui:** extend privacy mode to blur cost/token values in analytics ([2bf7992](https://github.com/kaitranntt/ccs/commit/2bf7992a8a6cb316b252c6b6e20df7860b1b2b8e))
2025-12-18 00:02:11 +00:00
Kai (Tam Nhu) TranandGitHub 4818eff71e Merge pull request #122 from kaitranntt/dev
feat(release): v6.1.0 - UI enhancements and account flow improvements
2025-12-17 19:01:15 -05:00
github-actions[bot] 581be3ec12 chore(release): 6.1.0-dev.6 [skip ci] 2025-12-17 23:58:43 +00:00
kaitranntt 9028b742f8 feat(ui): add ClaudeKit badge and Sponsor buttons to navbar
- replace "CCS Config" header text with two promotional buttons
- add ClaudeKit badge with logo linking to claudekit.cc
- add Sponsor button with heart icon linking to GitHub Sponsors
- both buttons feature hover effects and consistent styling
- fix dark theme hover text visibility
2025-12-17 18:57:12 -05:00
kaitranntt ab4c95bac9 fix(ui): unify account card padding and fix SVG glow filter
- add filterUnits="userSpaceOnUse" to flow-glow filter for consistent rendering
- unify connector-side padding to p*-4 across all zones (top/bottom/left/right)
- previous: top pb-5, left pr-6, right pl-6, bottom no extra
- now: all zones have consistent 16px padding on connector side
2025-12-17 18:33:58 -05:00
github-actions[bot] ab61da1d85 chore(release): 6.1.0-dev.5 [skip ci] 2025-12-17 23:15:59 +00:00
kaitranntt 740f31b1b2 style(ui): use earthy sophisticated colors for flow connection lines
Replace generic gray connection lines with curated earthy palette
(Charcoal Brown, Forest Moss, Vintage Berry, Harvest Gold, Blue Slate,
Burnt Caramel) for more visually interesting bezier curves in account
flow visualization.
2025-12-17 18:14:35 -05:00
github-actions[bot] e0bf535bc0 chore(release): 6.1.0-dev.4 [skip ci] 2025-12-17 23:06:06 +00:00
kaitranntt 572703f439 fix(ui): optimize bundle size and fix calendar crash
- optimize vite manualChunks to reduce bundle sizes
- update calendar to react-day-picker v9 API
- fix calendar crash by removing broken drag-to-select
- improve calendar UI with compact styling and better navigation
- resolve fast-refresh lint error by separating button variants
2025-12-17 18:04:50 -05:00
github-actions[bot] 1eec1bb4d2 chore(release): 6.1.0-dev.3 [skip ci] 2025-12-17 21:52:29 +00:00
kaitranntt 925ac8e1d4 feat(cliproxy): remove thinking token cap and update agy haiku model
- Removed MAX_THINKING_TOKENS (8191) limit for Claude models via agy.
- Updated default agy haiku model to gemini-3-flash-preview.
- Updated unit tests to match new model expectations.
2025-12-17 16:51:23 -05:00
github-actions[bot] 2a69c9beb8 chore(release): 6.1.0-dev.2 [skip ci] 2025-12-17 21:41:41 +00:00
kaitranntt 2bf7992a8a feat(ui): extend privacy mode to blur cost/token values in analytics 2025-12-17 16:40:05 -05:00
kaitranntt ee85a1fd82 fix(ui): improve account-flow-viz layout and styling 2025-12-17 16:40:01 -05:00
kaitranntt 7b876d2364 fix(ui): improve account flow viz layout to fill available width
- Change flow viz section from items-center to items-stretch
- Use justify-center with gap-8 instead of justify-between for middle row
- Add w-full to top/bottom zone containers
- Increase gap from gap-3 to gap-4 for consistent spacing

Fixes issue where visualization left huge blank spaces
2025-12-17 15:26:25 -05:00
github-actions[bot] 9cf9f0a902 chore(release): 6.1.0-dev.1 [skip ci] 2025-12-17 20:11:14 +00:00
kaitranntt 365f820c55 feat(ui): add multi-zone layout and enhanced drag features to account flow viz
- Add 4-zone layout (top/left/right/bottom) based on account count
- Dynamic provider card sizing scales with account count
- Add localStorage persistence for card positions with reset button
- Implement click-to-toggle for account detail panel
- Add drag vs click detection to prevent accidental selections
- Fix connection curves to properly follow dragged cards using getBoundingClientRect
- Add fixed widths (w-44) to all zone cards for consistency
- Add top/bottom connector points to provider card
2025-12-17 15:09:16 -05:00
semantic-release-bot b0c6f74a80 chore(release): 6.1.0 [skip ci]
# [6.1.0](https://github.com/kaitranntt/ccs/compare/v6.0.0...v6.1.0) (2025-12-17)

### Bug Fixes

* **cliproxy:** prevent shared proxy termination on multi-session exit ([3629e3e](https://github.com/kaitranntt/ccs/commit/3629e3e2fbe78e890ee8f618437660fbcf7a9901)), closes [#118](https://github.com/kaitranntt/ccs/issues/118)

### Features

* **privacy:** add privacy/demo mode for personal info blurring ([6f3fb54](https://github.com/kaitranntt/ccs/commit/6f3fb54cc3104eac8033137a9a9b297895fd93c0))
* **ui:** add iflow provider logo support ([cefb3a5](https://github.com/kaitranntt/ccs/commit/cefb3a59d2264f64d21a7f051c121011b7e16366))
2025-12-17 08:59:46 +00:00
Kai (Tam Nhu) TranandGitHub e2aa34ffa9 Merge pull request #121 from kaitranntt/dev
feat(release): v6.0.0 - privacy mode and CLIProxy stability
2025-12-17 03:58:43 -05:00
github-actions[bot] 1b0cfd2447 chore(release): 6.0.0-dev.2 [skip ci] 2025-12-17 08:50:17 +00:00
Kai (Tam Nhu) TranandGitHub f93c776ea0 Merge pull request #119 from kaitranntt/kai/fix/ui-patch
feat(ui): add privacy mode and improve CLIProxy UX
2025-12-17 03:49:16 -05:00
kaitranntt 6f3fb54cc3 feat(privacy): add privacy/demo mode for personal info blurring 2025-12-17 02:24:36 -05:00
github-actions[bot] daa3f91938 chore(release): 6.0.0-dev.1 [skip ci] 2025-12-17 06:46:14 +00:00
Kai (Tam Nhu) TranandGitHub 29bab3903a Merge pull request #120 from kaitranntt/kai/fix/cliproxy-shared-port
fix(cliproxy): prevent shared proxy termination on multi-session exit
2025-12-17 01:45:13 -05:00
kaitranntt 3629e3e2fb fix(cliproxy): prevent shared proxy termination on multi-session exit
Add session tracking with reference counting for CLIProxy instances.
Multiple CCS sessions now safely share a single proxy on port 8317.
When any session exits, proxy only terminates if it was the last session.

Changes:
- Add session-tracker.ts: lock file based reference counting
- Modify cliproxy-executor.ts: reuse existing proxy, conditional cleanup
- Add 21 unit tests for session tracker functionality

Fixes #118
2025-12-17 01:36:34 -05:00
kaitranntt cefb3a59d2 feat(ui): add iflow provider logo support 2025-12-17 01:12:54 -05:00
kaitranntt 99ff14d420 style(ui): improve button variants for better UX 2025-12-17 01:08:39 -05:00
semantic-release-bot 38844540bb chore(release): 6.0.0 [skip ci]
# [6.0.0](https://github.com/kaitranntt/ccs/compare/v5.20.0...v6.0.0) (2025-12-17)

### Bug Fixes

* **config:** force shutdown immediately instead of waiting ([6d69379](https://github.com/kaitranntt/ccs/commit/6d69379ead87dbf89d8b4d257e5134f45afc2e27))
* **dev-install:** prevent duplicate entries in bun global package.json ([13824b6](https://github.com/kaitranntt/ccs/commit/13824b61caa2905f267a2b0fdbeaeb1886352b46))
* **websearch:** preserve opencode and grok in mergeWithDefaults ([110925e](https://github.com/kaitranntt/ccs/commit/110925e72e1a4a50dd641992c0b92429913b5309))
* **websearch:** update config.yaml comments to match CLI implementation ([81e46bd](https://github.com/kaitranntt/ccs/commit/81e46bd0e12d1cae3755f556a8f8890f6d9c33ac))
* **websearch:** update existing hook config when filename changes ([4959928](https://github.com/kaitranntt/ccs/commit/4959928a8e2152916f4639bf0824e25518001bf4))
* **websearch:** use correct @vibe-kit/grok-cli package ([b6c1ae4](https://github.com/kaitranntt/ccs/commit/b6c1ae48bab13c4c60084bec2d1f854b80a685b8))

### Features

* **build:** add preinstall script to manage UI dependencies ([78fb459](https://github.com/kaitranntt/ccs/commit/78fb459d956308a5a965c87d0382151eb5f8bd89))
* **cliproxy-stats:** Implement detailed stats fetching and integrate into UI ([3216a0e](https://github.com/kaitranntt/ccs/commit/3216a0e8478ba9224b1c8ea36582a5166c8c01e0))
* **monitor:** Enhance auth monitor and account flow visualization ([994bd77](https://github.com/kaitranntt/ccs/commit/994bd7765acd735635d0c324acac1aea0bb8a165))
* **ui:** add connection timeline and improve account flow layout ([27de6af](https://github.com/kaitranntt/ccs/commit/27de6af8aa5a5de72b2c34137cd1a5343e175bc9))
* **ui:** add documentation button to header ([6e4ee80](https://github.com/kaitranntt/ccs/commit/6e4ee805da23ac8969f4161d27047b5b82a07abc))
* **ui:** enhance light theme contrast and animations ([197848a](https://github.com/kaitranntt/ccs/commit/197848a71bbb26cbbd31ea5457ac917b82688d05))
* **ui:** implement auth monitor components & pages ([b97c3bf](https://github.com/kaitranntt/ccs/commit/b97c3bfda4ad47787fbce53617a7ee5d5267c2bf))
* **websearch:** add advanced configuration and custom MCP support ([cadd2e8](https://github.com/kaitranntt/ccs/commit/cadd2e824105d7beb0ccb04f554efda82470d29c))
* **websearch:** add Grok CLI support and improve install guidance ([c0938e1](https://github.com/kaitranntt/ccs/commit/c0938e1c8286b0f9c262cc36472e3600a2b044bb))
* **websearch:** add MCP fallback and Gemini CLI hook for third-party profiles ([fd99ebc](https://github.com/kaitranntt/ccs/commit/fd99ebca983970b5fa1d5d366b0af5d136f9433e))
* **websearch:** add model config + improve hook UX ([14c53d5](https://github.com/kaitranntt/ccs/commit/14c53d575f5eda6e49861d23c9eb22bfa6bf7058))
* **websearch:** add multi-tier MCP fallback for third-party profiles ([071ec04](https://github.com/kaitranntt/ccs/commit/071ec041ed7e2cfa21cadb7f55bfa93d9fe8cb1b))
* **websearch:** add OpenCode CLI as third WebSearch provider ([482cda0](https://github.com/kaitranntt/ccs/commit/482cda0f8e61fa0bb63672db74b7e5efb1c3f1c8))
* **websearch:** dynamic hook timeout from config + grok-code default ([d33fefd](https://github.com/kaitranntt/ccs/commit/d33fefd1336129572a03d983fae5c32bf5f4998f))
* **websearch:** enhance Gemini CLI integration, package manager detection, and WebSearch status ([f7a1a40](https://github.com/kaitranntt/ccs/commit/f7a1a40b42a17e18a69c241614cf3f5853deace3))
* **websearch:** implement fallback chain for CLI providers ([e6aa8ac](https://github.com/kaitranntt/ccs/commit/e6aa8ac453c70995307ea1fc5c819e0f891f1d61))
* **websearch:** respect config provider settings and consolidate prompts ([e71cb62](https://github.com/kaitranntt/ccs/commit/e71cb6227cfb114ca1864eea5198854604d83c52))
* **web:** update account manager and web routes ([127e0e6](https://github.com/kaitranntt/ccs/commit/127e0e60437f47cd445c1ce9ddf03415d51a06c7))

### BREAKING CHANGES

* **websearch:** Hook no longer falls back to all installed CLIs. It now
strictly respects config.yaml settings.
2025-12-17 05:22:41 +00:00
Kai (Tam Nhu) TranandGitHub 94648ed301 Merge pull request #117 from kaitranntt/dev
feat(release): WebSearch CLI Fallback & Auth Monitor
2025-12-17 00:21:37 -05:00
github-actions[bot] 02a3d54907 chore(release): 5.20.0-dev.3 [skip ci] 2025-12-17 05:18:34 +00:00
Kai (Tam Nhu) TranandGitHub 287375e5f0 Merge pull request #116 from kaitranntt/kai/feat/websearch-mcp-fallback
feat(websearch): CLI provider fallback chain with OpenCode and Grok support
2025-12-17 00:17:29 -05:00
kaitranntt 14c53d575f feat(websearch): add model config + improve hook UX
- Add model field to Gemini/OpenCode WebSearch providers
- Config.yaml now explicitly stores model (gemini-2.5-flash, opencode/grok-code)
- UI: blur-to-save for model inputs (no save on every keystroke)
- UI: collapsible install hints inside provider cards
- UI: left accent border for enabled providers (better light theme contrast)
- Hook: use systemMessage for info-styled confirmation
- Hook: cleaner result format without defensive "NOT an error" language
2025-12-17 00:16:03 -05:00
kaitranntt 6d69379ead fix(config): force shutdown immediately instead of waiting 2025-12-16 23:13:27 -05:00