- Restore the
SessionEndhook. Codex 0.146 dispatchesSessionEndfor root sessions, so the teardown removed in v1.3.0 as non-dispatched now runs again: it reaps background jobs whose process died and clears this session's current-session marker instead of leaving it to age out after seven days. Teardown stays inside Codex's few-second budget — it never kills or waits on live processes, so detached jobs keep running and theUserPromptSubmitsweeper still covers them. Codex trusts hooks one by one, so the newSessionEndhook arrives untrusted and stays inert until you approve it in the Codex hooks browser; the already-trustedSessionStart,Stop, andUserPromptSubmitentries are unaffected, because both the trust key index and the hash are per hook. - Stop requiring
[features].plugin_hooks. Upstream retired that flag (Stage::Removed), and native plugin hooks now ride on[features].hooksalone. Setup requires onlyhooks = trueand strips a leftoverplugin_hooksline from~/.codex/config.toml, the same way it already upgrades the legacycodex_hooksalias. - Correct the review skills' description of
request_user_input. Omitting[tools] experimental_request_user_inputleaves the tool enabled; only an explicitfalsehides it in an interactive thread. The conditional ask is unchanged — it still depends on the thread actually having a question tool.