fix(plugin): stop double-registering the Claude hooks file - #2560
Conversation
chore: rolling promotion dev -> main
chore: rolling promotion dev -> main
The Claude plugin manifest declared: "hooks": "./hooks/hooks.json" Claude Code already loads hooks/hooks.json automatically from the standard path, so naming it again in manifest.hooks registers the same file twice and the plugin fails to load its hooks: Failed to load hooks from .../automagik/genie/<version>/hooks/hooks.json: Duplicate hooks file detected: ./hooks/hooks.json resolves to already-loaded file ... The standard hooks/hooks.json is loaded automatically, so manifest.hooks should only reference additional hook files. Drop the redundant field. The file itself is unchanged and still shipped by build-binary.sh; only the duplicate manifest reference is removed. The Codex manifest keeps its "hooks" field on purpose: it points at ./hooks/codex-hooks.json, a non-standard filename that is not auto-loaded. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the release version, timestamp, and tarball base URL to 5.260712.1 across the dev, homolog, and stable environment configuration files. It also removes the hooks property from the Claude plugin configuration file. There are no review comments, and I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 097ac4222d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "version": "5.260712.1", | ||
| "released_at": "2026-07-12T02:43:05Z", | ||
| "tarball_base": "https://github.com/automagik-dev/genie/releases/download/v5.260712.1", |
There was a problem hiding this comment.
Publish a new release for the hook fix
This updates the stable channel to download v5.260712.1, but this same commit says the live v5.260712.1 install is the one with the duplicate Claude hooks entry, and the released_at value here (2026-07-12T02:43:05Z) predates this fix commit (2026-07-12 20:52 UTC). Since genie update reads .well-known/latest.json and then downloads the tarball from tarball_base, stable users will still receive the already-published broken tarball rather than the manifest change in this commit. Please bump/publish a new version containing the plugin manifest fix before advancing the channel pointers.
Useful? React with 👍 / 👎.
Merges dev (incl. #2560 duplicate-hooks fix, v5.260712.1 manifests) and resolves the F05 resurrection: the external scheduled metrics-updater pushed .genie/agents/metrics-updater/{runs.jsonl,state.json} and the README METRICS block directly to dev on 2026-07-12 (d0ecc29), turning dev CI red against the merged retirement gate. This merge re-deletes the state and strips the block; the gate test passes again. The external routine itself must be disabled or re-scoped — a repo commit cannot prevent the next push.
The Genie plugin fails to load its hooks in Claude Code. Reported on a live install (v5.260712.1):
Root cause
plugins/genie/.claude-plugin/plugin.jsondeclared:Claude Code auto-loads
hooks/hooks.jsonfrom the standard path. Naming it again inmanifest.hooksregisters the same file twice, so hook loading aborts for the whole plugin.Fix
Drop the redundant field. The hooks file is untouched and still bundled by
scripts/build-binary.sh; only the duplicate manifest reference is removed. No script regenerates this field (scripts/version.tset al. only rewriteversion), so the fix stays put across releases.The Codex manifest (
.codex-plugin/plugin.json) intentionally keeps its"hooks": "./hooks/codex-hooks.json"— that is a non-standard filename and is not auto-loaded, so it still needs the explicit reference.Testing
bun test— 1396 pass, 0 failtsc --noEmitclean,biome checkclean🤖 Generated with Claude Code