cdx-manager 0.26.5 → 0.26.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/VERSION +1 -1
- package/changelogs/CHANGELOGS_0_26_6.md +17 -0
- package/checksums/release-archives.json +11 -0
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/conversation.py +4 -0
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<br clear="left"/>
|
|
6
6
|
|
|
7
|
-
[](LICENSE) ](LICENSE)  
|
|
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.
|
|
1
|
+
0.26.6
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# CDX Manager 0.26.6
|
|
2
|
+
|
|
3
|
+
Release date: 2026-11-06
|
|
4
|
+
|
|
5
|
+
## Fixes
|
|
6
|
+
|
|
7
|
+
- Unwrap matching Claude `pasted_content` tags in conversation views so pasted
|
|
8
|
+
text appears without its wrapper (#116,
|
|
9
|
+
`84cb0de57407e4568b8d9918787a8d370ec76d10`). Preserve literal text with
|
|
10
|
+
unmatched tags.
|
|
11
|
+
|
|
12
|
+
## Maintenance
|
|
13
|
+
|
|
14
|
+
- Record tray companion checksums for v0.26.5
|
|
15
|
+
(`0bd3af61dbb1c848c9a14cbd10ce4b6af439b3c9`).
|
|
16
|
+
- Record release archive checksums for v0.26.5
|
|
17
|
+
(`19d2d3c7443dc5573afce982086fd0d38d89fad2`).
|
|
@@ -848,6 +848,17 @@
|
|
|
848
848
|
"x86_64-pc-windows-msvc": "40e0a2e7d72cacbf2fa5fc241484e901228e44214f053c1c1defede62045624b",
|
|
849
849
|
"x86_64-unknown-linux-musl": "f24dea41496fa347b64873066b6b57fbbca6480c4bef1769a3bcd47e3dcb6b34"
|
|
850
850
|
}
|
|
851
|
+
},
|
|
852
|
+
"v0.26.5": {
|
|
853
|
+
"github_tarball_sha256": "45bae3e2dccc49ac47c4c0c3fa57053b391ce3ddf8c56f002f10b56a989d4c1b",
|
|
854
|
+
"github_zip_sha256": "3bdfc7c87beb1a3903e979ec5680d7b18f089cd0ff11728ae895faac472b2759",
|
|
855
|
+
"tray_assets": {
|
|
856
|
+
"aarch64-apple-darwin": "df17b304e0442f5a2f71d18ed754a98d0151b48708117f47a6cb8106055a77b3",
|
|
857
|
+
"aarch64-unknown-linux-musl": "792948a0c48f8221fbf87b6c77e5d4c9e29aac0cf0738857a5ae3346794b5c01",
|
|
858
|
+
"x86_64-apple-darwin": "18923fe1f9bda34ef52b972002845aa914a404beff0de9963f6f9fb0a4c2f0b1",
|
|
859
|
+
"x86_64-pc-windows-msvc": "1ea355b54e05ea6d78a3a23757a9ad5dd2228aa1d939fb7992082e16da579abb",
|
|
860
|
+
"x86_64-unknown-linux-musl": "770fabb26784efb607d2cce6d6bee51c3d7121283c55cf4cacb9b54ac75e4450"
|
|
861
|
+
}
|
|
851
862
|
}
|
|
852
863
|
}
|
|
853
864
|
}
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
package/src/conversation.py
CHANGED
|
@@ -66,6 +66,8 @@ _CLAUDE_HARNESS = re.compile(
|
|
|
66
66
|
r"\s*(?:<(?P<tag>task-notification|local-command-stdout|local-command-stderr|command-name|command-message|command-args|system-reminder)>"
|
|
67
67
|
r"(?:(?!</(?P=tag)>).)*</(?P=tag)>\s*)+", re.S,
|
|
68
68
|
)
|
|
69
|
+
# Claude Code wraps long pasted text in matching tags; show only the pasted text.
|
|
70
|
+
_CLAUDE_PASTED = re.compile(r'<pasted_content id="([0-9A-Za-z]{1,32})">\n?(.*?)\n?</pasted_content id="\1">', re.S)
|
|
69
71
|
_CLAUDE_MID_TURN_START = "The user sent a new message while you were working:\n"
|
|
70
72
|
_CLAUDE_MID_TURN_END = re.compile(
|
|
71
73
|
r"\n+This is how Claude Code surfaces messages the user sends mid-turn[^\n]*"
|
|
@@ -81,6 +83,8 @@ def _claude_user_content(content):
|
|
|
81
83
|
blocks = [dict(block) if isinstance(block, dict) else block for block in blocks]
|
|
82
84
|
texts = [block for block in blocks if isinstance(block, dict)
|
|
83
85
|
and block.get("type") == "text" and isinstance(block.get("text"), str)]
|
|
86
|
+
for block in texts:
|
|
87
|
+
block["text"] = _CLAUDE_PASTED.sub(r"\2", block["text"])
|
|
84
88
|
# Require both anchored boundaries; a quoted sentence alone is user content.
|
|
85
89
|
if texts and texts[0]["text"].startswith(_CLAUDE_MID_TURN_START):
|
|
86
90
|
end = _CLAUDE_MID_TURN_END.search(texts[-1]["text"])
|