Skip to content

Releases

v1.1.1

Choose a tag to compare

@Ruisi-Lu Ruisi-Lu released this 20 Oct 07:11
v1.1.1
0ff083b

Fixes

  • No duplicate plugin for organization installs. When the plugin is distributed by your organization (a claude.ai synced plugin, loaded as codex-review@synced), check now reports team plugin: provided by your organization and /codex-review:init no longer proposes adding the codex-cc-skill marketplace to .claude/settings.json, which would have loaded the plugin twice.

Full changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@Ruisi-Lu Ruisi-Lu released this 20 Oct 07:08
v1.1.0
7e4cc32

Features

  • The gate follows the repository. Once a repository ships .githooks/pre-commit, the plugin activates the gate in every teammate's clone at session start, by installing its own bundled copy as .git/hooks/pre-commit and keeping it current with the plugin. The shipped file is only a signal: neither it nor anything else in .githooks/ runs, so a branch or pull request you check out cannot introduce hooks. It is skipped (with an explanation) when codex is not on PATH, core.hooksPath points elsewhere, or .git/hooks/pre-commit belongs to something else; other hooks in .git/hooks keep running.
  • Claude can't commit around an inactive gate. A new PreToolUse guard denies Claude's git commit while a shipped gate is not active in the clone. If a hook manager (husky, lefthook, …) runs the gate itself, record that with git config codex-review.gateWired true.
  • Teammates get the plugin. /codex-review:init now also enables the plugin in the repository's .claude/settings.json (extraKnownMarketplaces + enabledPlugins), after approval. check reports whether that setting is present, disabled, or missing its marketplace entry.
  • Docs: a new Team enforcement section in the README covers each layer, one-line activation for people without the plugin (put it in your setup script), and server-side required checks for a hard guarantee.

Behavior changes

  • codex-review.skipInit no longer hides the notice or opts out in a repository that ships the gate.

Upgrading

hooks/pre-commit is unchanged, so repositories that already have the gate don't need to re-run /codex-review:init. To have teammates pick up the plugin automatically, run /codex-review:init once and commit .claude/settings.json.

Full changelog: v1.0.3...v1.1.0

v1.0.1

Choose a tag to compare

@Ruisi-Lu Ruisi-Lu released this 03 Oct 10:14
847ad1a

Fixes

  • Pre-commit gate is fail-closed end to end. A commit passes only when the staged diff was captured and codex exits 0 with a verdict starting ALLOW:. A failed or empty git diff --cached, a non-zero codex exit, or a timeout now blocks the commit, even if codex wrote an ALLOW: line.
  • Clearer block messages. When codex fails without a verdict, the gate reports the exit status (or the timeout) and shows the last 20 lines of codex's own output.
  • Ephemeral reviews. The gate runs codex exec --ephemeral, so staged diffs are not kept in codex's session history. Diff capture uses --no-ext-diff --no-color so user git config cannot alter what codex reviews.
  • Review skill prompt usage. codex exec review rejects a custom prompt combined with --base, --uncommitted or --commit; the skill now names the diff inside the prompt instead.

Requirements

  • codex-cli 0.119.0 or newer (verified against 0.160.0). /codex-review:init now stops when an older codex is installed.

Upgrading the gate in a repository

The hook is a copy in .githooks/pre-commit. Run /codex-review:init in each repository to replace it with this version.

Full changelog: v1.0.0...v1.0.1