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 +1 -1
- package/changelogs/CHANGELOGS_0_9_6.md +27 -0
- package/checksums/release-archives.json +4 -0
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/claude_refresh.py +1 -19
- package/src/cli.py +1 -1
- package/src/update_check.py +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CDX Manager
|
|
2
2
|
|
|
3
|
-
[](LICENSE) ](LICENSE)  
|
|
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
package/pyproject.toml
CHANGED
package/src/claude_refresh.py
CHANGED
|
@@ -2,7 +2,7 @@ import inspect
|
|
|
2
2
|
import threading
|
|
3
3
|
from datetime import datetime, timezone
|
|
4
4
|
|
|
5
|
-
from .claude_usage import
|
|
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
package/src/update_check.py
CHANGED
|
@@ -7,7 +7,7 @@ import urllib.request
|
|
|
7
7
|
from datetime import datetime, timezone
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
UPDATE_CHECK_TTL_SECONDS =
|
|
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
|
|