cdx-manager 0.9.5 → 0.9.6

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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CDX Manager
2
2
 
3
- [![License](https://img.shields.io/badge/license-MIT-4C8BF5)](LICENSE) ![Version](https://img.shields.io/badge/version-v0.9.5-4C8BF5) ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python&logoColor=white)
3
+ [![License](https://img.shields.io/badge/license-MIT-4C8BF5)](LICENSE) ![Version](https://img.shields.io/badge/version-v0.9.6-4C8BF5) ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python&logoColor=white)
4
4
 
5
5
  **Run multiple Codex, Claude, Antigravity, and Ollama sessions from one terminal. Switch between accounts instantly.**
6
6
 
@@ -0,0 +1,27 @@
1
+ # CDX Manager 0.9.6
2
+
3
+ ## Highlights
4
+
5
+ - Kept Claude launch authentication separate from Claude quota-refresh failures.
6
+ - Reduced periodic update-check caching from 12 hours to 1 hour.
7
+
8
+ ## Changes
9
+
10
+ ### Claude auth stays usable after quota refresh errors
11
+
12
+ `cdx status --refresh` no longer marks a Claude session as logged out when the Anthropic quota-refresh request returns an authentication error but the Claude CLI auth probe succeeds.
13
+
14
+ This keeps `cdx <session>` launch readiness tied to `claude auth status`, while still surfacing quota-refresh failures as warnings for status and automation.
15
+
16
+ ### Hourly update checks
17
+
18
+ Periodic update checks now reuse cached release data for 1 hour instead of 12 hours. The same interval applies to both the `cdx-manager` release check and the companion `logics-manager` update check.
19
+
20
+ ## Validation
21
+
22
+ - `python3 -m unittest discover -s test -p 'test_update_check_py.py'`
23
+ - `python3 -m unittest discover -s test -p 'test_*.py' -k 'claude_auth'`
24
+ - `python3 -m unittest discover -s test -p 'test_*.py' -k 'login_claude'`
25
+ - `npm run lint`
26
+ - `npm test`
27
+ - `cdx status claw --json --refresh`
@@ -84,6 +84,10 @@
84
84
  "v0.9.4": {
85
85
  "github_tarball_sha256": "fe1c96e612392130a98ec6d9856ec41fb0c055c1a274ee77f143b5e4b8c1fb2f",
86
86
  "github_zip_sha256": "494b84aef93f796d78ef164c7b7670ba3dec1d81f66be966cb7a84d77d5ed6e3"
87
+ },
88
+ "v0.9.5": {
89
+ "github_tarball_sha256": "29c512600ed366e06bcaa8ae12f105cc198f85c6887d46c9032d677c5335203b",
90
+ "github_zip_sha256": "a7be652ba39b929eae6e90c48410ce8b7c9c122625da55bfcd50edb755d6d609"
87
91
  }
88
92
  }
89
93
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdx-manager",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "description": "Terminal session manager for Codex and Claude accounts.",
5
5
  "license": "MIT",
6
6
  "author": "Alexandre Agostini",
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cdx-manager"
7
- version = "0.9.5"
7
+ version = "0.9.6"
8
8
  description = "Terminal session manager for Codex and Claude accounts."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -2,7 +2,7 @@ import inspect
2
2
  import threading
3
3
  from datetime import datetime, timezone
4
4
 
5
- from .claude_usage import ClaudeAuthInvalidError, refresh_claude_session_status
5
+ from .claude_usage import refresh_claude_session_status
6
6
  from .config import PROVIDER_CLAUDE
7
7
  from .errors import CdxError
8
8
 
@@ -83,24 +83,6 @@ def _refresh_claude_sessions(service, refresh_fn=None, target_names=None, force=
83
83
  for t in threads:
84
84
  t.join(timeout=10)
85
85
 
86
- invalid_auth = sorted({
87
- item.get("session")
88
- for item in errors
89
- if item.get("session") and isinstance(item.get("error"), ClaudeAuthInvalidError)
90
- })
91
- if invalid_auth and service.get("update_auth_state"):
92
- now = datetime.now(timezone.utc).astimezone().isoformat()
93
- for name in invalid_auth:
94
- try:
95
- service["update_auth_state"](name, lambda auth: {
96
- **auth,
97
- "status": "logged_out",
98
- "lastCheckedAt": now,
99
- "lastLoggedOutAt": now,
100
- })
101
- except CdxError:
102
- pass
103
-
104
86
  for name, usage in results.items():
105
87
  try:
106
88
  service["record_status"](name, usage)
package/src/cli.py CHANGED
@@ -66,7 +66,7 @@ from .status_view import (
66
66
  )
67
67
  from .update_check import check_for_update, check_logics_manager_for_update
68
68
 
69
- VERSION = "0.9.5"
69
+ VERSION = "0.9.6"
70
70
 
71
71
 
72
72
  # ---------------------------------------------------------------------------
@@ -7,7 +7,7 @@ import urllib.request
7
7
  from datetime import datetime, timezone
8
8
 
9
9
 
10
- UPDATE_CHECK_TTL_SECONDS = 12 * 60 * 60
10
+ UPDATE_CHECK_TTL_SECONDS = 60 * 60
11
11
  LATEST_RELEASE_URL = "https://api.github.com/repos/AlexAgo83/cdx-manager/releases/latest"
12
12
  LOGICS_MANAGER_LATEST_URL = "https://registry.npmjs.org/@grifhinz%2Flogics-manager/latest"
13
13