ci / mobile-link-windows (push) Successful in 44s
ci / approval-gate-windows (push) Successful in 2m32s
Codex compresses request bodies with zstd. The agent venv is Python 3.11, which has no zstd in its standard library, so every Codex request failed on a fresh install. The matching zstandard build now ships beside the bridge; the status endpoint reports ok=false when bodies cannot be read, and the IDE then leaves Codex's config alone. A running bridge from an older build is replaced, and "Sync now" makes the bridge re-read the IDE session at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HRDGW1LiKcDUZYUdKBoWYW
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
"""Codex compresses request bodies with zstd; the bridge must be able to read them."""
|
|
import ast
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
tree = ast.parse(Path(__file__).with_name("bridge.py").read_text(encoding="utf-8"))
|
|
wanted = {"_zstd_decompress", "_zstd_ready", "decompress"}
|
|
env = {}
|
|
exec(compile(ast.Module(body=[n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in wanted],
|
|
type_ignores=[]), "bridge.py", "exec"), env)
|
|
|
|
|
|
class Zstd(unittest.TestCase):
|
|
def test_self_check_matches_reality(self):
|
|
try:
|
|
try:
|
|
from compression import zstd as z
|
|
packed = z.compress(b"govde" * 50)
|
|
except ImportError:
|
|
import zstandard
|
|
packed = zstandard.ZstdCompressor().compress(b"govde" * 50)
|
|
except ImportError:
|
|
self.assertFalse(env["_zstd_ready"]()) # no zstd here: the bridge must say so
|
|
return
|
|
self.assertTrue(env["_zstd_ready"]())
|
|
self.assertEqual(env["decompress"](packed, "zstd"), b"govde" * 50)
|
|
|
|
def test_other_encodings(self):
|
|
import gzip
|
|
self.assertEqual(env["decompress"](gzip.compress(b"x"), "gzip"), b"x")
|
|
self.assertEqual(env["decompress"](b"duz", None), b"duz")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|