Codex App Handoff silently skips non-ignored untracked skill files

Open 💬 0 comments Opened Jul 17, 2026 by cdomigan

What version of the Codex App are you using?

About-dialog version is not exposed to the agent. The bundled/runtime CLI reports codex-cli 0.144.5.

What subscription do you have?

Not exposed to the agent.

What platform is your computer?

Codex App connected to a Linux local/SSH execution host:

Linux 6.1.0-50-cloud-amd64 x86_64

What issue are you seeing?

Handoff from a Codex-managed worktree to Local transferred the application code changes but silently left behind non-ignored, untracked files under .agents/skills/.

The files remained in the associated worktree:

?? .agents/skills/analyze-clockwork-request/SKILL.md
?? .agents/skills/analyze-clockwork-request/agents/openai.yaml
?? .agents/skills/analyze-clockwork-request/scripts/fetch_clockwork.py

The same paths were absent from the Local checkout after Handoff. git check-ignore -v .agents/skills/analyze-clockwork-request/SKILL.md produced no output, confirming the files were not ignored. git ls-files also confirmed they had not been committed or staged.

Other tracked and untracked application changes from the task were present in Local, so the Handoff itself otherwise completed.

What steps can reproduce the bug?

  1. Start a Codex App task in a Codex-managed Git worktree.
  2. Have Codex create non-ignored, untracked files under .agents/skills/example-skill/, including nested directories.
  3. Also modify ordinary repository source files so the Handoff has a mixed change set.
  4. Use Hand off to move the task from Worktree to Local.
  5. Inspect both checkouts with git status --short --untracked-files=all.
  6. Observe that the source changes have moved to Local, while the .agents/skills/example-skill/ files remain only in the old worktree. No warning identifies the skipped files.

In the observed case, the Local checkout and associated worktree were at the same HEAD after Handoff, and the three skill files remained recoverable only from the old worktree.

What is the expected behavior?

Handoff should transfer all non-ignored repository changes, including newly created untracked files and nested dot-directories. If any files cannot be transferred, the Handoff UI should identify them explicitly rather than reporting success silently.

The user should not need to stage or commit Codex-created files before using Handoff. This matches the documentation's description that Handoff moves the chat and code; the documented exception is ignored files unless covered by .worktreeinclude.

Additional information

The files were not lost because the associated managed worktree still existed, but they were unavailable to skill discovery in Local. This made the completed feature appear to have disappeared after Handoff.

View original on GitHub ↗