macOS desktop upgrade can strand existing local tasks on stale symlinked writable roots
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
After updating and restarting the macOS Codex/ChatGPT desktop app, an existing local Codex task can fail before startup because sandbox setup rejects a persisted writable root that is now a symlink.
Error
failed to load AGENTS.md instructions for environment `local`: failed to prepare fs sandbox: failed to prepare Seatbelt sandbox: writable root <legacy-root> contains symlink component <legacy-root>; symlinked writable roots are not supported
Context
- Platform: macOS
- Trigger: update to the latest desktop app version, then restart.
- The task's actual current folder already uses the resolved, non-symlink path.
- A legacy compatibility path remains as a symlink to that location.
- The task UI exposes no Environment or Writable folders control, so the persisted root cannot be inspected, changed, or removed.
Expected behavior
The upgrade should either canonicalize persisted symlinked writable roots to their resolved paths, or preserve the existing task's ability to start and provide a user-visible repair path.
Actual behavior
The task fails before it can load AGENTS.md or run any work. Restarting does not help, and there is no in-app way to repair the stale root.
Requested fix
Please add migration/canonicalization for persisted writable roots and an in-app recovery path for unsupported stale roots.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing task startup through persisted writable-root loading and macOS Seatbelt sandbox preparation, using the reported symlinked legacy path as the reproduction case. Check where the existing task fails before AGENTS.md loads; done means upgrade migration or recovery lets the task start with a resolved writable root and provides an in-app repair path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust
- Domain
- desktop, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100