Kai (Tam Nhu) Tran and github-actions[bot]
49c4d299c0
feat(ci): Claude Code CLI for AI reviews ( #290 )
...
* feat(ci): add AI code review workflow with Claude via CLIProxyAPI
- Self-hosted runner calls CLIProxyAPI at localhost:8317
- Triggers on PR open/update and /review comment
- Uses gemini-claude-opus-4-5-thinking for deep reviews
- Posts summary + inline comments via gh CLI
- Handles self-PR fallback to COMMENT mode
* chore(release): 7.15.0-dev.1 [skip ci]
* refactor(ci): use GitHub App for reviewer identity + new review format
- Posts as ccs-agy-reviewer[bot] via GitHub App token
- New review format: structured markdown with verdict, summary, issues table
- Single PR comment instead of inline comments
- Concise, focused on PR changes only
* chore(release): 7.15.0-dev.2 [skip ci]
* refactor(ci): switch to Claude Code CLI for reviews
- Use claude -p instead of custom TypeScript script
- Auto-install if not present on runner
- CLIProxyAPI via env vars (ANTHROPIC_BASE_URL, ANTHROPIC_MODEL)
- Allowed tools: Read, Glob, Grep
- Max 3 turns for file exploration
* chore(release): 7.15.0-dev.3 [skip ci]
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-07 02:11:14 -08:00
semantic-release-bot
a0ac773ead
chore(release): 7.15.0 [skip ci]
...
## [7.15.0](https://github.com/kaitranntt/ccs/compare/v7.14.0...v7.15.0 ) (2026-01-06)
### Features
* **api:** add pause/resume account endpoints ([c13003d ](https://github.com/kaitranntt/ccs/commit/c13003d940a217d22b2b5a027815053ef93d9046 )), closes [#282 ](https://github.com/kaitranntt/ccs/issues/282 )
* **cli:** add pause, resume, status subcommands ([cfd8dd9 ](https://github.com/kaitranntt/ccs/commit/cfd8dd974e875b858f78bb73e74e44062b72d38e )), closes [#282 ](https://github.com/kaitranntt/ccs/issues/282 )
* **cliproxy:** add hybrid quota management core ([11ffca3 ](https://github.com/kaitranntt/ccs/commit/11ffca33bdeb30b2b3631295ca64a17a480d8954 )), closes [#282 ](https://github.com/kaitranntt/ccs/issues/282 )
* **cliproxy:** integrate pre-flight quota check ([10e3eec ](https://github.com/kaitranntt/ccs/commit/10e3eec16f46b3318dfef5d33dc903cfbf9cae1d )), closes [#282 ](https://github.com/kaitranntt/ccs/issues/282 )
* **ui:** add pause/resume API hooks ([b92a35d ](https://github.com/kaitranntt/ccs/commit/b92a35d09b203427a105bc28a487302c8a726f21 )), closes [#282 ](https://github.com/kaitranntt/ccs/issues/282 )
* **ui:** add pause/resume toggle and tier badges ([4ad7292 ](https://github.com/kaitranntt/ccs/commit/4ad7292700c991e1d2f8478da4d6ed33ce14982d )), closes [#282 ](https://github.com/kaitranntt/ccs/issues/282 )
### Bug Fixes
* **cliproxy:** harden nickname validation and race condition handling ([5970e70 ](https://github.com/kaitranntt/ccs/commit/5970e70e2641e7d77b6f77d9624cd6990a1b81ba ))
* **cliproxy:** prevent race in promptNickname close handler ([107e281 ](https://github.com/kaitranntt/ccs/commit/107e2813f96624c105bab7d227336b0779648f12 ))
* **cliproxy:** update lastUsedAt on normal execution ([b55cd79 ](https://github.com/kaitranntt/ccs/commit/b55cd795ab5da18ea5363aa378712b467a17bf22 ))
* **cliproxy:** use nickname as accountId for kiro/ghcp providers ([d96c67b ](https://github.com/kaitranntt/ccs/commit/d96c67ba810fb933f4a26bf43b6c011e44ed5d47 )), closes [#258 ](https://github.com/kaitranntt/ccs/issues/258 ) [#267 ](https://github.com/kaitranntt/ccs/issues/267 )
* **quota:** address edge cases from code review ([a32fdc8 ](https://github.com/kaitranntt/ccs/commit/a32fdc8cfb2160771762ca07c62c30905a817d1d )), closes [#30 ](https://github.com/kaitranntt/ccs/issues/30 ) [#31 ](https://github.com/kaitranntt/ccs/issues/31 ) [#8 ](https://github.com/kaitranntt/ccs/issues/8 ) [#26 ](https://github.com/kaitranntt/ccs/issues/26 )
* **quota:** correct tier detection - remove 2.5-pro from ultra indicators ([0af185f ](https://github.com/kaitranntt/ccs/commit/0af185f6a0b40d3a10215ba183f583b25a3d9967 ))
* **quota:** handle 'standard-tier' as free in tier mapping ([a5f1472 ](https://github.com/kaitranntt/ccs/commit/a5f1472047fc7e70329d066b41a5ba051b412051 ))
* **quota:** use API tier detection instead of model-based heuristics ([aad0d44 ](https://github.com/kaitranntt/ccs/commit/aad0d44069b78f395285e3b71c0a9563b7abe4eb ))
### Documentation
* **CLAUDE.md:** add help location reference and documentation requirements ([113cc06 ](https://github.com/kaitranntt/ccs/commit/113cc06add969879148d4541fe0517b1046c74f3 ))
* **cli:** add cliproxy pause/resume/status to --help ([4b7328b ](https://github.com/kaitranntt/ccs/commit/4b7328b3880a3fa1d71a21f6b73616968cd8737a ))
* update documentation for CCS v7.14.x with quota management ([ec4c2c2 ](https://github.com/kaitranntt/ccs/commit/ec4c2c2f7b5314d4d45968805126f581da7db3d7 ))
### Code Refactoring
* **quota:** simplify AccountTier to free|paid|unknown ([db071e2 ](https://github.com/kaitranntt/ccs/commit/db071e2ff2de3c880651445f1f9094a4a43bec74 ))
2026-01-06 23:15:06 +00:00
Kai (Tam Nhu) Tran
4701ab5565
Merge pull request #288 from kaitranntt/dev
...
feat(cliproxy): add hybrid quota management with pause/resume controls
2026-01-06 15:14:04 -08:00
github-actions[bot]
ef759a5c4b
chore(release): 7.14.0-dev.4 [skip ci]
2026-01-06 23:06:15 +00:00
kaitranntt
ec4c2c2f7b
docs: update documentation for CCS v7.14.x with quota management
2026-01-06 18:05:05 -05:00
github-actions[bot]
ec2e491c18
chore(release): 7.14.0-dev.3 [skip ci]
2026-01-06 22:20:18 +00:00
Kai (Tam Nhu) Tran
bee21b0a9e
Merge pull request #285 from kaitranntt/kai/feat/hybrid-quota-management
...
feat(cliproxy): hybrid quota management with auto-failover and manual controls
2026-01-06 14:19:18 -08:00
kaitranntt
113cc06add
docs(CLAUDE.md): add help location reference and documentation requirements
...
- Add Help Location Reference table for respective --help handlers
- Clarify lib/ccs and lib/ccs.ps1 are bootstrap wrappers only
- Add Documentation Requirements (MANDATORY) section
- Specify CCS docs submodule workflow for owner (@kaitranntt)
- Add guidance for external contributors
- Update Pre-Commit Checklist with documentation items
2026-01-06 17:16:55 -05:00
kaitranntt
4b7328b388
docs(cli): add cliproxy pause/resume/status to --help
...
Add new quota management subcommands to help output:
- ccs cliproxy pause <provider> <account>
- ccs cliproxy resume <provider> <account>
- ccs cliproxy status [provider]
2026-01-06 17:12:02 -05:00
kaitranntt
db071e2ff2
refactor(quota): simplify AccountTier to free|paid|unknown
...
- consolidate 'pro'/'ultra' into single 'paid' tier (no distinction needed)
- update mapTierString() and inferTierFromModels() in quota-fetcher.ts
- fix tier_priority default from ['ultra','pro'] to ['paid']
- add missing quota_management to mergeWithDefaults() in config-loader
- update UI tier badge styling for 'paid' tier
- update api-client.ts tier type definition
2026-01-06 16:53:21 -05:00
kaitranntt
75b327c5c8
chore: merge dev - resolve conflict in account-manager.ts
2026-01-06 14:59:14 -05:00
kaitranntt
a5f1472047
fix(quota): handle 'standard-tier' as free in tier mapping
...
API returns 'standard-tier' ID for free accounts, not 'FREE'.
Updated mapTierString() to recognize 'standard' substring.
2026-01-06 14:55:36 -05:00
kaitranntt
aad0d44069
fix(quota): use API tier detection instead of model-based heuristics
...
Tier detection now uses paidTier/currentTier from loadCodeAssist API
response instead of inferring from model names. This is the correct
approach - all Antigravity accounts have access to same models
regardless of tier.
- Add TierInfo interface and tier fields to LoadCodeAssistResponse
- Add mapTierString() helper for API → AccountTier conversion
- Update getProjectId() to extract and return tier
- Update fetchAccountQuota() to use API tier
- Remove flawed detectTier() function
2026-01-06 14:41:25 -05:00
kaitranntt
0af185f6a0
fix(quota): correct tier detection - remove 2.5-pro from ultra indicators
...
2.5-pro is a standard pro-tier model, not ultra. This caused all accounts
with gemini-2.5-pro access to incorrectly display ULTRA badge.
Tier will be re-detected on next quota fetch for existing accounts.
2026-01-06 14:32:20 -05:00
github-actions[bot]
e8716db0a1
chore(release): 7.14.0-dev.2 [skip ci]
2026-01-06 19:20:53 +00:00
Kai (Tam Nhu) Tran
206644eac0
Merge pull request #284 from kaitranntt/fix/kiro-nickname-accountid
...
fix(cliproxy): use nickname as accountId for kiro/ghcp providers
2026-01-06 11:19:53 -08:00
kaitranntt
107e2813f9
fix(cliproxy): prevent race in promptNickname close handler
2026-01-06 13:52:14 -05:00
kaitranntt
a32fdc8cfb
fix(quota): address edge cases from code review
...
- Add isPausingAccount disabled state to pause/resume dropdown (#30 )
- Add rapid click prevention guard in cliproxy.tsx (#31 )
- Add request deduplication via pendingFetches Map in quota-manager (#8 )
- Add JSON parse error handler middleware in web-server (#26 )
2026-01-06 13:05:45 -05:00
kaitranntt
5970e70e26
fix(cliproxy): harden nickname validation and race condition handling
...
- Trim nickname in API route for consistency with CLI
- Block URL-unsafe chars (%, /, &, ?, #) in nickname
- Block reserved patterns (kiro-N, ghcp-N) used by auto-discovery
- Add reload-merge pattern in discovery to reduce race condition
2026-01-06 13:00:50 -05:00
github-actions[bot]
dde0b9fb6f
chore(release): 7.14.0-dev.1 [skip ci]
2026-01-06 17:51:26 +00:00
Kai (Tam Nhu) Tran
55260809a1
Merge pull request #286 from kaitranntt/fix/cliproxy-touch-account-on-normal-usage
...
fix(cliproxy): update lastUsedAt on normal execution
2026-01-06 09:50:29 -08:00
kaitranntt
4ad7292700
feat(ui): add pause/resume toggle and tier badges
...
- add pause/resume dropdown menu option in account item
- display tier badges (ultra/pro/free) with color coding
- show paused badge when account is paused
- wire onPauseToggle through component tree
Refs #282
2026-01-06 12:18:12 -05:00
kaitranntt
b92a35d09b
feat(ui): add pause/resume API hooks
...
- add api.cliproxy.accounts.pause/resume methods
- add usePauseAccount, useResumeAccount hooks
Refs #282
2026-01-06 12:18:02 -05:00
kaitranntt
c13003d940
feat(api): add pause/resume account endpoints
...
- POST /api/cliproxy/auth/:provider/accounts/:accountId/pause
- POST /api/cliproxy/auth/:provider/accounts/:accountId/resume
Refs #282
2026-01-06 12:17:55 -05:00
kaitranntt
cfd8dd974e
feat(cli): add pause, resume, status subcommands
...
- ccs cliproxy pause <provider> <account>
- ccs cliproxy resume <provider> <account>
- ccs cliproxy status [provider] - show quota/tier info
Refs #282
2026-01-06 12:17:48 -05:00
kaitranntt
b55cd795ab
fix(cliproxy): update lastUsedAt on normal execution
...
Previously touchAccount was only called when switching accounts or auto-
switching due to quota exhaustion. Now lastUsedAt is updated for every
OAuth provider execution, ensuring dashboard shows accurate timestamps.
2026-01-06 12:17:40 -05:00
kaitranntt
10e3eec16f
feat(cliproxy): integrate pre-flight quota check
...
- skip paused accounts during rotation
- check quota before request execution
Refs #282
2026-01-06 12:17:40 -05:00
kaitranntt
11ffca33bd
feat(cliproxy): add hybrid quota management core
...
- add paused state and tier field to OAuthAccount
- create quota-manager.ts for central quota/tier logic
- add tier detection and 30s cache to quota-fetcher
- add quota_management schema to unified config
Refs #282
2026-01-06 12:17:34 -05:00
kaitranntt
d96c67ba81
fix(cliproxy): use nickname as accountId for kiro/ghcp providers
...
Kiro/GHCP OAuth tokens have empty email field, causing all accounts to
use accountId='default' and overwrite each other. This fix:
- Add PROVIDERS_WITHOUT_EMAIL constant for kiro/ghcp identification
- Require nickname for kiro/ghcp during registration (CLI + web UI)
- Use nickname as accountId instead of email for these providers
- Enforce nickname uniqueness to prevent collisions
- Update discoverExistingAccounts() to generate unique IDs (kiro-1, etc.)
Closes #258 , #267
2026-01-06 12:16:22 -05:00
semantic-release-bot
497fc2a9c0
chore(release): 7.14.0 [skip ci]
...
## [7.14.0](https://github.com/kaitranntt/ccs/compare/v7.13.1...v7.14.0 ) (2026-01-06)
### Features
* **agy:** add preflight quota check with auto-switch ([c85ff74 ](https://github.com/kaitranntt/ccs/commit/c85ff74f3cdd9b346d1d4d929c29104ab16c658f ))
* **agy:** promote gemini-claude-sonnet-4-5 as default Haiku model ([c9cdfd9 ](https://github.com/kaitranntt/ccs/commit/c9cdfd98792cc6d272aa22e2317a3a3bb32105de )), closes [#270 ](https://github.com/kaitranntt/ccs/issues/270 )
* **cliproxy:** add background token refresh worker ([f98bb24 ](https://github.com/kaitranntt/ccs/commit/f98bb24a98618df132857b414e30997eb3cf0b90 ))
* **cliproxy:** add dashboard UI parity for version stability ([c5621da ](https://github.com/kaitranntt/ccs/commit/c5621dab515ea290e2740cc1fce79e9d65081579 )), closes [#269 ](https://github.com/kaitranntt/ccs/issues/269 )
* **cliproxy:** add doctor subcommand for quota diagnostics ([944f5c0 ](https://github.com/kaitranntt/ccs/commit/944f5c0fb07bcf293a164b81886595aeb8217703 )), closes [#252 ](https://github.com/kaitranntt/ccs/issues/252 )
* **cliproxy:** add version management UI with install/restart controls ([a69b2e9 ](https://github.com/kaitranntt/ccs/commit/a69b2e9d109130abf8a2a99d76bf4560d64c831c ))
* **dev:** add symlink setup for testing dev version ([981cef8 ](https://github.com/kaitranntt/ccs/commit/981cef82119359384e7385aff1791b0afa4f4fc1 ))
* **quota:** add fetchAllProviderQuotas and findAvailableAccount ([24847f5 ](https://github.com/kaitranntt/ccs/commit/24847f5804ca258b597b7f367750315b9abfa9f8 )), closes [#252 ](https://github.com/kaitranntt/ccs/issues/252 )
* **ui:** add stability warning to ProxyStatusWidget ([8a56a43 ](https://github.com/kaitranntt/ccs/commit/8a56a43989eb26b22ba28aa091a2bcef97701a20 ))
### Bug Fixes
* **agy:** edge case handling for quota failover ([5b58bd3 ](https://github.com/kaitranntt/ccs/commit/5b58bd35c9e2dfd7163bc8eff7804506b49b4872 ))
* **cliproxy:** add edge case handling for version capping ([212aef8 ](https://github.com/kaitranntt/ccs/commit/212aef81bc68a2d0d146d410d18f7778b8c2c100 ))
* **cliproxy:** add missing OAuth callback ports for codex, agy, iflow ([cfe604a ](https://github.com/kaitranntt/ccs/commit/cfe604a97c5ef79fbfb1f020579e0b5541d49b27 ))
* **cliproxy:** cap auto-update to v80 due to v81+ context bugs ([869ab3e ](https://github.com/kaitranntt/ccs/commit/869ab3eecd97de2a84c18c5ad25fe2abf0bdb088 )), closes [#269 ](https://github.com/kaitranntt/ccs/issues/269 )
* **oauth:** add stdin keepalive to prevent blocking on manual URL prompt ([0557f93 ](https://github.com/kaitranntt/ccs/commit/0557f93f2fdb17972324f05c9e216785f893ad16 ))
* **oauth:** harden cleanup for edge cases in auth process ([472497f ](https://github.com/kaitranntt/ccs/commit/472497fb0324a92993b2a7e7fd27c8f071a9e7c6 ))
* **shared-manager:** normalize plugin registry paths to canonical ~/.claude/ ([1067afb ](https://github.com/kaitranntt/ccs/commit/1067afbea713625713e72c1738ef06a21bd04d62 )), closes [#276 ](https://github.com/kaitranntt/ccs/issues/276 )
* **ui:** add missing isStable and maxStableVersion to type ([4fd4d6c ](https://github.com/kaitranntt/ccs/commit/4fd4d6c264b5dbcb9f3e181b46a82090764f46c6 ))
* **ui:** clean up ProxyStatusWidget layout spacing ([4f69abb ](https://github.com/kaitranntt/ccs/commit/4f69abbe88fb0bd6782373b5eeebd665dfcafd4b ))
* **ui:** update/downgrade button now installs correct version ([48d4a96 ](https://github.com/kaitranntt/ccs/commit/48d4a96a62fecde105f58bd68ca130571ef0daa4 ))
* **websearch:** use 'where' command on Windows for CLI detection ([e03d9b7 ](https://github.com/kaitranntt/ccs/commit/e03d9b77437575a39af0dca14c2a6b5967ae4f09 )), closes [#273 ](https://github.com/kaitranntt/ccs/issues/273 )
### Documentation
* **agy:** add quota management and failover documentation ([8ea1e33 ](https://github.com/kaitranntt/ccs/commit/8ea1e333bc2b365b7f058201f714e41e822b815f ))
### Code Refactoring
* **ui:** redesign ProxyStatusWidget with two-state UX ([8072b93 ](https://github.com/kaitranntt/ccs/commit/8072b93b3b2d4bc721fece815c8edf45da67b34b ))
2026-01-06 16:40:28 +00:00
Kai (Tam Nhu) Tran
e788df971a
Merge pull request #283 from kaitranntt/dev
...
feat(release): v7.14.0 - OAuth fixes, quota failover, background token refresh
2026-01-06 08:39:29 -08:00
github-actions[bot]
b44ccc97ea
chore(release): 7.13.1-dev.8 [skip ci]
2026-01-06 16:33:53 +00:00
Kai (Tam Nhu) Tran
3639f4e7ab
Merge pull request #281 from kaitranntt/fix/codex-auth-port-map
...
fix(cliproxy): add missing OAuth callback ports for codex, agy, iflow
2026-01-06 08:32:56 -08:00
kaitranntt
472497fb03
fix(oauth): harden cleanup for edge cases in auth process
...
- Clear stdinKeepalive interval on SIGINT/SIGTERM signal handlers
- Add cancelProjectSelection() to timeout/exit/error handlers
- Close server on error path in testLocalhostBinding to prevent fd leak
- Add TTL-based cleanup for stale auth sessions (10 min expiry)
- Use DEVICE_CODE_TIMEOUT_MS constant instead of hardcoded value (DRY)
2026-01-06 11:31:40 -05:00
kaitranntt
0557f93f2f
fix(oauth): add stdin keepalive to prevent blocking on manual URL prompt
...
CLIProxyAPIPlus has a 15-second timer that prompts for manual URL paste.
If user completes browser auth after this timer fires but before the
non-blocking check, the prompt blocks forever on stdin since CCS pipes
stdin but doesn't write to it.
Workaround: Send newline every 16s for authorization code flows to skip
the manual prompt and continue polling for callback.
2026-01-06 10:49:51 -05:00
kaitranntt
cfe604a97c
fix(cliproxy): add missing OAuth callback ports for codex, agy, iflow
...
Port cleanup before OAuth was skipped for providers whose ports were
only in comments. This caused hanging when stale processes blocked
the callback port from previous auth attempts.
Changes:
- auth-types.ts: Add codex (1455), agy (51121), iflow (11451) to map
- oauth-port-diagnostics.ts: Update iflow from device_code to auth_code flow
- Add Claude (54545) to doc comments for future reference
2026-01-06 10:32:08 -05:00
github-actions[bot]
bc5bce4256
chore(release): 7.13.1-dev.7 [skip ci]
2026-01-06 15:15:47 +00:00
Kai (Tam Nhu) Tran
90a73b56da
Merge pull request #277 from kaitranntt/feat/background-token-refresh-worker
...
feat(cliproxy): add background token refresh worker
2026-01-06 07:14:49 -08:00
github-actions[bot]
cfced9bfac
chore(release): 7.13.1-dev.6 [skip ci]
2026-01-06 15:04:19 +00:00
Kai (Tam Nhu) Tran
9a42b3536e
Merge pull request #278 from kaitranntt/feat/shared-plugins-registry-normalization
...
fix(shared-manager): normalize plugin registry paths to canonical ~/.claude/
2026-01-06 07:03:21 -08:00
kaitranntt
1067afbea7
fix(shared-manager): normalize plugin registry paths to canonical ~/.claude/
...
Replaces instance-specific paths (/.ccs/instances/<name>/) with
canonical /.claude/ paths in installed_plugins.json after linking.
Fixes #276
2026-01-05 20:48:49 -05:00
kaitranntt
f98bb24a98
feat(cliproxy): add background token refresh worker
...
Proactively refreshes OAuth tokens before expiry to prevent
"context canceled" errors during long requests.
- Add TokenRefreshWorker with configurable interval/retries
- Add token-expiry-checker for multi-provider token inspection
- Add provider-refreshers abstraction (Gemini implemented)
- Integrate with service-manager lifecycle (start/stop)
- Add config schema in unified-config-types
- Include edge case protections:
- expiry_date/refresh_token validation
- File size limits (1MB)
- Process exit handlers
- Timeout wrapper
- Config sanitization
- Unrecoverable error detection
2026-01-05 20:47:54 -05:00
github-actions[bot]
f2d9073b0d
chore(release): 7.13.1-dev.5 [skip ci]
2026-01-05 21:59:28 +00:00
Kai (Tam Nhu) Tran
916ed9ed19
Merge pull request #272 from kaitranntt/fix/cliproxyapi-downgrade
...
fix(cliproxy): cap auto-update to v80 due to v81+ context bugs
2026-01-05 13:58:28 -08:00
kaitranntt
4fd4d6c264
fix(ui): add missing isStable and maxStableVersion to type
2026-01-05 14:54:27 -05:00
kaitranntt
4f69abbe88
fix(ui): clean up ProxyStatusWidget layout spacing
...
- Separate header row (title + icon buttons) from version row
- Compact update badge: h-4, px-1.5, gap-0.5
- Slightly more margin between rows (mt-1.5)
- Fix badge conditional rendering
2026-01-05 14:31:55 -05:00
github-actions[bot]
d743e50489
chore(release): 7.13.1-dev.4 [skip ci]
2026-01-05 19:31:17 +00:00
Kai (Tam Nhu) Tran
0a1aa414b5
Merge pull request #275 from kaitranntt/kai/feat/antigravity-failover
...
feat(agy): add preflight quota check with auto-failover
2026-01-05 11:30:21 -08:00
kaitranntt
8072b93b3b
refactor(ui): redesign ProxyStatusWidget with two-state UX
...
- Replace 4-button row with 3 icon buttons (restart, stop, settings)
- Add tooltips to all icon buttons via TooltipProvider
- Move version display to header next to title
- Implement collapsed/expanded two-state design
- Remove manual version input field (use dropdown only)
- Add clickable update/downgrade badge showing target version
- Add "Version Management" section header in expanded view
- Increase control sizes (h-8) for better touch targets
- Settings icon toggles to X when expanded
2026-01-05 13:49:24 -05:00
kaitranntt
8ea1e333bc
docs(agy): add quota management and failover documentation
...
- Add ccs cliproxy doctor command to help text
- Document Antigravity auto-failover in README
2026-01-05 13:31:34 -05:00