Skip to content

Dev - #2557

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

Dev#2557
namastex888 merged 13 commits into
mainfrom
dev

Conversation

@namastex888

Copy link
Copy Markdown
Contributor

No description provided.

namastex888 and others added 12 commits July 11, 2026 09:41
…lation, final aggregate

- F20 closed: final post-test read-only comparison, 36/36 skills + 14/14
  agent TOMLs byte-identical, zero sync markers
- F41 recorded fixed; F42/F43 added as documented-open HIGH follow-ups
  (.steal debris availability; uninstall retry physical identity)
- Merge simulation: merge-tree --write-tree origin/dev HEAD exit 0
  (tree 3997028) vs origin/dev 5101fd3; diff --check clean
- Final aggregate at d9b0afb: 1,382 pass / 1 skip / 0 fail across 63 files
- B4 supersession flipped to SUPERSEDED on F20 evidence
- Final-tree seven-lane replay, exact-final-SHA CI, and human approval
  remain open; F16-F18/F31 still block stable promotion
fix(release): PR #2545 ultra release-gate remediation follow-up
@coderabbitai

coderabbitai Bot commented Jul 12, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 250 files, which is 100 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0b56dd0f-7c8d-422e-8116-dcc69cae3882

📥 Commits

Reviewing files that changed from the base of the PR and between fb5f3a8 and 22aa27e.

⛔ Files ignored due to path filters (11)
  • CLAUDE.md is excluded by !*.md
  • README.md is excluded by !*.md
  • plugins/genie/scripts/council-stamp.cjs is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/dispatch-runtime.cjs is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/dispatch-runtime.test.ts is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/first-run-check.cjs is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/mcp-launcher.cjs is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/mcp-launcher.test.ts is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/session-context.cjs is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/smart-install.js is excluded by !plugins/genie/scripts/**
  • plugins/genie/scripts/src/session-context.ts is excluded by !plugins/genie/scripts/**
📒 Files selected for processing (250)
  • .claude-plugin/marketplace.json
  • .genie/INDEX.md
  • .genie/agents/metrics-updater/AGENT.md
  • .genie/agents/metrics-updater/runs.jsonl
  • .genie/agents/metrics-updater/state.json
  • .genie/wishes/agent-sync-hardening/WISH.md
  • .genie/wishes/hook-injection-hardening/WISH.md
  • .genie/wishes/plugin-resource-shipping/WISH.md
  • .genie/wishes/pr-2545-ultra-release-gate/HOOK-AUDIT.md
  • .genie/wishes/pr-2545-ultra-release-gate/REVIEW-DISPOSITION.md
  • .genie/wishes/pr-2545-ultra-release-gate/USER-ASSET-BASELINE.md
  • .genie/wishes/pr-2545-ultra-release-gate/WISH.md
  • .genie/wishes/stable-release-security-gate/WISH.md
  • .genie/wishes/v4-home-residue-doctor/WISH.md
  • .github/workflows/build-tarballs.yml
  • .github/workflows/ci.yml
  • .github/workflows/release-publish.yml
  • install.sh
  • package.json
  • plugins/genie/.claude-plugin/plugin.json
  • plugins/genie/.codex-plugin/plugin.json
  • plugins/genie/.mcp.json
  • plugins/genie/README.md
  • plugins/genie/agents/reviewer.md
  • plugins/genie/codex-agents/genie-reviewer.toml
  • plugins/genie/hooks/codex-hooks.json
  • plugins/genie/hooks/hooks.json
  • plugins/genie/package.json
  • plugins/genie/references/codex-integration-map.md
  • plugins/genie/references/dispatch-contract.md
  • plugins/genie/references/native-surfaces.md
  • plugins/genie/skills
  • plugins/genie/skills/README.md
  • plugins/genie/skills/architecture/SKILL.md
  • plugins/genie/skills/architecture/agents/openai.yaml
  • plugins/genie/skills/brainstorm/SKILL.md
  • plugins/genie/skills/brainstorm/agents/openai.yaml
  • plugins/genie/skills/brainstorm/references/design-review-evidence.mjs
  • plugins/genie/skills/brainstorm/references/design-template.md
  • plugins/genie/skills/brainstorm/references/lenses/deployer.md
  • plugins/genie/skills/brainstorm/references/lenses/measurer.md
  • plugins/genie/skills/brainstorm/references/lenses/operator.md
  • plugins/genie/skills/brainstorm/references/lenses/questioner.md
  • plugins/genie/skills/brainstorm/references/lenses/simplifier.md
  • plugins/genie/skills/brainstorm/references/lenses/tracer.md
  • plugins/genie/skills/code-quality/SKILL.md
  • plugins/genie/skills/code-quality/agents/openai.yaml
  • plugins/genie/skills/council/SKILL.md
  • plugins/genie/skills/council/agents/openai.yaml
  • plugins/genie/skills/council/references/native-surfaces.md
  • plugins/genie/skills/docs/SKILL.md
  • plugins/genie/skills/docs/agents/openai.yaml
  • plugins/genie/skills/dream/SKILL.md
  • plugins/genie/skills/dream/agents/openai.yaml
  • plugins/genie/skills/dx-docs/SKILL.md
  • plugins/genie/skills/dx-docs/agents/openai.yaml
  • plugins/genie/skills/fix/SKILL.md
  • plugins/genie/skills/fix/agents/openai.yaml
  • plugins/genie/skills/genie-hacks/SKILL.md
  • plugins/genie/skills/genie-hacks/agents/openai.yaml
  • plugins/genie/skills/genie-hacks/references/catalog.md
  • plugins/genie/skills/genie-hacks/references/contributing.md
  • plugins/genie/skills/genie/SKILL.md
  • plugins/genie/skills/genie/agents/openai.yaml
  • plugins/genie/skills/genie/reference/lifecycle.md
  • plugins/genie/skills/omni/SKILL.md
  • plugins/genie/skills/omni/agents/openai.yaml
  • plugins/genie/skills/perf/SKILL.md
  • plugins/genie/skills/perf/agents/openai.yaml
  • plugins/genie/skills/pm/SKILL.md
  • plugins/genie/skills/pm/agents/openai.yaml
  • plugins/genie/skills/pm/references/modes.md
  • plugins/genie/skills/qa/SKILL.md
  • plugins/genie/skills/qa/agents/openai.yaml
  • plugins/genie/skills/refine/SKILL.md
  • plugins/genie/skills/refine/agents/openai.yaml
  • plugins/genie/skills/refine/prompts/optimizer.md
  • plugins/genie/skills/repo-hygiene/SKILL.md
  • plugins/genie/skills/repo-hygiene/agents/openai.yaml
  • plugins/genie/skills/report/SKILL.md
  • plugins/genie/skills/report/agents/openai.yaml
  • plugins/genie/skills/report/references/issue-template.md
  • plugins/genie/skills/review/SKILL.md
  • plugins/genie/skills/review/agents/openai.yaml
  • plugins/genie/skills/review/references/lenses/questioner.md
  • plugins/genie/skills/supply-chain/SKILL.md
  • plugins/genie/skills/supply-chain/agents/openai.yaml
  • plugins/genie/skills/trace/SKILL.md
  • plugins/genie/skills/trace/agents/openai.yaml
  • plugins/genie/skills/wish/SKILL.md
  • plugins/genie/skills/wish/agents/openai.yaml
  • plugins/genie/skills/wish/references/design-review-evidence.mjs
  • plugins/genie/skills/wish/templates/wish-template.md
  • plugins/genie/skills/wizard/SKILL.md
  • plugins/genie/skills/wizard/agents/openai.yaml
  • plugins/genie/skills/work/SKILL.md
  • plugins/genie/skills/work/agents/openai.yaml
  • plugins/genie/skills/work/references/native-surfaces.md
  • plugins/genie/workflows/council.js
  • scripts/build-binary.sh
  • scripts/build.js
  • scripts/council-workflow-lint.ts
  • scripts/design-review-evidence.test.ts
  • scripts/fixtures/plugin-executables/implicit-any.cjs
  • scripts/fresh-install-smoke.test.ts
  • scripts/fresh-install-smoke.ts
  • scripts/hook-bundle-parity.test.ts
  • scripts/hook-bundle-parity.ts
  • scripts/hook-content-binding.test.ts
  • scripts/hook-content-binding.ts
  • scripts/json-top-level-string.js
  • scripts/plugin-executables-check.test.ts
  • scripts/plugin-executables-check.ts
  • scripts/reconcile-release-note.sh
  • scripts/reconcile-release-note.test.ts
  • scripts/release-docs.test.ts
  • scripts/release-payload-version.test.ts
  • scripts/release-payload-version.ts
  • scripts/skills-lint.test.ts
  • scripts/skills-lint.ts
  • scripts/sync-plugin-skills.test.ts
  • scripts/sync-plugin-skills.ts
  • scripts/version-format.test.ts
  • scripts/version.ts
  • scripts/wishes-lint.test.ts
  • scripts/wishes-lint.ts
  • skills/README.md
  • skills/architecture/SKILL.md
  • skills/architecture/agents/openai.yaml
  • skills/brainstorm/SKILL.md
  • skills/brainstorm/agents/openai.yaml
  • skills/brainstorm/references/design-review-evidence.mjs
  • skills/brainstorm/references/design-template.md
  • skills/brainstorm/references/lenses/deployer.md
  • skills/brainstorm/references/lenses/measurer.md
  • skills/brainstorm/references/lenses/operator.md
  • skills/brainstorm/references/lenses/questioner.md
  • skills/brainstorm/references/lenses/simplifier.md
  • skills/brainstorm/references/lenses/tracer.md
  • skills/code-quality/SKILL.md
  • skills/code-quality/agents/openai.yaml
  • skills/council/SKILL.md
  • skills/council/agents/openai.yaml
  • skills/council/references/native-surfaces.md
  • skills/docs/SKILL.md
  • skills/docs/agents/openai.yaml
  • skills/dream/SKILL.md
  • skills/dream/agents/openai.yaml
  • skills/dx-docs/SKILL.md
  • skills/dx-docs/agents/openai.yaml
  • skills/fix/SKILL.md
  • skills/fix/agents/openai.yaml
  • skills/genie-hacks/SKILL.md
  • skills/genie-hacks/agents/openai.yaml
  • skills/genie-hacks/references/catalog.md
  • skills/genie-hacks/references/contributing.md
  • skills/genie/SKILL.md
  • skills/genie/agents/openai.yaml
  • skills/genie/reference/lifecycle.md
  • skills/omni/SKILL.md
  • skills/omni/agents/openai.yaml
  • skills/perf/SKILL.md
  • skills/perf/agents/openai.yaml
  • skills/pm/SKILL.md
  • skills/pm/agents/openai.yaml
  • skills/pm/references/modes.md
  • skills/qa/SKILL.md
  • skills/qa/agents/openai.yaml
  • skills/refine/SKILL.md
  • skills/refine/agents/openai.yaml
  • skills/refine/prompts/optimizer.md
  • skills/repo-hygiene/SKILL.md
  • skills/repo-hygiene/agents/openai.yaml
  • skills/report/SKILL.md
  • skills/report/agents/openai.yaml
  • skills/report/references/issue-template.md
  • skills/review/SKILL.md
  • skills/review/agents/openai.yaml
  • skills/review/references/lenses/questioner.md
  • skills/supply-chain/SKILL.md
  • skills/supply-chain/agents/openai.yaml
  • skills/trace/SKILL.md
  • skills/trace/agents/openai.yaml
  • skills/wish/SKILL.md
  • skills/wish/agents/openai.yaml
  • skills/wish/references/design-review-evidence.mjs
  • skills/wish/templates/wish-template.md
  • skills/wizard/SKILL.md
  • skills/wizard/agents/openai.yaml
  • skills/work/SKILL.md
  • skills/work/agents/openai.yaml
  • skills/work/references/native-surfaces.md
  • src/genie-commands/__tests__/update.test.ts
  • src/genie-commands/auxiliary-trees.ts
  • src/genie-commands/doctor.test.ts
  • src/genie-commands/doctor.ts
  • src/genie-commands/install.test.ts
  • src/genie-commands/install.ts
  • src/genie-commands/setup.test.ts
  • src/genie-commands/setup.ts
  • src/genie-commands/uninstall.test.ts
  • src/genie-commands/uninstall.ts
  • src/genie-commands/update-integrations.ts
  • src/genie-commands/update.ts
  • src/genie.test.ts
  • src/genie.ts
  • src/hooks/__tests__/branch-guard.test.ts
  • src/hooks/__tests__/codex-manifest.test.ts
  • src/hooks/__tests__/dispatch-command.test.ts
  • src/hooks/__tests__/omni-approval.test.ts
  • src/hooks/__tests__/omni-dispatch.test.ts
  • src/hooks/codex-adapter.test.ts
  • src/hooks/codex-adapter.ts
  • src/hooks/dispatch-command.ts
  • src/hooks/handlers/__tests__/audit-context.test.ts
  • src/hooks/handlers/audit-context.ts
  • src/hooks/handlers/branch-guard.ts
  • src/hooks/handlers/omni-approval.ts
  • src/hooks/index.ts
  • src/lib/agent-sync.test.ts
  • src/lib/agent-sync.ts
  • src/lib/claude-settings.ts
  • src/lib/codex-config.test.ts
  • src/lib/codex-config.ts
  • src/lib/codex-project-mcp.test.ts
  • src/lib/codex-project-mcp.ts
  • src/lib/council-workflow-stamp.test.ts
  • src/lib/genie-config.ts
  • src/lib/genie-home.test.ts
  • src/lib/genie-home.ts
  • src/lib/omni-config.ts
  • src/lib/omni-runner.test.ts
  • src/lib/omni-runner.ts
  • src/lib/runtime-integrations.test.ts
  • src/lib/runtime-integrations.ts
  • src/lib/smart-install-hook.test.ts
  • src/lib/system-detect.test.ts
  • src/lib/system-detect.ts
  • src/lib/trusted-executable.ts
  • src/lib/v5/global-db.test.ts
  • src/lib/v5/global-db.ts
  • src/lib/v5/omni-queue.test.ts
  • src/lib/v5/omni-queue.ts
  • src/term-commands/init.test.ts
  • src/term-commands/init.ts
  • src/term-commands/launch.test.ts
  • src/term-commands/launch.ts
  • src/term-commands/omni.test.ts
  • src/term-commands/omni.ts
  • src/types/genie-config.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ 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.

@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: 57e7240377

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

await configureShortcuts(config, false);
await markSetupComplete();
await configureShortcuts(config, false, deps);
await withSetupLease(deps, () => markSetupComplete());

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Save shortcut config before returning

When a user runs genie setup --shortcuts and accepts installation (or the shortcuts are already installed), configureShortcuts only mutates the in-memory config.shortcuts.tmuxInstalled flag. This branch then calls markSetupComplete(), which reloads the existing config and writes only the setup-complete fields, and returns without saving the mutated config, so shortcuts.tmuxInstalled is never persisted for the section-specific setup path.

Useful? React with 👍 / 👎.

@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 significant hardening for the Genie agent-sync and Codex integration, including a new remediation ledger for tracking defects, a portable launcher for hook dispatch, and robust versioning/packaging verification. The review comments identified several actionable issues regarding UTF-8 character handling in stream processing, Windows path normalization, and portability of find commands in build scripts, all of which should be addressed to ensure cross-platform stability.

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 on lines +416 to +418
child.stdout.on('data', (/** @type {Buffer | string} */ chunk) => {
if (outputOverflow) return;
stdout += chunk.toString();

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

Accumulating stream chunks by calling chunk.toString() without setting an explicit encoding can lead to multi-byte UTF-8 characters being split across chunk boundaries, resulting in corrupted output (replacement characters ``). Setting child.stdout.setEncoding('utf8') ensures Node's internal `StringDecoder` correctly handles multi-byte characters at chunk boundaries.

  child.stdout.setEncoding('utf8');
  child.stdout.on('data', (chunk) => {
    if (outputOverflow) return;
    stdout += chunk;

Comment on lines +231 to +233
lstat: fsApi.lstat || lstatSync,
realpath: fsApi.realpath || realpathSync.native,
access: fsApi.access || accessSync,

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

On Windows, fs.realpathSync.native can return a path prefixed with \\?\ (e.g., \\?\C:\Users\...), whereas path.resolve does not include this prefix. This mismatch will cause the canonical path check to fail. Normalizing the \\?\ prefix on Windows ensures the path comparison is robust.

      const resolved = inspect.realpath(candidate);
      const expected = pathApi.resolve(candidate);
      const normResolved = platform === 'win32' ? resolved.replace(/^\\\\?\\/, '') : resolved;
      const samePath = platform === 'win32' ? normResolved.toLowerCase() === expected.toLowerCase() : resolved === expected;

Comment on lines +41 to +43
throw new Error(`canonical Genie MCP binary is not a regular file: ${expected}`);
}
const canonical = realpathSync(expected);

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

On Windows, fs.realpathSync can return a path prefixed with \\?\ (e.g., \\?\C:\Users\...), whereas path.normalize does not include this prefix. This mismatch will cause the canonical path check to fail and throw an error. Normalizing the \\?\ prefix on Windows ensures the path comparison is robust.

  const canonical = realpathSync(expected);
  const normCanonical = platform === 'win32' ? canonical.replace(/^\\\\?\\/, '') : canonical;
  const equivalentExpected = platform === 'darwin' && expected.startsWith('/') ? `/private\${expected}` : expected;
  if (normalize(normCanonical) !== expected && normalize(normCanonical) !== equivalentExpected) {

Comment thread scripts/build-binary.sh
Comment on lines +92 to +103
-iname 'spec_*.*' -o -iname '*_spec.*' -o \
-iname 'test.*' -o -iname 'spec.*' \
\) -delete
}

assert_no_release_tests() {
local root="$1"
local found
found="$(find "${root}" \( \
\( -type d \( \
-iname test -o -iname tests -o -iname __test__ -o -iname __tests__ -o \
-iname spec -o -iname specs \

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

BSD find (the default on macOS) does not support the -quit primary, which will cause this check to fail with a syntax error when building on macOS. Replacing -print -quit with -print | head -n 1 provides a portable way to find the first match on both Linux and macOS.

Suggested change
-iname 'spec_*.*' -o -iname '*_spec.*' -o \
-iname 'test.*' -o -iname 'spec.*' \
\) -delete
}
assert_no_release_tests() {
local root="$1"
local found
found="$(find "${root}" \( \
\( -type d \( \
-iname test -o -iname tests -o -iname __test__ -o -iname __tests__ -o \
-iname spec -o -iname specs \
found="$(find "${root}" \( \
\( -type d \( \
-iname test -o -iname tests -o -iname __test__ -o -iname __tests__ -o \
-iname spec -o -iname specs \
\) \) -o \
\( -type f \( \
-iname '*.test.*' -o -iname '*.spec.*' -o \
-iname 'test_*.*' -o -iname '*_test.*' -o \
-iname 'spec_*.*' -o -iname '*_spec.*' -o \
-iname 'test.*' -o -iname 'spec.*' \
\) \) \
\) -print | head -n 1)"

Comment thread scripts/build-binary.sh

assert_release_tree_equal() {
local source_root="$1"
local extracted_root="$2"

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

BSD find (the default on macOS) does not support the -quit primary, which will cause this check to fail with a syntax error when building on macOS. Since the output is piped to grep -q ., grep will exit immediately upon the first match, closing the pipe and causing find to terminate. Thus, -quit is redundant and can be safely removed for portability.

Suggested change
local extracted_root="$2"
if find "${source_root}" "${extracted_root}" -type l -print | grep -q .; then

Comment thread scripts/build-binary.sh
if find "${source_root}" "${extracted_root}" -type l -print -quit | grep -q .; then
echo "error: release staging/extracted trees must not contain symlinks" >&2
return 1
fi

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

BSD find (the default on macOS) does not support the -quit primary, which will cause this check to fail with a syntax error when building on macOS. Since the output is piped to grep -q ., grep will exit immediately upon the first match, closing the pipe and causing find to terminate. Thus, -quit is redundant and can be safely removed for portability.

Suggested change
fi
if find "${source_root}" "${extracted_root}" ! -type f ! -type d -print | grep -q .; then

@namastex888
namastex888 merged commit 1832f7f 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.

1 participant