Skip to content

chore: rolling promotion dev -> main - #2606

Merged
namastex888 merged 2 commits into
mainfrom
dev
Jul 21, 2026
Merged

namastex888 merged 2 commits into
mainfrom
dev

Conversation

@namastex888

@namastex888 namastex888 commented Jul 21, 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

  • Release
    • Updated the package and plugin versions to 5.260721.1.
    • Improved automated release publishing by ensuring required release credentials are passed through workflow stages.

namastex888 and others added 2 commits July 20, 2026 21:02
The manifests job reads RELEASE_MANIFESTS_TOKEN from the
release-manifests environment, but reusable workflows get an empty
secrets context unless the caller passes one. Both hops
(version.yml -> release.yml -> release-publish.yml) omitted
secrets: inherit, so the v5.260720.10 stable run's preflight correctly
reported the token unset despite the environment secret existing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@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 updates the version of the genie plugin and its associated packages from 5.260720.10 to 5.260721.1 across several configuration and package files, including package.json, plugin.json, and plugin.yaml. I have no feedback to provide as there are no review comments.

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.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Version metadata is updated from 5.260720.10 to 5.260721.1 across plugin and package manifests. Release workflow calls now inherit caller secrets so downstream manifest publication can access RELEASE_MANIFESTS_TOKEN.

Changes

Release metadata and workflow configuration

Layer / File(s) Summary
Synchronize release versions
.claude-plugin/marketplace.json, package.json, plugins/genie/*, plugins/hermes-genie/plugin.yaml
Plugin and package manifest versions are bumped to 5.260721.1.
Forward release secrets
.github/workflows/release.yml, .github/workflows/version.yml
Reusable workflow invocations now use secrets: inherit for downstream manifest publication.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the PR’s rolling promotion from dev to main and matches the version/workflow updates.
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.
✨ Finishing Touches
🧪 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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/version.yml:
- Around line 433-435: Replace broad secrets inheritance with an explicit
RELEASE_MANIFESTS_TOKEN mapping: declare RELEASE_MANIFESTS_TOKEN under
workflow_call and pass it explicitly at the call site in
.github/workflows/version.yml lines 433-435 and .github/workflows/release.yml
lines 186-190, preserving manifest access without forwarding unrelated secrets.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 654309e2-4ea7-432a-8c43-a37b5aa369e3

📥 Commits

Reviewing files that changed from the base of the PR and between 59cd7a9 and adba48c.

📒 Files selected for processing (8)
  • .claude-plugin/marketplace.json
  • .github/workflows/release.yml
  • .github/workflows/version.yml
  • package.json
  • plugins/genie/.claude-plugin/plugin.json
  • plugins/genie/.codex-plugin/plugin.json
  • plugins/genie/package.json
  • plugins/hermes-genie/plugin.yaml

Comment on lines +433 to +435
# Propagate secrets through the call chain so release-publish.yml's
# manifests job can read RELEASE_MANIFESTS_TOKEN (see release.yml publish).
secrets: inherit

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the relevant workflow files around the cited lines.
sed -n '400,460p' .github/workflows/version.yml
printf '\n--- release.yml ---\n'
sed -n '150,230p' .github/workflows/release.yml

# Find reusable workflow inputs/secrets declarations and where the manifest token is used.
printf '\n--- search secrets / workflow_call ---\n'
rg -n "workflow_call|secrets: inherit|RELEASE_MANIFESTS_TOKEN|release-manifests|release-publish" .github/workflows

Repository: automagik-dev/genie

Length of output: 6937


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- release.yml workflow_call ---'
sed -n '1,90p' .github/workflows/release.yml

printf '\n%s\n' '--- release-publish.yml workflow_call and manifest job ---'
sed -n '1,320p' .github/workflows/release-publish.yml

Repository: automagik-dev/genie

Length of output: 18907


🌐 Web query:

GitHub Actions reusable workflow environment secret precedence caller secrets secrets inherit job environment reusable workflow

💡 Result:

In GitHub Actions, secrets are not automatically passed to reusable workflows; they must be explicitly provided by the caller [1][2]. When a reusable workflow is called, you can pass specific secrets or use the secrets: inherit keyword to pass all secrets available to the calling workflow to the called workflow [1][3]. Precedence and Environment Secrets: 1. Secret Precedence: Generally, if secrets with the same name exist at different levels, the secret at the most specific level takes precedence [4]. The order (from lowest to highest precedence) is organization-level, repository-level, and environment-level [4]. 2. Reusable Workflow Environment Secrets: A common pitfall exists when attempting to use environment-scoped secrets within a reusable workflow. While a reusable workflow job must define the environment attribute to access environment-level secrets, this alone is often insufficient [5][6]. Empirical evidence indicates that the caller must also provide the secrets via explicit mapping or by using secrets: inherit for those secrets to resolve within the called workflow [5][6]. Without secrets: inherit (or explicit passing), environment-level secrets may resolve to an empty string instead of the expected value [5][6]. 3. Inheritance Scope: The secrets: inherit keyword passes all secrets the calling workflow has access to, including organization, repository, and environment secrets [5][7]. If a reusable workflow defines its own environment context, that local environment configuration can interact with the inherited secrets [3]. Note that if a secret is defined in both the calling workflow's environment and the reusable workflow's environment, the latter may take precedence depending on the specific configuration and resolution path [3]. Key takeaway: To ensure environment-scoped secrets are available in a reusable workflow, it is recommended to both define the environment in the called job and use secrets: inherit (or explicit passing) in the caller [5][6].

Citations:


🌐 Web query:

GitHub Actions reusable workflow on.workflow_call.secrets explicit mapping environment secret reusable workflow inherit required

💡 Result:

In GitHub Actions, you can pass secrets to a reusable workflow using either explicit mapping or the inherit keyword [1][2]. Explicit Mapping To use explicit mapping, you must first define the required secrets in the reusable workflow under the on.workflow_call.secrets key [3][2]. You can specify whether each secret is required [2]. Reusable workflow configuration: on: workflow_call: secrets: MY_SECRET: required: true Calling workflow configuration: jobs: call-workflow: uses: owner/repo/.github/workflows/reusable.yml@main secrets: MY_SECRET: ${{ secrets.MY_SECRET }} If a caller workflow attempts to pass a secret that is not defined in the reusable workflow's on.workflow_call.secrets block, or if a required secret is missing, it will result in an error [2]. Inherit Keyword Alternatively, the inherit keyword allows a calling workflow to implicitly pass all of its available secrets to the reusable workflow [1][4]. This is often used for convenience but carries security implications as it follows a permissive approach by passing every available secret to the called workflow [5][6]. Calling workflow configuration: jobs: call-workflow: uses: owner/repo/.github/workflows/reusable.yml@main secrets: inherit Key Considerations 1. Security and Principle of Least Privilege: Using secrets: inherit is generally discouraged in environments where strict security controls are required, as it may expose more secrets than necessary [5][6]. Explicit mapping is the recommended approach to limit the attack surface by ensuring only required secrets are shared [6]. 2. Nested Workflows: Secrets are only passed to directly called workflows [1]. If you have a workflow chain (A > B > C), workflow B must explicitly pass secrets to workflow C, or pass them using inherit, even if B inherited them from A [1][2]. 3. Automatic Secrets: GITHUB_TOKEN is automatically provided to reusable workflows by GitHub Actions and does not need to be explicitly passed or inherited [7][5].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find secret references in the release workflow chain.
rg -n "secrets\.[A-Z0-9_]+|secrets:\s*inherit|workflow_call:\s*$|secrets:\s*$" \
  .github/workflows/version.yml \
  .github/workflows/release.yml \
  .github/workflows/release-publish.yml

printf '\n--- declared workflow_call secrets blocks ---\n'
sed -n '1,120p' .github/workflows/version.yml | sed -n '/workflow_call:/,/permissions:/p'
printf '\n--- release.yml ---\n'
sed -n '1,120p' .github/workflows/release.yml | sed -n '/workflow_call:/,/permissions:/p'
printf '\n--- release-publish.yml ---\n'
sed -n '1,120p' .github/workflows/release-publish.yml | sed -n '/workflow_call:/,/permissions:/p'

Repository: automagik-dev/genie

Length of output: 2046


Replace secrets: inherit with an explicit RELEASE_MANIFESTS_TOKEN mapping.

.github/workflows/version.yml and .github/workflows/release.yml only need to forward the manifest token; inheriting all caller secrets widens the blast radius for no benefit. Declare RELEASE_MANIFESTS_TOKEN on workflow_call and pass it explicitly at both call sites.

📍 Affects 2 files
  • .github/workflows/version.yml#L433-L435 (this comment)
  • .github/workflows/release.yml#L186-L190
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/version.yml around lines 433 - 435, Replace broad secrets
inheritance with an explicit RELEASE_MANIFESTS_TOKEN mapping: declare
RELEASE_MANIFESTS_TOKEN under workflow_call and pass it explicitly at the call
site in .github/workflows/version.yml lines 433-435 and
.github/workflows/release.yml lines 186-190, preserving manifest access without
forwarding unrelated secrets.

Source: MCP tools

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