cdx-manager 0.24.6 → 0.24.7
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_24_7.md +15 -0
- package/checksums/release-archives.json +11 -0
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/provider_runtime.py +15 -1
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.24.
|
|
1
|
+
0.24.7
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# CDX Manager 0.24.7
|
|
2
|
+
|
|
3
|
+
Release date: 2026-10-29
|
|
4
|
+
|
|
5
|
+
This patch fixes command execution in isolated Codex workspace runs. (#65)
|
|
6
|
+
|
|
7
|
+
## Workspace runs
|
|
8
|
+
|
|
9
|
+
- Drop Codex's nested sandbox when `--isolate-workspace` is enabled, avoiding the user namespace mapping failure that prevented commands from running. The outer workspace sandbox remains the isolation boundary. (#65)
|
|
10
|
+
- Remove Codex's sandbox mode and network overrides inside the isolated workspace and pass `--dangerously-bypass-approvals-and-sandbox`; the outer sandbox controls network access and keeps review runs read-only through its workspace mount. (#65)
|
|
11
|
+
|
|
12
|
+
## Maintenance
|
|
13
|
+
|
|
14
|
+
- Record tray companion checksums for v0.24.6. (`87aba5d2cffdfb1a96e386abcdabe54df9ee4808`)
|
|
15
|
+
- Record release archive checksums for v0.24.6. (`6b92094143ea28bf0cc096aef88d1015565aba18`)
|
|
@@ -639,6 +639,17 @@
|
|
|
639
639
|
"x86_64-pc-windows-msvc": "74124b2e40a58a58b55724ef453c4b543a83eefab9a5f92685b239c5d97e7f67",
|
|
640
640
|
"x86_64-unknown-linux-musl": "089e552a4dfae4080a2e76cedb6fe72fc8013a9cd08cf3c8b333f916198da57c"
|
|
641
641
|
}
|
|
642
|
+
},
|
|
643
|
+
"v0.24.6": {
|
|
644
|
+
"github_tarball_sha256": "4b61861ae26fc7904e751571b65d0783c16dcf35d3b485379434469e27511fb4",
|
|
645
|
+
"github_zip_sha256": "6c5cfa2139eb53a20a8eca8624437a06b18392b0df7774d9c7c64a74b8066f59",
|
|
646
|
+
"tray_assets": {
|
|
647
|
+
"aarch64-apple-darwin": "7200f658e3413b2614a7ffa5d03e1dac173fc1a653dc659d92f2bef40f2bf5d4",
|
|
648
|
+
"aarch64-unknown-linux-musl": "b892a9a3bf009e5069dc798ab910b20e77ac9d03b9b575a80cb19af1dc13533a",
|
|
649
|
+
"x86_64-apple-darwin": "d1e1b619feab8eae1e2a25e17942d8d690fc1e6184f294599a15858a1f0c146e",
|
|
650
|
+
"x86_64-pc-windows-msvc": "0d125d8e0f7d9880a2ed9e0a794964f3d69ef3353b90a1d594b17f9392a0a0af",
|
|
651
|
+
"x86_64-unknown-linux-musl": "d6c369ace10a6d373366cd12e4e6cd7f2fd278fbce2fd9a13c5bf51047847441"
|
|
652
|
+
}
|
|
642
653
|
}
|
|
643
654
|
}
|
|
644
655
|
}
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
package/src/provider_runtime.py
CHANGED
|
@@ -1212,7 +1212,10 @@ def _run_headless_provider_command(session, cwd=None, env_override=None, initial
|
|
|
1212
1212
|
)
|
|
1213
1213
|
launch = session.get("launch") or {}
|
|
1214
1214
|
if launch.get("network_access"):
|
|
1215
|
-
if session.get("provider") == PROVIDER_CODEX:
|
|
1215
|
+
if session.get("provider") == PROVIDER_CODEX and launch.get("isolate_workspace"):
|
|
1216
|
+
# The outer sandbox owns the network; Codex's own sandbox is dropped below.
|
|
1217
|
+
pass
|
|
1218
|
+
elif session.get("provider") == PROVIDER_CODEX:
|
|
1216
1219
|
# Keep the workspace sandbox; append overrides before the prompt separator.
|
|
1217
1220
|
index = spec["args"].index("--") if "--" in spec["args"] else len(spec["args"])
|
|
1218
1221
|
spec["args"][index:index] = ["-c", 'sandbox_workspace_write.network_access=true', '-c', 'sandbox_workspace_write.writable_roots=["/cache", "/home/agent"]']
|
|
@@ -1226,6 +1229,17 @@ def _run_headless_provider_command(session, cwd=None, env_override=None, initial
|
|
|
1226
1229
|
# The outer OS sandbox is the permission boundary for unattended Bash.
|
|
1227
1230
|
index = spec["args"].index("--") if "--" in spec["args"] else len(spec["args"])
|
|
1228
1231
|
spec["args"][index:index] = ["--permission-mode", "bypassPermissions"]
|
|
1232
|
+
elif session.get("provider") == PROVIDER_CODEX:
|
|
1233
|
+
# Codex's bubblewrap sandbox cannot nest inside ours (no uid map), so the
|
|
1234
|
+
# outer box is the boundary: drop `-s <mode>` and bypass the inner one.
|
|
1235
|
+
# A review run stays read-only through the outer mount.
|
|
1236
|
+
args = spec["args"]
|
|
1237
|
+
while "-s" in args:
|
|
1238
|
+
index = args.index("-s")
|
|
1239
|
+
del args[index:index + 2]
|
|
1240
|
+
if "--dangerously-bypass-approvals-and-sandbox" not in args:
|
|
1241
|
+
index = args.index("--") if "--" in args else len(args)
|
|
1242
|
+
args[index:index] = ["--dangerously-bypass-approvals-and-sandbox"]
|
|
1229
1243
|
try:
|
|
1230
1244
|
argv, child_env = sandbox_command(
|
|
1231
1245
|
[spec["command"], *spec["args"]], Path(cwd),
|