Commit Graph
100 Commits
Author SHA1 Message Date
Kai (Tam Nhu) Tran 21f10c007b Merge pull request #1720 from kaitranntt/kai/fix/1714-quota-remaining-label
feat(cliproxy): clarify quota percentages are remaining in CLI output (#1714)
2026-08-25 16:02:40 -04:00
Kai (Tam Nhu) Tran a5aa9ac35f Merge pull request #1717 from mardausdennis/feat/collapsible-proxy-status-widget
feat(dashboard): collapse the CLIProxy status widget
2026-08-25 14:50:28 -04:00
Kai (Tam Nhu) Tran ff27a36b92 Merge pull request #1718 from sgaluza/fix/adopt-settings-publish-by-replacement
fix(shared-manager): publish adopted settings by replacement
2026-08-25 14:50:19 -04:00
Kai (Tam Nhu) Tran ae1559aeb0 fix(ci): publish dev releases with public access for scoped package (#1715) 2026-08-20 12:14:14 -04:00
Kai (Tam Nhu) Tran 95faef5960 Merge pull request #1710 from kaitranntt/kai/fix/1703-image-analysis-original-backend-route
fix(image-analysis): route original backend at CLIProxy root
2026-08-19 17:43:27 -04:00
Kai (Tam Nhu) Tran 9e2897e770 Merge pull request #1711 from kaitranntt/kai/fix/1706-pnpm-global-store-layout
fix(update): detect pnpm v9+ global store layouts
2026-08-19 17:33:49 -04:00
Kai (Tam Nhu) Tran 9de6e11a03 Merge pull request #1709 from kaitranntt/kai/docs/hardening-inventory-refresh
docs: refresh hardening inventory counts
2026-08-19 16:43:07 -04:00
Kai (Tam Nhu) Tran 3997dbd258 Merge pull request #1708 from aaron-tsar/fix/image-analysis-profile-backends-launch
fix(image-analysis): honor configured profile_backends at launch
2026-08-19 16:35:08 -04:00
Kai (Tam Nhu) Tran 3b652460ee Merge pull request #1707 from OctoBored/fix/star-history-chart
fix(README): update star history chart to use working domain
2026-08-19 16:34:49 -04:00
Kai (Tam Nhu) Tran 9d725fcebb Merge pull request #1702 from Marc-oss-hub/feat/orcarouter-preset
feat(api): add OrcaRouter provider preset
2026-08-19 16:32:29 -04:00
Kai (Tam Nhu) Tran 28d817a97e Merge pull request #1701 from minhbi245/feat/grok-4-6-selection
feat(cliproxy): add Grok 4.6 selection
2026-08-19 16:32:25 -04:00
Kai (Tam Nhu) Tran e10577804d Merge pull request #1704 from kaitranntt/kai/fix/delegation-stdout-flush
fix(delegation): flush stdout before exit to prevent piped output truncation
2026-08-19 16:32:20 -04:00
Kai (Tam Nhu) Tran 2ef2612df8 Merge pull request #1699 from kaitranntt/kai/fix/cliproxy-safe-updates-dev
fix(cliproxy): keep proxy continuously recoverable
2026-08-10 22:20:13 -04:00
Kai (Tam Nhu) Tran c3abc98e39 Merge pull request #1697 from kaitranntt/kai/ci/sync-docker-smoke-fix-dev
ci: sync Docker smoke fix into dev
2026-08-09 00:26:30 -04:00
Kai (Tam Nhu) Tran febdcdbbf4 Merge pull request #1696 from kaitranntt/kai/ci/docker-smoke-cold-start
ci(docker): allow cold-start healthcheck window
2026-08-09 00:14:23 -04:00
Kai (Tam Nhu) Tran 83268d15c8 Merge pull request #1695 from kaitranntt/kai/release/dev-to-main-20260808
feat: promote dev to main
2026-08-08 23:39:59 -04:00
Kai (Tam Nhu) Tran 27b0ea08fe Merge pull request #1694 from kaitranntt/kai/feat/1688-share-claude-md
feat(auth): share canonical CLAUDE.md across account profiles
2026-08-08 23:12:23 -04:00
Kai (Tam Nhu) Tran eb4ea02479 Merge pull request #1693 from kaitranntt/kai/fix/1686-openrouter-fetch
fix(proxy): stabilize upstream fetch transport
2026-08-08 22:19:16 -04:00
Kai (Tam Nhu) Tran 560e288cf4 Merge pull request #1692 from kaitranntt/kai/fix/1685-resume-continuity
fix(auth): preserve explicit resume session continuity
2026-08-08 21:58:33 -04:00
Kai (Tam Nhu) Tran b465557fd8 Merge pull request #1691 from poomsc/feat/bar-port-flag
feat(bar): support --port for ccs bar with sticky port persistence
2026-08-08 21:37:54 -04:00
Kai (Tam Nhu) Tran 273d9b5e99 Merge pull request #1690 from poomsc/fix/bar-native-profile-reauth
fix(bar): stop false re-auth on non-default native subscription profiles
2026-08-08 21:20:58 -04:00
Kai (Tam Nhu) Tran d2f8939568 Merge pull request #1687 from yosnap/fix/coalesce-duplicate-system-messages
fix(proxy): hoist duplicate system messages before coalescing
2026-08-08 21:03:31 -04:00
Kai (Tam Nhu) Tran eaac5beecb Merge pull request #1682 from nmelo/fix/adopt-diverged-settings
Preserve diverged CCS settings and plugin registry files during reconciliation.
2026-08-02 20:24:32 -04:00
Kai (Tam Nhu) Tran 0845094c8a Merge pull request #1680 from kaitranntt/kai/chore/ai-review-luna-xhigh
ci(review): configure explicit reasoning effort
2026-07-31 10:38:46 -04:00
Kai (Tam Nhu) Tran 6e8dd9c721 Merge pull request #1679 from kaitranntt/kai/fix/1660-gemini-auth
fix(cliproxy): probe Gemini OAuth support
2026-07-29 14:40:13 -04:00
Kai (Tam Nhu) Tran bd90056f9b Merge pull request #1678 from kaitranntt/kai/feat/1662-codex-fast-alias
feat(cliproxy): preserve scoped routing rules
2026-07-29 14:18:51 -04:00
Kai (Tam Nhu) Tran 6d754eff36 Merge pull request #1677 from kaitranntt/kai/feat/1651-context-window
feat(cliproxy): expose model context windows
2026-07-29 13:57:05 -04:00
Kai (Tam Nhu) Tran 236471100c Merge pull request #1676 from kaitranntt/kai/fix/1648-disabled-websearch-steering
fix(websearch): honor disabled steering per launch
2026-07-29 13:44:56 -04:00
Kai (Tam Nhu) Tran a78c3f86c5 Merge pull request #1675 from kaitranntt/kai/fix/1649-claude-quota-probe
fix(cliproxy): classify Claude quota probe 429s
2026-07-29 13:29:51 -04:00
Kai (Tam Nhu) Tran 3ad78b43e7 Merge pull request #1674 from kaitranntt/kai/fix/1670-concurrent-account-locks
fix(cliproxy): retry contended state locks
2026-07-29 13:12:32 -04:00
Kai (Tam Nhu) Tran 16abf18075 Merge pull request #1673 from jeffersongoncalves/feat/i18n-pt-br
feat(i18n): add Brazilian Portuguese (pt-BR) locale
2026-07-29 13:01:58 -04:00
Kai (Tam Nhu) Tran 558e727312 Merge pull request #1672 from KennethWKZ/feat/claude-opus-5
feat: support Claude Opus 5
2026-07-29 12:39:56 -04:00
Kai (Tam Nhu) Tran b09f8191f3 Merge pull request #1669 from kaitranntt/kai/docs/1666-pruning-freshness
docs: prune stale guides and enforce freshness
2026-07-26 22:09:35 -04:00
Kai (Tam Nhu) Tran a8217bf18d Merge pull request #1668 from kaitranntt/kai/docs/1665-architecture-contracts
docs: reconcile architecture and engineering contracts
2026-07-26 22:09:17 -04:00
Kai (Tam Nhu) Tran 4547181c58 Merge pull request #1667 from kaitranntt/kai/docs/1664-ai-contributor-guidance
docs: refresh contributor and AI guidance
2026-07-26 22:08:56 -04:00
Kai (Tam Nhu) Tran 66a3468918 Merge pull request #1655 from minhbi245/feat/cliproxy-retry-config
feat(cliproxy): expose request retry config
2026-07-22 15:10:14 -04:00
Kai (Tam Nhu) Tran 9cbf02b1be Merge pull request #1652 from minhbi245/feat/fable-tier-mapping
feat(ui): add fable tier row in model mapping
2026-07-22 14:59:24 -04:00
Kai (Tam Nhu) Tran 38fdd4441b Merge pull request #1653 from minhbi245/feat/codex-fast-toggle
feat(ui): add codex fast service-tier toggle
2026-07-22 14:41:11 -04:00
Kai (Tam Nhu) Tran f066188f0a Merge pull request #1656 from minhbi245/chore/refresh-hardening-inventory
chore(reports): refresh hardening inventory
2026-07-22 14:40:58 -04:00
Kai (Tam Nhu) Tran 3608bf71a1 feat: rebrand CCS as Claude Codex Switch (#1658)
Closes #1657
2026-07-22 14:23:42 -04:00
Kai (Tam Nhu) Tran 0ef370fafe Merge pull request #1650 from minhbi245/feat/codex-effort-dropdown
feat(ui): per-tier reasoning effort dropdown in model mapping (codex + grok)
2026-07-22 10:39:11 -04:00
Kai (Tam Nhu) Tran 67e16d65f4 Merge pull request #1646 from kaitranntt/kai/hotfix-docker-original-no-plugin
hotfix(docker): select Alpine-compatible CLIProxy asset
2026-07-18 20:04:14 -04:00
Kai (Tam Nhu) Tran 197c43f164 Merge pull request #1645 from kaitranntt/kai/release/dev-to-main-20260718
feat: promote dev to main
2026-07-18 19:21:16 -04:00
Kai (Tam Nhu) Tran a8bf7d1a9a Merge pull request #1641 from minhbi245/feat/xai-grok-provider
feat(cliproxy): add xAI Grok provider
2026-07-18 19:07:33 -04:00
Kai (Tam Nhu) Tran 4998153205 Merge pull request #1644 from kaitranntt/kai/fix/fast-bucket-bar-isolation
fix(ci): isolate Bar command fast tests
2026-07-18 17:54:13 -04:00
Kai (Tam Nhu) Tran be97e43503 Merge pull request #1643 from kaitranntt/kai/fix/1642-bar-pool-quota
fix(bar): show Claude and Codex pool quota
2026-07-18 17:40:17 -04:00
Kai (Tam Nhu) Tran 802ea04712 Merge pull request #1640 from kaitranntt/kai/fix/1639-ccsx-profile-plugin-cache-v2
fix(codex-auth): share plugin cache across profiles
2026-07-15 11:52:26 -04:00
Kai (Tam Nhu) Tran 44c2e8ccc5 Merge pull request #1634 from KennethWKZ/feat/support-claude-sonnet-1m
fix: preserve saved Claude extended-context preference
2026-07-13 09:27:02 -04:00
Kai (Tam Nhu) Tran 073e795f61 Merge pull request #1638 from tom-price/fix/usage-aggregator-missing-modelbreakdowns
fix: guard against missing modelBreakdowns in usage aggregation
2026-07-13 09:25:43 -04:00
Kai (Tam Nhu) Tran 58c02a53d9 Merge pull request #1637 from kaitranntt/kai/feat/1633-gpt-5-6-models
feat(codex): add GPT-5.6 model catalog
2026-07-10 13:20:50 -04:00
Kai (Tam Nhu) Tran ab09c96210 Merge pull request #1636 from kaitranntt/kai/fix/1635-codex-toml-recovery
fix(codex): preview joined migration TOML repair
2026-07-10 13:20:35 -04:00
Kai (Tam Nhu) Tran 5afd294c7e Merge pull request #1631 from sgaluza/sergey/add-claude-sonnet-5-pricing
feat(pricing): register Claude Sonnet 5 in the pricing registry
2026-07-08 10:18:03 -04:00
Kai (Tam Nhu) Tran b95f95317e Merge pull request #1630 from kaitranntt/kai/feat/copilot-model-ui
feat: support custom GHCP model selection
2026-07-02 11:11:20 -04:00
Kai (Tam Nhu) Tran 1ee7cac555 fix: reject case-variant symlinked file paths (#1629)
* fix: reject case-variant symlinked file paths

* fix: validate requested case-variant symlink paths
2026-07-01 01:26:48 -04:00
Kai (Tam Nhu) Tran 343899f6c1 fix: prevent default profile credential collision (#1628)
* fix: prevent default profile credential collision

* fix: isolate default profile credential fallback
2026-07-01 01:15:45 -04:00
Kai (Tam Nhu) Tran 0f9a87619c fix: cap native quota profile refresh fan-out (#1627)
* fix: cap native quota profile refresh fan-out

* fix: preserve native quota live cache state
2026-07-01 01:09:01 -04:00
Kai (Tam Nhu) Tran 3621f8dcb1 fix: validate CCS Bar launch shim target integrity (#1626)
* fix: validate CCS Bar launch shim target integrity

* fix: execute verified bar shim bytes
2026-07-01 00:49:56 -04:00
Kai (Tam Nhu) Tran 05685d1c21 fix: keep agy websearch permissions enabled (#1625) 2026-07-01 00:45:09 -04:00
Kai (Tam Nhu) Tran eccb3d1997 Merge pull request #1624 from kaitranntt/dev
feat: promote dev to main
2026-06-30 22:52:18 -04:00
Kai (Tam Nhu) Tran 0180b62453 fix(bar): use nonce-bound probe auth (#1623) 2026-06-30 13:10:56 -04:00
Kai (Tam Nhu) Tran 138ead0e1e fix(logging): redact browser debug endpoint (#1622)
* fix(logging): redact browser debug endpoint

* fix(logging): redact prompt argv values
2026-06-30 13:07:46 -04:00
Kai (Tam Nhu) Tran f2843ad2ce fix: fail closed on websearch launch provisioning (#1621) 2026-06-30 13:00:41 -04:00
Kai (Tam Nhu) Tran 0527e276b1 fix: skip paused codex accounts in bar refresh (#1620) 2026-06-30 12:59:54 -04:00
Kai (Tam Nhu) Tran 396e01ab6f fix: bound bar raw socket probes (#1618) 2026-06-30 12:53:35 -04:00
Kai (Tam Nhu) Tran 2f1453e397 fix(auth): honor legacy unified default profiles (#1619) 2026-06-30 12:53:03 -04:00
Kai (Tam Nhu) Tran bb7c3a4037 fix(cliproxy): mask control panel login key (#1617) 2026-06-30 12:40:07 -04:00
Kai (Tam Nhu) Tran 4283c4665c fix(cursor): propagate daemon auth token (#1616)
* fix(cursor): propagate daemon auth token

* fix(cursor): align daemon auth token propagation
2026-06-30 12:37:41 -04:00
Kai (Tam Nhu) Tran 3f1dce30bc fix: close bar launch case bypass (#1613) 2026-06-30 12:33:46 -04:00
Kai (Tam Nhu) Tran 58a90d3633 fix(ci): include compose parity in CI Gate (#1614) 2026-06-30 12:21:41 -04:00
Kai (Tam Nhu) Tran 23b2c3d6af fix: restrict bar release workflow to main (#1612) 2026-06-30 12:21:33 -04:00
Kai (Tam Nhu) Tran 717192748e Merge pull request #1611 from sgaluza/sergey/ccs-3-glmt-thinking-signature-obekt-vmesto-stroki-lomaet-strim
fix(glmt): emit thinking signature as opaque string
2026-06-29 13:04:54 -04:00
Kai (Tam Nhu) Tran 9fc24980a1 Merge pull request #1610 from kaitranntt/kai/fix/1608-launch-settings-hardening
fix(cliproxy): harden launch-settings overlay (cleanup-on-throw, coverage, naming)
2026-06-28 16:19:06 -04:00
Kai (Tam Nhu) Tran 9dd9bf2978 feat(websearch): add agy provider and deprecate gemini cli fallback (#1607)
Google retired the gemini CLI on 2026-06-18, so the gemini websearch fallback no longer
works. Add agy (Antigravity) as the primary CLI websearch provider end to end: runtime spawn
in websearch-transformer.cjs (agy --dangerously-skip-permissions --print-timeout Ns -p),
detection (agy.ts), config schema and defaults, hook env, status, dashboard persistence, and docs.

The legacy gemini provider stays present but is marked deprecated for enterprise users who
retain access. Image analysis already supported the agy provider (no change). The CLIProxy
gemini quota fetcher (Gemini API OAuth, not the cli binary) is untouched.

Validation: typecheck, lint, and the websearch + config + web-server unit suites pass.
2026-06-27 10:01:25 -04:00
Kai (Tam Nhu) Tran d7933c6243 feat(bar): swipeable profile carousel and condensed alerts (#1603)
Closes #1602
2026-06-24 18:44:53 -04:00
Kai (Tam Nhu) Tran 62274dabfa fix(bar): align subscription carousel and collapse stale blank space (#1600)
Closes #1599
2026-06-24 18:15:43 -04:00
Kai (Tam Nhu) Tran 482868ad97 Merge pull request #1596 from kaitranntt/kai/feat/1595-bar-multi-profile-quota
feat(bar): per-profile subscription quota for ccs auth + ccsx auth accounts
2026-06-24 17:01:40 -04:00
Kai (Tam Nhu) Tran 121d415cf8 Merge pull request #1598 from kaitranntt/kai/fix/1597-codex-responses-404
fix(codex): route codex CLI to /backend-api/codex on original CLIProxy backend
2026-06-24 17:01:12 -04:00
Kai (Tam Nhu) Tran 87174062ae Merge pull request #1594 from kaitranntt/kai/fix/ccs-bar-release-target
fix(bar): update release target when publishing app
2026-06-23 17:33:52 -04:00
Kai (Tam Nhu) Tran 59a11f15df Merge pull request #1593 from kaitranntt/kai/chore/ccs-bar-1-8-1
chore(bar): bump CCS Bar to 1.8.1
2026-06-23 17:23:02 -04:00
Kai (Tam Nhu) Tran fb9509d9be fix: make CCS Bar launch descriptor use private shim
Use a private safe ccs.js shim for native CCS Bar launch descriptors so symlinked Bun installs do not fall back to an app environment without node on PATH.
2026-06-23 12:57:33 -04:00
Kai (Tam Nhu) Tran fa9c3428a3 Merge pull request #1590 from kaitranntt/dev
feat: release CCS Bar one-click updater + accumulated dev fixes
2026-06-22 21:35:45 -04:00
Kai (Tam Nhu) Tran e547f9c248 Merge pull request #1589 from kaitranntt/kai/feat/1588-bar-one-click-updater
feat(bar): one-click in-app updater with update-available notification
2026-06-22 21:15:31 -04:00
Kai (Tam Nhu) Tran 87eb4f2154 Merge pull request #1414 from cerebrixos/tuning-engines-provider
Add Tuning Engines provider
2026-06-22 17:18:57 -04:00
Kai (Tam Nhu) Tran d1cfb9b26e Merge pull request #1587 from kaitranntt/kai/fix/1585-control-panel-key-discoverable
fix(cliproxy): surface Control Panel URL and login key in status/start
2026-06-22 16:42:12 -04:00
Kai (Tam Nhu) Tran 8a0031e514 Merge pull request #1586 from kaitranntt/kai/chore/regen-throw-error-baseline
chore(lint): regenerate throw-error baseline
2026-06-22 16:33:53 -04:00
Kai (Tam Nhu) Tran 2e702b1d35 Merge pull request #1574 from ReWiG/fix/stream-options-include-usage
fix(proxy): forward stream_options.include_usage to OpenAI-compatible upstreams
2026-06-22 16:16:40 -04:00
Kai (Tam Nhu) Tran 05c203aff2 Merge pull request #1575 from walker1211/codex/fix-cliproxy-provider-routes
Fix CLIProxy provider routes for original backend
2026-06-22 16:11:28 -04:00
Kai (Tam Nhu) Tran 5f5d41948c Merge pull request #1583 from kaitranntt/kai/fix/cli-qa-ux-errors
fix(cli): UX and logistical fixes from a full feature-QA pass
2026-06-22 13:39:28 -04:00
Kai (Tam Nhu) Tran f9047d00a8 Merge pull request #1580 from kaitranntt/dev
feat: promote dev to main (CCS Bar v1.7.0, maintainability epic, provider fixes)
2026-06-21 13:37:22 -04:00
Kai (Tam Nhu) Tran c97037230a Merge pull request #1579 from kaitranntt/kai/ci/bar-auto-release
ci(bar): auto-build and publish CCS Bar on main via self-hosted macOS runner
2026-06-20 22:23:02 -04:00
Kai (Tam Nhu) Tran 458f836a07 Merge pull request #1578 from kaitranntt/kai/feat/ccs-bar-codex-sync-spend-chart
feat(bar): live Codex usage sync with force refresh and spend-chart periods
2026-06-20 19:54:00 -04:00
Kai (Tam Nhu) Tran e37a87c3a2 fix: ignore malformed bar analytics date keys (#1556)
* fix: ignore malformed bar analytics date keys

* style: apply prettier formatting to dynamic imports
2026-06-20 16:23:22 -04:00
Kai (Tam Nhu) Tran 6e64a3ac6e Merge pull request #1573 from tiennm99/fix/update-provider-model-templates
fix(config): update provider default models
2026-06-19 10:00:20 -04:00
Kai (Tam Nhu) Tran 1a0398579a fix: degrade WebSearch launch provisioning failures (#1571) 2026-06-18 22:56:20 -04:00
Kai (Tam Nhu) Tran b6ef4e5782 fix(cliproxy): guard unsupported Qwen account auth 2026-06-18 21:34:27 -04:00
Kai (Tam Nhu) Tran 2a14904a23 Merge pull request #1568 from kaitranntt/kai/feat/maintainability-traceability-epic
Maintainability & Traceability Epic (P1-P7)
2026-06-18 19:48:25 -04:00
Kai (Tam Nhu) Tran 49a7b9dc85 fix(cliproxy): use root URL for Claude provider (#1554)
Built-in Claude provider now uses the CLIProxy root URL instead of /api/provider/claude (which 404'd since base CLIProxy registers /v1/messages at root). Repairs stale local Claude settings, keeps non-Claude providers on their scoped routes, and applies the same root-URL rule to the ccs api create --cliproxy-provider claude bridge path via a shared buildCliproxyProviderPath helper. Closes #1545.
2026-06-16 10:23:48 -04:00
Kai (Tam Nhu) Tran 3fa4a342f9 test(bar): harden bar-probe auth coverage; drop dead proxy shim (#1555)
* test(bar): cover socket-level 401/403 auth detection and liveness-poll rogue rejection

Add two new describe blocks to bar-command.test.ts:

1. `defaultFindRunningServer: socket-level 401/403 classifies authRequired=true`
   Drives `net.connect` via mock.module('net') to verify that status lines
   401 and 403 off the wire set authRequired=true.  A correct-token 200 must
   not set authRequired.  Prior tests bypassed the real status-line parser by
   injecting authRequired via deps; these tests couple to the actual branch.

2. `defaultWaitForServerLive: rogue 200 without matching token is rejected`
   Uses the same net mock pattern to verify that a 200 carrying a wrong
   x-ccs-bar-token never causes the liveness poll to resolve (rogue reflector
   cannot pass).  Correct token resolves immediately.

Export `defaultWaitForServerLive` from launch-subcommand.ts so the direct
unit test can import it without forcing a full handleBarLaunch invocation.

Both test groups are behavior-coupled: removing the relevant branch in
production causes the tests to fail (verified under mutation).

* refactor(bar): drop dead ensureLoopbackNoProxy proxy shim

The probe now uses raw net.connect() which never consults proxy env vars
(undici was fully removed in an earlier PR).  ensureLoopbackNoProxy()
permanently mutated process-wide NO_PROXY/no_proxy on every discovery call
with no effect on the actual network path.

Verified zero remaining references to ensureLoopbackNoProxy outside the
declaration and call site that are now removed.
2026-06-16 09:30:01 -04:00
Kai (Tam Nhu) Tran f25a1015ed fix(bar): authenticate reused local server probes (#1546)
Closes a spoofed-loopback-200 bar.json poisoning vector with a per-user 0600 capability token. The real bar server echoes its file-derived token on /bar/* responses; the launch probe verifies the echoed token against the locally-read file (fail-closed) before reusing a server, so a rogue loopback process that cannot read the token file is rejected.
2026-06-16 09:08:21 -04:00
Kai (Tam Nhu) Tran 84ff4d57a4 fix(bar): tolerate duplicate rows in alert pruning (#1553)
Bar alert pruning tolerates duplicate rows without crashing.
2026-06-16 08:45:47 -04:00