cdx-manager 0.21.0 → 0.21.2

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
@@ -4,7 +4,7 @@
4
4
 
5
5
  <br clear="left"/>
6
6
 
7
- [![License](https://img.shields.io/badge/license-MIT-4C8BF5)](LICENSE) ![Version](https://img.shields.io/badge/version-v0.21.0-4C8BF5) ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python&logoColor=white)
7
+ [![License](https://img.shields.io/badge/license-MIT-4C8BF5)](LICENSE) ![Version](https://img.shields.io/badge/version-v0.21.2-4C8BF5) ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python&logoColor=white)
8
8
 
9
9
  **The right AI coding account, when you need it.** CDX Manager keeps your Codex and Claude accounts in separate profiles, shows which ones have quota, and helps you pick the next usable session from your terminal.
10
10
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.21.0
1
+ 0.21.2
@@ -0,0 +1,6 @@
1
+ # CDX Manager 0.21.1
2
+
3
+ ## Fixes
4
+
5
+ - Stop the macOS tray companion from leaking memory: each poll rebuilt the menu and status icon outside any autorelease pool, so nothing was ever freed and a week-old companion reached a footprint of about 19 GB.
6
+ - Cache a failed cdx-manager release check like a successful one and lower its network timeout from 5 s to 2 s, so a degraded network no longer stalls every `cdx` command on GitHub.
@@ -0,0 +1,9 @@
1
+ # CDX Manager 0.21.2
2
+
3
+ ## Fixes
4
+
5
+ - Keep the tray companion visible to CDX on long runs: macOS purges per-user temp files untouched for about three days, which removed the companion's instance lock. CDX then saw no tray, so an update replaced the binary without stopping the old process and `cdx tray launch` could not start a new one. The companion now restores its lock within a minute when it disappears.
6
+
7
+ ## Release process
8
+
9
+ - GitHub release titles are exactly their tag (`vX.Y.Z`); the checksum workflow now enforces it on publish.
@@ -474,6 +474,28 @@
474
474
  "x86_64-pc-windows-msvc": "d1888eb3d8f34114e36e88821907fae776498b2b03c18158316db61033c94419",
475
475
  "x86_64-unknown-linux-musl": "e369163b63bfb5301c985a02cc02755ea90996dc992a8c29c28d6b307b507447"
476
476
  }
477
+ },
478
+ "v0.21.0": {
479
+ "github_tarball_sha256": "bee4a300e5de4b31535cebf245e33f73a59be6823dd1c449ebb61711ea7d644d",
480
+ "github_zip_sha256": "c1e8f49b513d5c4c92b298312b865ca3e966954b05b53936699784bf6446343c",
481
+ "tray_assets": {
482
+ "aarch64-apple-darwin": "4c87353837291f562baf0be20c6c1423369924ccda2b670bc328986771082424",
483
+ "aarch64-unknown-linux-musl": "9481632866b7b271483b964633948ec4c43ecbed090e688479afafcfac03bbba",
484
+ "x86_64-apple-darwin": "b0ca64da014846b0cc2eaa5918496b75ff3fc02bd000a9945a9ac7b8fb1f8771",
485
+ "x86_64-pc-windows-msvc": "20af5c24d62b673458c1ad7245df58d3cadb0be27116338fa39f66f896cd3d9f",
486
+ "x86_64-unknown-linux-musl": "4f7bc612c378a6e746a5bd737f89763ddaea0398182b49df28a9954e955fcd63"
487
+ }
488
+ },
489
+ "v0.21.1": {
490
+ "github_tarball_sha256": "be99bab2b7b0e86a36db8f891881fdc940631ca7f5b08e9402f1f6d44b614c56",
491
+ "github_zip_sha256": "06114c024b75125a081c0ca19d794604f259bf1ca9a5e2b8030218d3e58a926e",
492
+ "tray_assets": {
493
+ "aarch64-apple-darwin": "80df87fb4f8ed6ecddb5c8719d7f9a18a0dfb46625ea9f6137efe0b5a2cfe7bd",
494
+ "aarch64-unknown-linux-musl": "3c6b81b39f0abec33309835873f62c7fef37d4b3ddd30a2670081f5e930803c3",
495
+ "x86_64-apple-darwin": "dd087d256e54aad2a0781b7b98e21a416ba7b14f92344413959d7a26c8a81468",
496
+ "x86_64-pc-windows-msvc": "c316d753c055be48d74e23537ca66093a1a7c36df8fb8518d6b909484ccb9415",
497
+ "x86_64-unknown-linux-musl": "f5a034ba301ecf10de33498cd99f00fa3aa6afda94d7c743390af05f4f718790"
498
+ }
477
499
  }
478
500
  }
479
501
  }
@@ -29,7 +29,7 @@ Notes:
29
29
 
30
30
  ## Release checklist
31
31
 
32
- - Name the GitHub Release `CDX Manager X.Y.Z` (for example, `CDX Manager 0.21.0`); use `vX.Y.Z` for its tag and the checked-in versioned changelog for its notes.
32
+ - Name the GitHub Release exactly as its tag, `vX.Y.Z` (for example, `v0.21.1`); use the checked-in versioned changelog for its notes.
33
33
  - Before publishing npm or PyPI packages, run `npm run release:validate`.
34
34
  - The release tag must match `package.json`, `pyproject.toml`, `src/cli.py`, and `VERSION`.
35
35
  - `checksums/release-archives.json` must include the matching `vX.Y.Z` entry with both `github_tarball_sha256` and `github_zip_sha256`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdx-manager",
3
- "version": "0.21.0",
3
+ "version": "0.21.2",
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.21.0"
7
+ version = "0.21.2"
8
8
  description = "Terminal session manager for Codex and Claude accounts."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -78,7 +78,7 @@ def _fetch_latest_release(env=None):
78
78
  LATEST_RELEASE_URL,
79
79
  headers=headers,
80
80
  )
81
- with urllib.request.urlopen(request, timeout=5) as response:
81
+ with urllib.request.urlopen(request, timeout=2) as response:
82
82
  payload = json.loads(response.read().decode("utf-8"))
83
83
  return {
84
84
  "latest_version": str(payload.get("tag_name") or "").lstrip("v"),
@@ -185,6 +185,12 @@ def check_for_update(base_dir, current_version, env=None, now_fn=None):
185
185
 
186
186
  latest = fetch_latest_release(env=env)
187
187
  if not latest:
188
+ # A failure is cached like a success, keeping the last known version:
189
+ # otherwise a slow network makes every cdx command wait on GitHub again.
190
+ try:
191
+ _write_cache(path, {**cached, "checked_at": now_ts})
192
+ except OSError:
193
+ pass
188
194
  return None
189
195
 
190
196
  payload = {