Skip to content

feat(coding-agent): add gated Homebrew distribution - #304

Open
Pepps233 wants to merge 11 commits into
mainfrom
feat/homebrew-distribution
Open

Pepps233 wants to merge 11 commits into
mainfrom
feat/homebrew-distribution

Conversation

@Pepps233

@Pepps233 Pepps233 commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Implement the Homebrew channel and the shared self-contained archives it needs. No standalone installer, standalone uninstall command, or standalone self-updater is included.

Publication remains disabled: channels.homebrew is deferred and the release signing-key list is empty until the documented review and qualification gates are approved. This PR preserves the seven incremental implementation commits.

Reasoning

Homebrew should install a reviewed, SHA-256-pinned application without running npm to install Diffex or requiring separately installed Node/npm. Bundling a pinned official Node runtime preserves extension functionality while keeping upgrades under Homebrew ownership. The existing npm release/discovery contract and trusted-publisher workflow identity remain unchanged.

Changes

  • Detect the external Homebrew ownership marker before npm heuristics. Pure self-update prints brew upgrade diffexai/tap/diffex before settings/network bootstrap and makes no filesystem or package-manager changes.
  • Use bundled Node/private npm for extensions by default while honoring an explicit npmCommand and preserving project trust, lifecycle behavior, and user/project storage.
  • Prepare four native archives using pinned Node 22.23.4/npm 10.9.9, verified official signed checksums, the retained reviewed CLI tarball, and the existing installation lock. Preserve third-party legal/source materials under a separate payload gate without weakening npm disclosure checks.
  • Add canonical formula generation and narrowly scoped GitHub App automation that verifies public bytes before opening a tap update PR; never merge automatically.
  • Integrate retained archives, RSA-3072/SHA-256 signatures, exact-byte public verification, immutable recovery, and gated announcement/latest promotion into build-binaries.yml alongside npm.
  • Add native and Daytona acceptance paths for bundled-runtime execution, extension installation, runtime assets, real Brew lifecycle fixtures, ownership refusal, integrity, and data retention.
  • Document rollout, key rotation/revocation, recovery, supported targets, and outstanding qualification in docs/release/homebrew.md.

Testing

Passed locally:

  • npm run check
  • Full credential-isolated ./test.sh non-E2E suite; fixed and regressed GPG's Unix-socket path limit under long macOS temporary directories
  • Focused runtime, archive, formula, signing, publication, recovery, and workflow tests, including follow-up tests added after the full-suite run
  • Complete Daytona harness Python unit suite: 80 tests
  • Ruby lifecycle fixture syntax and local-release help entrypoint
  • Conflict-free merge-tree check against current origin/main

@Pepps233 Pepps233 added enhancement New feature or request coding-agent labels Oct 29, 2026
@Pepps233 Pepps233 self-assigned this Oct 29, 2026

@github-advanced-security github-advanced-security AI 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.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Comment thread scripts/homebrew-acceptance.mjs Fixed
Comment thread scripts/homebrew-archive.mjs Fixed
Comment thread scripts/homebrew-formula.mjs Fixed
Comment thread scripts/homebrew-release-paths.mjs Fixed
Comment thread scripts/homebrew-runtime.mjs Fixed
Comment thread scripts/homebrew-formula.test.mjs Fixed
Comment thread scripts/homebrew-formula.test.mjs Fixed
Comment thread scripts/homebrew-formula.test.mjs Fixed

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coding-agent enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants