Skip to content

fix(packaging): complete SDK and Homebrew release checks - #39

Merged
ndizazzo merged 4 commits into
mainfrom
codex/release-079-qualification-record
Nov 1, 2026
Merged

ndizazzo merged 4 commits into
mainfrom
codex/release-079-qualification-record

Conversation

@ndizazzo

@ndizazzo ndizazzo commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Release validation now installs the assembled Node SDK tarball on every selected native platform, including macOS ARM64, Linux ARM64/x64, and Windows x64. It requires a successful client start, status check, and bounded shutdown before npm publication. Previously, only Linux x64 exercised that lifecycle; a filtered run for another target could succeed without starting the SDK.

The Homebrew validation job now explicitly trusts its generated formula before audit and installation. The real preview rehearsal exposed Homebrew 7 rejecting that formula as untrusted. Trust applies only to the generated formula, preserving the checks for other tap contents.

The Homebrew test compares the installed host with its product-manifest digest before execution. If SIGINT shutdown times out, forced cleanup now bounds both TERM and KILL waits. A real child-process regression verifies cleanup when TERM is ignored.

One npm assembly produces the exact tarball consumed by each native runner and publication. The smoke rejects a mismatched runner target before loading the addon. Readiness distinguishes archive verification, assembly, and the native consumer matrix, and rejects failed, cancelled, or skipped required consumers.

The release checklist and audit record include the immutable preview inputs and results. All 11 native packages and 11 final images passed that rehearsal; Homebrew trust and the older preview's missing Node.fromConfig caused failed readiness. The actual 0.79.0 RC and stable distribution gates remain open in #37.

Validation:

  • Full local suite: 208 passed, five expected local skips; used Bash 5 for the existing Bash-dependent fixtures.
  • Matrix line, branch, and function coverage: 100%.
  • actionlint, Node and Ruby syntax, Homebrew formula style, and git diff --check passed.
  • SDK subprocess fixtures allow five seconds for startup and enforce ten-second outer bounds. Lifecycle and cleanup assertions remain unchanged.
  • Isolated Homebrew 7 trust record contains only the generated formula.
  • Independent source review and CodeRabbit's full review of c27470e found no actionable issues. The two reviewed functions now have concise documentation for the docstring advisory.
  • Hosted Precheck passed at 9e2f02c. CodeRabbit rate-limited the documentation-only follow-up; its completed full review covers all functional changes at c27470e.
  • Homebrew trust rehearsal passed audit, installation, runtime checks, and terminal readiness with all publication disabled.
  • The final installed-host integrity rehearsal and current-artifact four-platform SDK validation remain pending.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 48 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e52f7568-3a53-4c7c-8af9-3e4fef807978
Commits

Reviewing files that changed from the base of the PR and between c27470e and 9e2f02c.

Files selected for processing: 4
  • TODO.md
  • docs/release-079-compatibility.md
  • scripts/node-sdk-runtime-smoke.cjs
  • tests/node-sdk-runtime-smoke.test.ts

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: bdbef81f-50db-4f6a-9df7-fbff74d0181f
Commits

Reviewing files that changed from the base of the PR and between 294a0ae and c27470e.

Files selected for processing: 12
  • .github/workflows/images-release.yml
  • README.md
  • TODO.md
  • docs/packaging-readiness-scorecard.md
  • docs/publishing.md
  • docs/release-079-compatibility.md
  • docs/release-checklist.md
  • packaging/homebrew/Formula/mesh-llm.rb.template
  • scripts/node-sdk-runtime-smoke.cjs
  • tests/homebrew-release.test.ts
  • tests/node-sdk-runtime-smoke.test.ts
  • tests/release-workflow.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The release workflow separates npm package assembly from native-runner preflight. It gates npm publication and readiness on required results. Homebrew validation trusts the generated formula and checks the installed host digest, with bounded process cleanup.

Changes: npm SDK release validation

Layer / File(s) Summary
Runtime smoke target checks
scripts/node-sdk-runtime-smoke.cjs, tests/node-sdk-runtime-smoke.test.ts
The smoke test checks that the requested target matches the current Node.js platform and architecture. Tests use native targets and shared process timeouts.
Tarball assembly and native preflight
.github/workflows/images-release.yml, README.md, docs/packaging-readiness-scorecard.md, docs/publishing.md, docs/release-checklist.md, tests/release-workflow.test.ts, tests/node-sdk-runtime-smoke.test.ts
The package job assembles one tarball. A matrix of native runners installs that artifact and runs the smoke test before publication.
Readiness results and release contract
.github/workflows/images-release.yml, TODO.md, docs/release-checklist.md, docs/release-079-compatibility.md, tests/release-workflow.test.ts
Readiness records npm package and preflight results and requires enabled npm checks to succeed. The release contract and tests cover these requirements.

Homebrew formula validation

Layer / File(s) Summary
Formula trust, integrity, and process cleanup
.github/workflows/images-release.yml, packaging/homebrew/Formula/mesh-llm.rb.template, tests/homebrew-release.test.ts, docs/release-079-compatibility.md
The workflow trusts the generated formula before audit. The formula test verifies the installed host digest and bounds TERM/KILL cleanup after a shutdown timeout.

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

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant Package as node-sdk-package
  participant Runners as Native preflight runners
  participant Readiness as Release readiness
  participant Publish as npm publication
  Package->>Runners: Upload one assembled tarball
  Runners->>Runners: Install tarball and run target-specific smoke test
  Runners->>Readiness: Record package and preflight results
  Runners->>Publish: Successful preflight results gate publication
Loading

Possibly related issues

  • Mesh-LLM/mesh-packaging#37 — This PR implements portions of the issue’s packaging acceptance and readiness requirements for npm and Homebrew validation.

Possibly related PRs

  • Mesh-LLM/mesh-packaging#38 — Both PRs update the Node SDK release path and runtime smoke flow; this PR relies on the Node.fromConfig lifecycle contract introduced there.

Suggested reviewers: i386

Merge Risk: Minimal · previous review c2747

No confirmed merge-blocking issue remains. Live native-runner and Homebrew validation are still pending.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title is conventional-commit formatted and names the two main areas changed: SDK release checks and Homebrew release checks. The changeset covers both. The npm preflight job, the assembled-tarball…
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.
Full details: Title check

Explanation

The title is conventional-commit formatted and names the two main areas changed: SDK release checks and Homebrew release checks. The changeset covers both. The npm preflight job, the assembled-tarball install and smoke tests, the readiness gating, and the Homebrew formula trust, manifest digest verification, and bounded TERM/KILL cleanup all match the title's scope. The title does not name the specific mechanism, but it describes a real and primary change without being vague.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 2 functions across 4 files. (8 skipped: 8 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@ndizazzo
ndizazzo marked this pull request as ready for review November 1, 2026 19:20
@ndizazzo
ndizazzo marked this pull request as draft November 1, 2026 19:21
@ndizazzo ndizazzo changed the title docs(release): record packaging qualification evidence fix(packaging): complete SDK and Homebrew release checks Nov 1, 2026
@ndizazzo
ndizazzo marked this pull request as ready for review November 1, 2026 19:50
@ndizazzo
ndizazzo merged commit c8d4e59 into main Nov 1, 2026
2 checks passed
@ndizazzo
ndizazzo deleted the codex/release-079-qualification-record branch November 1, 2026 20:17
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