@timo972/cc-router 0.12.3-rc.0 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/CHANGELOG.md +33 -6
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -8,14 +8,40 @@ This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ---
12
+
13
+ ## [0.12.3] — 2026-09-17
14
+
11
15
  ### Added
12
16
 
13
- - Account identity and plan details in live account listings and the dashboard's
14
- selected-account details: email and workspace information for Claude and
15
- ChatGPT, Claude subscription status/start date, and plans for stored Grok
16
- accounts. Metadata refreshes in the background and with **R**; unavailable
17
- renewal dates remain unknown. Billing interval is not supported. Private identity details
18
- are excluded from health responses and telemetry.
17
+ - Account identity and plan details in the dashboard's selected-account line and
18
+ in `cc-router accounts list` while the proxy is running: email, personal or
19
+ workspace type, workspace name, and plan for Claude and ChatGPT accounts,
20
+ Claude subscription status and start date, and plans for stored Grok accounts.
21
+ Claude's start date is when the subscription was created, not the start of the
22
+ current billing period; billing interval is not supported, and renewal dates
23
+ are left unknown rather than guessed from token expiry or usage resets.
24
+ - `GET /cc-router/accounts` returns an optional `accountInfo` object per account,
25
+ with a `fetchStatus` of `fresh`, `stale`, or `unavailable`. Metadata is cached
26
+ in memory for five minutes, refreshed in the background with one-minute retries
27
+ after a failure, and refreshed on demand by `POST /cc-router/refresh` or the
28
+ dashboard's **R**. Listings never block on a provider request; a failed lookup
29
+ keeps the last successful data and marks it stale.
30
+
31
+ ### Changed
32
+
33
+ - `cc-router accounts list` reads live stats from the authenticated
34
+ `/cc-router/accounts` endpoint instead of `/cc-router/health`, sending the
35
+ configured proxy secret.
36
+
37
+ ### Security
38
+
39
+ - Identity metadata is memory-only: it is never written to `accounts.json`,
40
+ never included in health responses — including authenticated health — and
41
+ never sent to telemetry. Provider responses are rebuilt field by field from an
42
+ allowlist with bounded, control-character-free strings and strict timestamps,
43
+ metadata requests refuse redirects so credentials cannot follow one, and
44
+ decoded token claims are used for display only, never to authorize a request.
19
45
 
20
46
  ---
21
47
 
@@ -766,6 +792,7 @@ cache-aware session routing and a round of security hardening.
766
792
  - `http-proxy-middleware` 3.0.5 → 3.0.7 for GHSA-gcq2-9pq2-cxqm (high). The
767
793
  affected APIs are not used here.
768
794
 
795
+ [0.12.3]: https://github.com/Timo972/cc-router/releases/tag/v0.12.3
769
796
  [0.12.2]: https://github.com/Timo972/cc-router/releases/tag/v0.12.2
770
797
  [0.12.1]: https://github.com/Timo972/cc-router/releases/tag/v0.12.1
771
798
  [0.12.0]: https://github.com/Timo972/cc-router/releases/tag/v0.12.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timo972/cc-router",
3
- "version": "0.12.3-rc.0",
3
+ "version": "0.12.3",
4
4
  "description": "Cache-aware session router for Claude Max OAuth tokens — use multiple Claude Max accounts with Claude Code",
5
5
  "type": "module",
6
6
  "bin": {