Group of 3 Use it now
Changing directory before any turn has run now fully re-derives session start state instead of just appending a notice
What
- The directory-move implementation behind
/cdand the headlessset_cwdcontrol request now takesfreshSession/confirmFreshoptions; when a session is fresh (no turns have run yet) and confirmed, changing directory fully re-derives start-of-session state — session_start hooks, memory, hook caches, and more — instead of just injecting a "directory changed" notice into context. - The
set_cwdtool's description was expanded to explain this: before any turn has run, the move re-anchors the whole session as if it had started in the new directory, with no move notice shown; after a turn has run, prior context is preserved and the move is appended as a notice instead. - The control-request handler for
set_cwdnow computes whether the session is fresh (no messages dequeued, no assistant message in history) and threads that through asfreshSession/confirmFresh. A newfresh_sessiontelemetry field is recorded on thetengu_cd_commandevent.
Why
Previously, moving directories early in a session could leave stale start-of-session state, such as hooks or memory loaded from the old directory. Now Claude Code recognizes when nothing has happened yet and fully re-initializes as if the session had started in the new directory.
Names in the bundle/cd
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
The gate `tengu_cd_command` has not been read for this release, so nothing can be said about whether this path is switched on for any…