Release Codex Deck 0.7.0 - #6
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c58b008f43
ℹ️ 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".
| if (mobileLocalConfig?.enabled) { | ||
| mobileLocalRelayServer = new CodexRelayServer( | ||
| mobileLocalConfig, | ||
| { ...identity, platform: "darwin", codexVersion: installation.version }, relayControl, | ||
| (message) => safeLog(`Nearby mobile relay: ${message}`) | ||
| ); | ||
| await mobileLocalRelayServer.start(); |
There was a problem hiding this comment.
Keep the Nearby listener owned by one macOS process
On macOS, both this watcher and the Stream Deck plugin now read the same mobile-local-relay-server.json and instantiate CodexRelayServer on its port (src/controller.ts lines 143-148). After a reboot or simultaneous reload, whichever process binds first makes the other fail with EADDRINUSE; if the plugin wins, every watcher iteration reaches this start, throws before the bridge health/recovery block, and retries indefinitely, leaving a cold Codex bridge unable to recover. Assign the Nearby listener exclusively to the watcher on macOS, or coordinate ownership instead of starting it from both processes.
Useful? React with 👍 / 👎.
| } catch (error) { | ||
| this.mobileRelayServer = undefined; | ||
| this.localMobileRelayServer = undefined; |
There was a problem hiding this comment.
Close partially started mobile relays on startup failure
When both mobile configurations are enabled and the first server starts successfully but the second fails—for example because its port is occupied—this catch discards both references without closing the already listening first server. stop() can then no longer close that listener, and the log incorrectly reports that no optional relay started. Retain or explicitly close any server that was started before clearing these fields.
Useful? React with 👍 / 👎.
What changed
User impact
Existing Stream Deck and desktop-only installations remain supported. The iPhone app is distributed as source and currently requires a Mac with Xcode to build and sign. No official OpenAI keycap artwork, relay tokens, or personal signing identifiers are included.
Validation
No Codex restart was performed during final validation.