Skip to content

Fix configurable visual recap runner shell#2097

Merged
steve8708 merged 2 commits into
BuilderIO:mainfrom
CheckPickerUpper:feat/self-hosted-visual-recap
Jul 20, 2026
Merged

Fix configurable visual recap runner shell#2097
steve8708 merged 2 commits into
BuilderIO:mainfrom
CheckPickerUpper:feat/self-hosted-visual-recap

Conversation

@CheckPickerUpper

@CheckPickerUpper CheckPickerUpper commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #2038 and #2046.

What changed

  • run the configurable recap jobs with an explicit Bash shell
  • keep the core compatibility bundle and extracted recap CLI bundle byte-identical to the canonical workflow
  • cover the copied, reusable, and extracted-package workflows with regression assertions
  • add patch changesets for @agent-native/core and @agent-native/recap-cli

Why

The runner configuration accepts GitHub-hosted Windows and macOS labels as well as self-hosted label arrays, but the recap steps use Bash syntax throughout. Without an explicit shell, a valid Windows runner configuration reaches the job and is interpreted by PowerShell. Pinning shell: bash at the job level makes the workflow contract match the configurations setup and doctor already accept.

Verification

  • pnpm --filter @agent-native/recap-cli exec vitest --run src/pr-visual-recap-workflow.spec.ts (2 tests)
  • pnpm --filter @agent-native/core exec vitest --run src/cli/recap.spec.ts --maxWorkers=25% (199 tests)
  • pnpm --filter @agent-native/recap-cli typecheck
  • pnpm --filter @agent-native/core typecheck
  • pnpm guards (23 checks)
  • pnpm exec oxfmt --check ...
  • pnpm changeset status
  • actionlint on both configurable workflows
  • git diff --check

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Visual recap — skipped

The visual recap job did not run for this pull request. This is informational only and does not block the PR.

Recap skipped for cbd7956: external fork PR requires a maintainer to apply the recap label to the current head SHA.

@CheckPickerUpper
CheckPickerUpper marked this pull request as ready for review July 13, 2026 17:43
builder-io-integration[bot]

This comment was marked as outdated.

@steve8708

Copy link
Copy Markdown
Contributor

thanks @CheckPickerUpper! just need a merge conflict resolution then this is good to go

@CheckPickerUpper
CheckPickerUpper force-pushed the feat/self-hosted-visual-recap branch from c47b454 to fa22260 Compare July 14, 2026 19:45
builder-io-integration[bot]

This comment was marked as outdated.

@CheckPickerUpper
CheckPickerUpper force-pushed the feat/self-hosted-visual-recap branch from fa22260 to ce7e529 Compare July 14, 2026 20:29
builder-io-integration[bot]

This comment was marked as outdated.

@CheckPickerUpper

Copy link
Copy Markdown
Contributor Author

Resolved the conflict against current main, and all checks are green now. Thanks!

@steve8708

Copy link
Copy Markdown
Contributor

thanks @CheckPickerUpper - apologies i was out this week, we've got one last merge conflict then good to go

@CheckPickerUpper

Copy link
Copy Markdown
Contributor Author

No worries I'll fix it tomorrow, thanks 👍🏿

@CheckPickerUpper
CheckPickerUpper force-pushed the feat/self-hosted-visual-recap branch from ce7e529 to 0f3c091 Compare July 20, 2026 18:09
builder-io-integration[bot]

This comment was marked as outdated.

@CheckPickerUpper

Copy link
Copy Markdown
Contributor Author

Resolved the merge conflict against current main and all checks are green on the new head 0f3c091e. Thanks!

@steve8708

Copy link
Copy Markdown
Contributor

great, thanks @CheckPickerUpper!!

@steve8708
steve8708 merged commit fb32d85 into BuilderIO:main Jul 20, 2026
27 of 29 checks passed

@builder-io-integration builder-io-integration 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.

Builder reviewed your changes and found 2 potential issues 🔴

Review Details

Incremental Code Review Summary

The latest merged PR head is not internally consistent. The canonical workflow files contain the new defaults.run.shell: bash block, but the bundled workflow artifacts do not match the canonical source. The newly added regression tests fail, so the published installer artifacts can still omit the primary fix on configurable Windows/macOS/self-hosted runners.

Key Findings

  • 🔴 HIGH — The @agent-native/recap-cli bundle fails its new Bash and byte-identity assertions, leaving the published installer artifact without the primary shell fix.
  • 🟡 MEDIUM@agent-native/core's copied workflow bundle is stale relative to the canonical workflow, causing the core installer artifact and canonical workflow to diverge.

Targeted recap-cli and core regression tests both failed with byte-identity/shell assertion mismatches. This is a standard-risk package/infrastructure change, but the high-severity artifact regression should be corrected before relying on the merged release changesets.

🧪 Browser testing: Skipped — this PR affects workflows and package artifacts only; it has no user-facing browser impact.


describe("the recap installer workflow", () => {
it("keeps Bash semantics on configurable runners", () => {
expect(PR_VISUAL_RECAP_WORKFLOW_YML).toContain(

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.

🔴 Recap CLI bundle is missing the Bash shell fix

The new regression assertion fails because the bundled installer string does not contain the canonical defaults.run.shell: bash block. Users installing through @agent-native/recap-cli can still execute Bash-syntax steps under PowerShell on Windows or another default shell on configurable runners; regenerate the bundle from the canonical workflow.

Fix in Builder

/** Compatibility re-export for the workflow bundled by the recap CLI package. */
export { PR_VISUAL_RECAP_WORKFLOW_YML } from "@agent-native/recap-cli";
/** Canonical PR Visual Recap workflow bundled by the CLI installer. */
export const PR_VISUAL_RECAP_WORKFLOW_YML =

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.

🟡 Core bundled workflow is stale

This copied workflow string is not byte-identical to the canonical .github/workflows/pr-visual-recap.yml; the core regression test fails on the new shell assertion and byte-identity check. Regenerate the bundled artifact from the canonical workflow so core installers receive the same current workflow.

Fix in Builder

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