Codex Config Rename and Mac Crash Workarounds
We break down a silent Codex config rename from :project_roots to :workspace_roots that can wreck sandbox paths, plus the quick fix in .codex/config.toml. The episode also covers a severe macOS Dock plugin crash in Desktop Build 3808 and a profile change that can stop stream disconnects on long sessions.
Chapter 1
The Rename from :project_roots to :workspace_roots
Ethan Park
Welcome to the show, everyone! I'm Ethan Park, here with Maya, and thanks to Jellypod for helping make this daily show a reality. Maya, we need to start with a configuration change in Codex that is going to quietly break a lot of local setups if people aren't paying attention. If you've updated your Codex CLI recently and noticed the model is suddenly hallucinating file structures or acting like it can't read your directories, it's because of a single renamed configuration key: `:project_roots` is now `:workspace_roots`.
Maya
Wait, [questioning tone] they renamed a core configuration key and didn't throw a hard error on startup? That means if you have the old key, Codex is just silently ignoring your sandbox path settings?
Ethan Park
Exactly. No crash, no giant red warning banner. It just silently ignores the old `:project_roots` key. So if you've configured your filesystem sandbox to restrict the model to, say, `/src/projects/app-one`, Codex now treats that sandbox as empty or defaults to exposing the entire home directory. Or, on the flip side, it might completely lock the model out of the directories it actually needs to do its job.
Maya
That is a massive security and usability headache. [skeptical] I mean, sandbox isolation is literally the only thing keeping an autonomous CLI agent from wandering off into your private documents or SSH keys if it gets confused.
Ethan Park
Precisely. It's a quiet failure that leaves you exposed. Fortunately, the fix is incredibly straightforward. You just need to open up your global or project-level `.codex/config.toml` file. Locate any occurrences of colon project underbar roots, and change them to colon workspace underbar roots. Once you save that change and restart the daemon, your directory access and sandbox boundaries are fully restored.
Maya
Okay, so rename `:project_roots` to `:workspace_roots` in `.codex/config.toml`. Simple enough, but you have to actually know it happened. [chuckles] Thanks for saving us some head-scratching on that one, Ethan.
Chapter 2
Surviving the macOS Dock Crash and Stream Disconnects in Desktop Build 3808
Ethan Park
[sighs] Now, speaking of head-scratching, if you're on a Mac and updated to the latest Codex Desktop Build 3808, which runs CLI version 0.140.0-alpha.2, you might be dealing with something much worse than a silent config ignore. Like, your entire Mac crashing and logging you out.
Maya
Wait, what? [gasps] A desktop app update is crashing WindowServer? That's not just an app crash; that's your whole desktop environment imploding. What is going on under the hood?
Ethan Park
It is a nasty one. There's a severe recursion bug inside the macOS Dock tile plugin helper, specifically `CodexDockTilePlugin.plugin`. Every time the app tries to update its status icon in the Dock, it triggers an infinite loop in `setDockTile:`. This completely exhausts the thread stack and starts leaking file descriptors like crazy because Gatekeeper and `syspolicyd` are constantly trying to re-verify the plugin's code signature. Eventually, the macOS WindowServer watchdog sees the resource exhaustion and just kills the entire user session, logging you out.
Maya
An infinite loop in a Dock tile plugin? [scoffs] That is the ultimate messy product launch bug. You're just trying to write code, and suddenly your screen goes black and you're staring at the macOS login prompt. Is there a way to disable this plugin without uninstalling the whole desktop app?
Ethan Park
Yes, absolutely. The quickest temporary workaround is to go into your macOS System Settings, find the Codex helper integrations, and disable the Dock tile helper entirely. If you want to be completely sure it can't load, you can actually go into the application bundle—right-click the Codex app, select "Show Package Contents"—and physically delete or rename the `CodexDockTilePlugin.plugin` bundle inside the plug-ins folder.
Maya
[thoughtfully] Okay, strip the plugin from the bundle. Good to know. But wait, I've also heard people complaining about stream disconnects on the new `gpt-5.5` model when using this same build. Are those related?
Ethan Park
They aren't directly related to the Dock crash, but they are happening in the same alpha release. What's happening there is a context compaction issue. When you run a long session on the standard profile, the model tries to compact the history, which causes the stream to time out and disconnect. The bypass for this is to switch your session profile from "standard" to "high-speed" in your configuration. The high-speed profile handles context windowing differently, which prevents the connection from dropping mid-stream.
Maya
Got it. So if you're on build 3808, kill the Dock plugin to save your OS, and switch to the high-speed profile to save your model streams. It feels like we're really living on the bleeding edge with these alpha builds.
Ethan Park
[chuckles] We definitely are. That's the price of early access, but at least now you have the workarounds to keep your system stable while they patch this up. That's all for today's quick take. I'm Ethan Park.
Maya
And I'm Maya. Keep your config files updated and your Dock plugins disabled, everyone. See you next time!