cdx-manager 0.26.4 → 0.26.5

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.26.4-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.26.5-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.26.4
1
+ 0.26.5
@@ -0,0 +1,17 @@
1
+ # CDX Manager 0.26.5
2
+
3
+ Release date: 2026-11-06
4
+
5
+ ## Fixes
6
+
7
+ - Skip Claude `isMeta` user records in conversation views (#114,
8
+ `03de3770d257cc9643e542d1dbd3120e9ae71ff4`). Hide harness notes such as
9
+ image size hints and caveats, and classify oversized tool results as tool
10
+ entries so they no longer appear as operator messages.
11
+
12
+ ## Maintenance
13
+
14
+ - Record tray companion checksums for v0.26.4
15
+ (`4b42be1314c4b575369858d05e3e932687e5c8df`).
16
+ - Record release archive checksums for v0.26.4
17
+ (`67014979a69c853aa4d27c89577ce022760f6514`).
@@ -837,6 +837,17 @@
837
837
  "x86_64-pc-windows-msvc": "7b9d9fc24dd5d4285a5cac7e746614654deaebe197ab38fa6e1c302da34e0358",
838
838
  "x86_64-unknown-linux-musl": "51ea6902917697f5d16ef994bb01d0d0c6293b60c8f26b3735cb08925b3af616"
839
839
  }
840
+ },
841
+ "v0.26.4": {
842
+ "github_tarball_sha256": "a691b54a120807f7b56ec36aca35fa5efd95f75f589dda4d8fdece51c5a32ccf",
843
+ "github_zip_sha256": "53247a7f57d0429d10c12326d5aa46862a97d8dc93835744a0ff88ddf898667b",
844
+ "tray_assets": {
845
+ "aarch64-apple-darwin": "4fbf37673acaf84b053d2f8607162690155a625406d82b77a9dbf388ac77a102",
846
+ "aarch64-unknown-linux-musl": "85041278763597ca90fa25791e82b6db53b96e31a9f2aa421160d8c113e6a381",
847
+ "x86_64-apple-darwin": "0a4c1f503a7da6c8aa13e8d30d836f5d1cc44c1ac1e24534279801e6eeb3d661",
848
+ "x86_64-pc-windows-msvc": "40e0a2e7d72cacbf2fa5fc241484e901228e44214f053c1c1defede62045624b",
849
+ "x86_64-unknown-linux-musl": "f24dea41496fa347b64873066b6b57fbbca6480c4bef1769a3bcd47e3dcb6b34"
850
+ }
840
851
  }
841
852
  }
842
853
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdx-manager",
3
- "version": "0.26.4",
3
+ "version": "0.26.5",
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.26.4"
7
+ version = "0.26.5"
8
8
  description = "Terminal session manager for Codex and Claude accounts."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9.2"
@@ -99,6 +99,9 @@ def _entries(provider, record, names):
99
99
  return []
100
100
  if not _conversation_record(provider, record.get("type")):
101
101
  return []
102
+ # Claude Code marks its own user-role notes (image size hints, caveats) as isMeta.
103
+ if provider == "claude" and record.get("isMeta"):
104
+ return []
102
105
  stamp = record.get("timestamp")
103
106
  try:
104
107
  datetime.fromisoformat(stamp.replace("Z", "+00:00"))
@@ -214,6 +217,11 @@ def _oversized_entry(provider, prefix):
214
217
  value, _ = json.JSONDecoder().raw_decode(prefix, role) if role is not None else (None, 0)
215
218
  except (ValueError, RecursionError):
216
219
  value = None
220
+ if provider == "claude" and value == "user":
221
+ # A large tool result (an image read) is tool output, never an operator message.
222
+ content = _field_start(prefix, "content", message)
223
+ if content is not None and '"tool_result"' in prefix[content:content + 300]:
224
+ return _entry("tool", name="tool", summary="Result recorded")
217
225
  return _entry(value if value in ("user", "assistant", "tool") else "tool",
218
226
  "[élément trop volumineux ignoré]")
219
227