Skip to content

chore: rolling promotion dev -> main - #2558

Merged
namastex888 merged 7 commits into
mainfrom
dev
Jul 12, 2026
Merged

namastex888 merged 7 commits into
mainfrom
dev

Conversation

@namastex888

@namastex888 namastex888 commented Jul 12, 2026 •

Copy link
Copy Markdown
Contributor

Rolling Promotion PR

Auto-maintained rolling promotion PR from dev to main.

Process:

  • This PR is automatically created and kept open
  • Human reviews and merges when ready
  • Label ready-to-merge added when all checks pass

IMPORTANT: Merge with "Create a merge commit" — NEVER squash.
Squash merging breaks history sync between dev and main,
causing the next rolling PR to show all commits again.

Human approval required for merge to production.

Summary by CodeRabbit

  • Bug Fixes
    • Improved plugin state synchronization so recent user changes are preserved during runtime refreshes.
    • Prevented stale refresh instructions from disabling plugins that are currently enabled.
    • Improved restoration of disabled Claude plugins, including when they’re already disabled.
    • Ensured refresh state is cleared after convergence.
  • Chores
    • Updated plugin/package versions to 5.260712.2, and adjusted the genie plugin manifest by removing the hooks entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NsWxejunK58EcPHpubGk2M
@coderabbitai

coderabbitai Bot commented Jul 12, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Runtime convergence now reconciles stale planned intent with live Codex and Claude plugin state, accepts already-disabled Claude plugins during restoration, and adds coverage for these cases. Genie release manifests are updated to version 5.260712.2, and the Claude manifest no longer declares hooks.

Changes

Runtime convergence

Layer / File(s) Summary
Live-state reconciliation
src/lib/runtime-integrations.ts
Planned refresh intent now adopts the installed plugin’s live enabled state before Codex and Claude convergence derive the desired state.
Disabled-state handling and coverage
src/lib/runtime-integrations.ts, src/lib/runtime-integrations.test.ts
Claude restoration accepts an already-disabled plugin, with tests covering disabled-state preservation and stale-intent deferral for Claude and Codex.

Manifest release updates

Layer / File(s) Summary
Version and manifest declarations
.claude-plugin/marketplace.json, package.json, plugins/genie/.claude-plugin/plugin.json, plugins/genie/.codex-plugin/plugin.json, plugins/genie/package.json
Genie package and plugin versions are bumped to 5.260712.2; the Claude plugin manifest also removes its hooks property.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant RefreshState
  participant RuntimeIntegrations
  participant PluginRuntime
  RefreshState->>RuntimeIntegrations: provide planned refresh intent
  RuntimeIntegrations->>PluginRuntime: query live plugin state
  PluginRuntime-->>RuntimeIntegrations: return enabled or disabled state
  RuntimeIntegrations->>PluginRuntime: apply reconciled convergence action
  RuntimeIntegrations->>RefreshState: clear refresh state file
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the rolling promotion from dev to main shown by the version bumps and runtime integration changes.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces automated metrics tracking by adding run logs and state files under .genie/agents/metrics-updater/, and displaying these metrics in the README.md. Feedback was provided regarding the README.md changes, pointing out that wrapping a Markdown table inside HTML <p> tags prevents proper rendering on GitHub, and a suggestion was made to fix the layout.

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.

Comment thread README.md Outdated
Comment on lines +15 to +24
<p align="center">

| Metric | Value |
|--------|-------|
| Releases (24h) | 5 |
| Avg merge time (7d) | 3.7h |
| SHIP rate (7d) | 100% |

<sub>Last updated: 2026-07-12</sub>
</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Markdown tables wrapped inside HTML block tags like <p> or <div> are not parsed or rendered correctly by GitHub Flavored Markdown (GFM). The table will render as plain text instead of a structured table. To fix this, either use standard HTML table tags (<table>, <tr>, <td>, etc.) inside the <p> tag, or remove the <p align="center"> wrapper entirely so the Markdown table renders correctly.

Suggested change
<p align="center">
| Metric | Value |
|--------|-------|
| Releases (24h) | 5 |
| Avg merge time (7d) | 3.7h |
| SHIP rate (7d) | 100% |
<sub>Last updated: 2026-07-12</sub>
</p>
| Metric | Value |
|--------|-------|
| Releases (24h) | 5 |
| Avg merge time (7d) | 3.7h |
| SHIP rate (7d) | 100% |
<p align="center"><sub>Last updated: 2026-07-12</sub></p>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d0ecc29642

ℹ️ 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".

Comment thread README.md Outdated
<a href="https://discord.gg/xcW8c7fF3R"><img alt="discord" src="https://img.shields.io/discord/1095114867012292758?style=flat-square&color=00D9FF&label=discord" /></a>
</p>

<!-- METRICS:START -->

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove retired metrics artifacts from the promotion

This reintroduces the metrics block that the release-docs contract explicitly forbids: scripts/release-docs.test.ts:177-181 asserts README must not contain <!-- METRICS:START --> and that .genie/agents/metrics-updater/{runs.jsonl,state.json} must be absent. With this commit, bun test scripts/release-docs.test.ts fails on that assertion, so the full bun run check gate is broken until these generated metrics artifacts are removed or the contract is intentionally changed.

Useful? React with 👍 / 👎.

namastex888 and others added 6 commits July 12, 2026 17:51
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>
…te-hooks

fix(plugin): stop double-registering the Claude hooks file
…ale refresh intent

The claude disabled-state restore shelled 'plugin disable' with
allowAlready=false, so an already-disabled plugin (the normal case after
'plugin update') turned the whole integration refresh into FAILED, and
the failure kept the refresh-intent file alive so every later update
failed the same way.

A leftover planned-phase intent also outranked live plugin state: a user
who manually re-enabled the plugin had it silently re-disabled by the
next update. Planned phase means no destructive command is in flight, so
live state is authoritative; later phases keep trusting the file for
crash recovery.

Reproduced live on v5.260712.1 (stable).
A scheduled cloud session re-added the README metrics block and
.genie/agents/metrics-updater state after their retirement, breaking
the release-docs guard test and holding dev CI red.
…e-idempotent

fix(update): tolerate already-disabled claude plugin and reconcile stale refresh intent
@namastex888 namastex888 reopened this Jul 12, 2026
@namastex888
namastex888 merged commit 0d0e3d3 into main Jul 12, 2026
29 checks 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.

2 participants