v6.1.1 (2026-07-02)
Codex
- Codex no longer re-registers the Claude SessionStart hook. v6.1.0 removed the Codex hook config and its manifest
hookspointer, meaning to stop Codex from installing a SessionStart hook — but with nohooksfield, Codex fell back to auto-discoveringhooks/hooks.json, the Claude Code SessionStart hook that the marketplace ships from the repo root, and re-registered it along with its install-time trust prompt. The Codex manifest now declares an explicit empty hooks object (hooks: {}), which Codex reads as "no hooks" instead of reaching the auto-discovery fallback. An absent field,[], and an empty inline list all collapse back to the fallback, so the value has to be exactly{}. - Removed orphaned Codex session-start dead code.
hooks/session-start-codexhad no caller once the Codex hook config was deleted, so it and its redundant test cases are gone. The worked shell-hook example indocs/porting-to-a-new-harness.mdmoves from Codex — now native skill discovery with no session-start hook — to Cursor, a live shell-hook harness, and the stalehooks-codex.jsonpointer indocs/windows/polyglot-hooks.mdis corrected. The Codex plugin category is also fixed to "Developer Tools".
Packaging
- New
package-codex-plugin.shfor building the Codex portal package. A maintainer script produces a deterministic Codex "portal" archive —.zipby default,tar.gzon request — that normalizes entry timestamps, preserves executable modes, verifies every packaged skill ships its OpenAI metadata, includes the app and composer icons, and refuses to run against a dirty worktree. The packaged manifest keeps the sourcehooks: {}object so a portal-installed plugin avoids the same SessionStart auto-discovery, and the script can rebuild a byte-identical archive from a saved metadata source. Covered by a new test suite.