Repository navigation
v7.4.0
What's changed in v7.4.0
Highlights
On Codex, a run now closes what it spawned. A subagent started with spawn_agent used to
outlive its work and hold its worktree, so the host refused to archive it and every delegating run
left children behind. Codex projects now receive .specnaut/codex/session-lifecycle.md: each
spawned child is recorded, a finished one is closed with close_agent, and every run that spawned
children ends with a sweep that reports what stayed open.
Worktrees are archived only when nothing can be lost. The sweep archives a worktree through the
host, never with git worktree remove, and only when its commits are on a freshly fetched base
branch or kept under a local, never-pushed specnaut-kept/ branch, its status is clean, and its
ignored files were copied out to ~/.specnaut-kept/. A refusal is reported, never forced. The merge
phase runs this sweep on every exit, including --pr.
specnaut upgrade adds the file and the AGENTS.md pointer on its own; other harnesses are
unchanged.
Features
- Close what a run spawned, and archive only what is safe (#723)
Bug fixes
- Map the Codex session lifecycle to the path it ships to (#723)
Adoption guide
These prompts help your AI agent adopt the new features in an existing project. Copy them into your harness, or run @specnaut-guide review-upgrade to be walked through automatically.
#723 — Close what a run spawned, and archive only what is safe
On Codex, record every child you spawn as `spawned <agent-id> in <worktree realpath>`
and follow .specnaut/codex/session-lifecycle.md: close a finished recorded child with
close_agent once its handoff is kept, run the sweep at the end of any run that
spawned children (merge step 6 for a delivery), and archive a worktree only through
the host after its checks pass. Never close or archive anything outside your record,
and report whatever stayed open.
Internal / chores
1 internal change
- Codex closes what a run spawned, and archives only what is safe
Full changelog: v7.3.1...v7.4.0