Skip to content

fix(marketplace-auto-review): multi-line diff parsing + glibc Claude binary pin#1641

Merged
coleam00 merged 1 commit into
devfrom
fix/parse-entry-multiline-and-claude-binary
May 11, 2026
Merged

fix(marketplace-auto-review): multi-line diff parsing + glibc Claude binary pin#1641
coleam00 merged 1 commit into
devfrom
fix/parse-entry-multiline-and-claude-binary

Conversation

@coleam00

@coleam00 coleam00 commented May 11, 2026

Copy link
Copy Markdown
Owner

Summary

Two bugs surfaced when the marketplace-pr-review-and-merge workflow ran against PR #1639:

  1. parse-entry regex couldn't match multi-line values. Prettier wraps long sourceUrl values to a new line. Each line in the diff carries a '+' prefix; \s* matches whitespace across newlines but cannot skip the '+'. Fix: strip the '+' prefix from added lines before regex matching.

  2. Claude binary musl/glibc mismatch on Ubuntu runners. Bun installs both glibc and musl optional-dep variants; the Claude Agent SDK resolver picks musl first, which fails on glibc Ubuntu. Fix: mirror PR fix(docker): resolve Claude binary to glibc variant on Debian image #1521's docker-entrypoint approach — locate the glibc binary under node_modules and export CLAUDE_BIN_PATH before invoking the workflow.

Verification

End-to-end test is re-running the auto-review against PR #1639 once this lands on dev.

Test plan

Summary by CodeRabbit

  • Chores
    • Refined marketplace entry parsing logic in automated workflows to improve handling of multi-line values
    • Enhanced CI/CD pipeline with binary pinning support for platform-specific binary compatibility, including CPU architecture detection and fallback diagnostics

Review Change Stack

…libc Claude binary

Two bugs surfaced when the workflow first ran against a real submission PR:

1. parse-entry regex assumed single-line 'sourceUrl: <value>'. Prettier wraps long values to a new line, and each line in the diff carries a leading '+' that our regex's \s* cannot skip. Strip the '+' prefix from added lines before regex matching.

2. Claude Agent SDK loaded the linux-x64-musl native variant on glibc Ubuntu runners and failed at the missing binary. Mirror the docker-entrypoint fix (PR #1521): after install, locate the glibc binary under node_modules and export CLAUDE_BIN_PATH so the SDK resolver picks it instead of musl.
@coleam00 coleam00 merged commit bcb6f80 into dev May 11, 2026
1 check was pending
@coleam00 coleam00 deleted the fix/parse-entry-multiline-and-claude-binary branch May 11, 2026 15:40
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b4c39f30-4894-4315-bec7-495803dceabb

📥 Commits

Reviewing files that changed from the base of the PR and between 78ec70d and 3dd7b9d.

📒 Files selected for processing (2)
  • .archon/workflows/maintainer/marketplace-pr-review-and-merge.yaml
  • .github/workflows/marketplace-auto-review.yml

📝 Walkthrough

Walkthrough

This PR refactors workflow configuration in two independent marketplace automation workflows: the marketplace PR review workflow improves diff parsing logic for extracting added entries, and the marketplace auto-review workflow adds CPU architecture detection to pin the Claude CLI binary to the glibc variant.

Changes

Marketplace PR Review Workflow Parsing

Layer / File(s) Summary
Added Lines Parsing Refactor
.archon/workflows/maintainer/marketplace-pr-review-and-merge.yaml
The parse-entry node's addedLines computation is refactored to use a stepwise split → filter → map → join pipeline that removes the diff prefix while excluding the +++ header, with comments clarifying multi-line value handling across Prettier-wrapped strings.

Marketplace Auto-Review Workflow Binary Configuration

Layer / File(s) Summary
Claude Binary Architecture Detection
.github/workflows/marketplace-auto-review.yml
A new step after bun install detects the runner's CPU architecture, locates the glibc-specific Claude CLI binary in node_modules for the detected platform, exports its absolute path as CLAUDE_BIN_PATH to the environment, and fails with diagnostic output if the expected binary is not found.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • coleam00/Archon#1521: Implements the same glibc-specific Claude binary pinning in the Docker entrypoint; this PR applies the same pattern to GitHub Actions workflows.
  • coleam00/Archon#1481: Modifies the Claude binary resolver to honor CLAUDE_BIN_PATH in dev mode; this PR's workflow change provides the environment variable that resolver depends on.

Poem

🐰 Two workflows dance in binary light,
One parses diffs with care,
The other finds Claude's rightful path,
Each glibc-blessed and fair! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/parse-entry-multiline-and-claude-binary

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 and usage tips.

@Wirasm Wirasm mentioned this pull request May 12, 2026
cropse pushed a commit to cropse/Archon that referenced this pull request May 19, 2026
…libc Claude binary (coleam00#1641)

Two bugs surfaced when the workflow first ran against a real submission PR:

1. parse-entry regex assumed single-line 'sourceUrl: <value>'. Prettier wraps long values to a new line, and each line in the diff carries a leading '+' that our regex's \s* cannot skip. Strip the '+' prefix from added lines before regex matching.

2. Claude Agent SDK loaded the linux-x64-musl native variant on glibc Ubuntu runners and failed at the missing binary. Mirror the docker-entrypoint fix (PR coleam00#1521): after install, locate the glibc binary under node_modules and export CLAUDE_BIN_PATH so the SDK resolver picks it instead of musl.
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