fix(codex-supervisor): disable app-server websocket compression#88550
fix(codex-supervisor): disable app-server websocket compression#88550imwyvern wants to merge 1 commit into
Conversation
|
Nice narrow fix and the UDS handshake test is especially helpful. One thing I wanted to double-check: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7d15d7ad01
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| requestText = chunk.toString("utf8"); | ||
| socket.end("HTTP/1.1 400 Bad Request\r\n\r\n"); | ||
| }); | ||
| }); |
There was a problem hiding this comment.
Guard the Unix socket test on Windows
When this test is run on Windows, socketPath is an os.tmpdir() filesystem path, but Node's IPC contract requires Windows named-pipe paths under \\?\pipe\ or \\.\pipe\; server.listen(socketPath) will emit an error and this promise never rejects, so pnpm test extensions/codex-supervisor hangs/fails before reaching the assertions. Either skip this Unix-domain-socket regression on non-POSIX platforms or construct a valid Windows pipe path.
Useful? React with 👍 / 👎.
|
Codex review: needs changes before merge. Reviewed June 29, 2026, 5:40 PM ET / 21:40 UTC. Summary PR surface: Source +5, Tests +29. Total +34 across 2 files. Reproducibility: yes. Source inspection shows current main uses ws default compression for unix://, ws 8.21.0 offers Sec-WebSocket-Extensions by default, and Codex accepts the Unix control-socket upgrade through accept_async; the PR body also includes after-fix live output from Codex CLI 0.135.0. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Keep the Unix-socket no-compression fix, preserve existing ws/wss negotiation unless maintainers intentionally approve the broader compatibility change, and make the regression test POSIX-only or Windows-pipe aware. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main uses ws default compression for unix://, ws 8.21.0 offers Sec-WebSocket-Extensions by default, and Codex accepts the Unix control-socket upgrade through accept_async; the PR body also includes after-fix live output from Codex CLI 0.135.0. Is this the best way to solve the issue? No, not as written. The Unix-socket repair is the right target, but the implementation should avoid changing normal ws/wss endpoints and should keep the regression test portable. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 15de9d881a84. Label changesLabel justifications:
Evidence reviewedPR surface: Source +5, Tests +29. Total +34 across 2 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
7d15d7a to
82b260c
Compare
|
Superseded by #104045, which removes the separate Thanks for investigating and fixing the original endpoint behavior. |
Summary
permessage-deflateon Codex Supervisor app-server WebSocket clientsVerification
node scripts/run-vitest.mjs extensions/codex-supervisor/src/supervisor.test.tspnpm buildautoreview --mode commit --commit HEADvia.agents/skills/autoreview/scripts/autoreviewReal behavior proof
Behavior addressed: the default local
unix://Codex Supervisor endpoint could fail health probes because the Nodewsclient offeredpermessage-deflateduring the Unix socket WebSocket upgrade and Codex closed that handshake.Real environment tested: local Codex CLI 0.135.0 app-server daemon with the default Unix control socket.
Exact steps or command run after this patch: used the patched
connectCodexAppServerEndpoint({ id: "local", transport: "websocket", url: "unix://" }), then requestedthread/loaded/listwith{ limit: 1 }.Evidence after fix: the patched source returned
{"ok":true,"result":{"data":[],"nextCursor":null}}.Observed result after fix: the default
unix://endpoint initializes and answersthread/loaded/list.What was not tested: full CI and cross-platform Codex daemon behavior.