Skip to content

release: 0.28.2 — Codex loads ProjectStore's hooks - #26

Merged
Evgenii-Konev merged 1 commit into
mainfrom
release/0.28.2
Oct 4, 2026
Merged

Evgenii-Konev merged 1 commit into
mainfrom
release/0.28.2

Conversation

@Evgenii-Konev

Copy link
Copy Markdown
Member

The 0.28.2 release: Codex now loads ProjectStore's hooks.

The maintainer's first live Codex session on 0.28.1 showed no ProjectStore hook in /hooks. The cause, read from Codex's source:

0.28.1 shipped exactly that root manifest. 0.28.2 ships .codex-plugin/plugin.json alone, with no hooks key, so Codex falls back to hooks/hooks.json. The record is the Finding of 2026-10-04 in The Codex shell's plugin root: .codex-plugin, the rendered surfaces, and the first Codex install (PS-HARNESS). It passed two critic passes, and the code passed a reviewer pass.

Merging this is the git marketplace's release for Claude Code users, with no code change for them. After the merge, v0.28.1's successor v0.28.2 is tagged on main, and CI publishes all three packages under latest.

Checks

  • npm run release:check: 541 of 541, both inside a Claude Code session and with its markers stripped. node scripts/version-guard.mjs --tag v0.28.2 reports ok.
  • Codex's own app server, asked with hooks/list on isolated installs (codex-cli 0.160.0), counts our hook commands:
    • 0.28.1: 0;
    • 0.28.2 fresh: 6;
    • 0.28.2 upgraded from 0.28.1 installed from the registry: 6.
  • The isolated npx smoke on 0.160.0:
    • plan writes nothing;
    • install leaves the plugin installed and enabled;
    • the cache holds one version and no checkout path;
    • every rendered hook exits 0.
  • Mutation checks: the guard's refusal and the no-root-manifest assertions each fail when the fix is removed.

Codex stays experimental (verified: null).

Maintainer: [email protected]

The Codex shell ships .codex-plugin/plugin.json alone. Codex picks a
root Agent Plugins plugin.json first, and since openai/codex#37027
(merged 2026-08-05; 0.153.4 and 0.160.0 alike) it loads no hooks from
that format. So 0.28.1, like every checkout build since rc.3, reached
Codex with no hook loaded. With no hooks key, a legacy manifest falls
back to hooks/hooks.json, which is where ours is.

- packaging/shells.mjs: renders one manifest; the files list and the
  --dev version site follow
- scripts/version-guard.mjs: the Codex shell has one version site, and
  a root plugin.json in it is refused, with the reason
- tests: the shell and its dev build carry no root manifest, and the
  guard's refusal is pinned; the registration fixtures take the shipped
  shape
- harnesses/codex.json and docs/harnesses.md say how the hooks load
  and why there is no root manifest; README.md and the shell's README
  name the one manifest
- the version at every guard site

Codex's app-server hooks/list reports 0 ProjectStore hooks for an
installed 0.28.1. It reports 6 for 0.28.2, both freshly installed and
upgraded from 0.28.1. Live on the maintainer's Codex 0.160.0, with the
root manifest renamed away in the installed cache, /hooks listed all
six. Our SessionStart and PreCompact ran, a recorder saw PreToolUse,
PostToolUse and Stop fire, and $projectstore-status answered from the
vault.

Maintainer: [email protected]
@Evgenii-Konev
Evgenii-Konev merged commit 4fbd4c3 into main Oct 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant