Fix filesystem-root task follow-ups with an opt-in feature - #1453
Merged
Conversation
ilysenko
approved these changes
Sep 9, 2026
ilysenko
left a comment
Owner
There was a problem hiding this comment.
Reviewed the focused opt-in feature and regression coverage. Verified the guard, rootless predicate, and followUp call path in the current 26.903.61454 bundle; required CI is green. No merge blockers found.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
An existing local task rooted at
/can accept its initial prompt but rejects follow-ups with Unable to send message — Select a project to continue. The current renderer treats["/"]as the missing-workspace placeholder even for an existing local follow-up.Add the disabled-by-default
filesystem-root-follow-upsfeature. It recognizes the complete current submission guard and permits/only when both the composer mode and follow-up type are local. New-task placeholders, empty roots, projectless policy, cloud/worktree behavior, and other submission checks are preserved. Task records and filesystem permissions are not changed. This does not reattach a detached task to its former project.Related upstream reports: openai/codex#43845 and openai/codex#36548. This is an opt-in downstream workaround; it does not close those upstream issues.
The matcher captures minified identifiers instead of pinning bundle hashes or function names, is idempotent, and leaves ambiguous, drifted, or partially patched guards untouched. Existing enabled-feature enforcement rejects a candidate on a missed match. English and Chinese feature listings and an adjacent README document activation and removal.
Scope: one optional ASAR feature for the current signed stable Linux package,
26.903.61454, onamd64andarm64. No launcher, package-format, updater, dependency, or default-feature changes.Validation
Adjacent regression tests: 18 passed, including reproduction of the original root blocker, surrounding submission cases, renamed aliases, duplicate/partial guards, idempotence, disabled behavior, and patch-runner enforcement.
Patch/descriptor/feature suite: 898 passed using a headless environment:
env -u CODEX_OZONE_PLATFORM -u WAYLAND_DISPLAY -u DISPLAY -u XDG_SESSION_TYPE \ node --test scripts/patch-linux-window-ui.test.js scripts/patches/descriptor.test.js \ scripts/lib/linux-features.test.js linux-features/*/test.jsClearing those inherited desktop variables avoids an existing MCP-reaper test assuming no Ozone flag; the test itself is unchanged.
Verified signed
InRelease, indexed package hashes, and both official26.903.61454packages with the repository's resolver. Raninstall.shinto isolated output directories with only this feature enabled on each architecture; both candidates passed enforcement and built successfully.Compared all 9,023 logical ASAR file contents per architecture: only the primary webview bundle contents changed.
ChatGPT,codex,rg, and the code-mode host remained byte-identical. The final matcher produces exactly the verified built bundle on both architectures.node --checkfor the new JavaScript files, new documentation links, andgit diff --checkpassed.Manual evidence: an equivalent local workaround restored actual follow-up submission on CachyOS/X11 with Nix and package
26.901.51231, confirmed by the affected user. The latest-package checks above validate both builds and their bundled guard; GUI submission on26.903.61454and an ARM GUI session were not exercised.GitHub CI is pending. The final diff was reviewed; a separately configured maximum-reasoning-effort review has not been run.
Checklist