Skip to content

feat(sea): build Socket 2.1.0 pre-release as Node 27 SEA - #1705

Open
John-David Dalton (jdalton) wants to merge 1 commit into
v1.xfrom
feat/v1x-node27-sea-vfs-socket
Open

John-David Dalton (jdalton) wants to merge 1 commit into
v1.xfrom
feat/v1x-node27-sea-vfs-socket

Conversation

@jdalton

@jdalton John-David Dalton (jdalton) commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Add an experimental standalone socket 2.1.0 prerelease that embeds Node 27 and supported tools. Keep Socket 1.14.1 and both legacy packages buildable; unavailable tools fail clearly instead of downloading replacements.

Add native image tests for all 71 registered command paths and eight bundled patch subcommands, plus local behavior and two interactive flows. Help captures use 140 columns. Screenshots trim empty bottom rows automatically; animation checkpoints share a canvas. Runs isolate fixtures and caches, and trusted macOS CI signs the binary before execution.

Validation: 92 native tests pass on macOS ARM64 and Linux ARM64; 24 utility tests, 29 artifact-upload tests, and lint pass. Fixed CRLF lockfile parsing that omitted the Windows patch binary; the updated CI matrix is running.

Native Socket help

Native scan setup

Animated scan setup. CI artifacts include the HTML gallery, 95 images, and both animations.

Automated review notes

[!NOTE]
High Risk
Large build-pipeline and dependency-inlining changes affect every distribution path (npm dist vs SEA), bundled third-party legal compliance, and standalone tool resolution (Bazel/cdxgen/synp).

Overview
Node 27 SEA packaging lands as a 2.1.0 prerelease: new Rollup configs bundle cdxgen and Synp into the VFS, roll provenance via includedModulesInventoryPlugin / THIRD-PARTY-NOTICES.json, and stage curated license material under src/sea/licenses/. Dist builds honor SOCKET_SEA_BUILD (inventories for core, blessed-contrib, and copied blessed; skip package.json churn where appropriate).

Build/runtime decoupling from @socketsecurity/registry: helpers move to scripts/utils/registry-helpers.js, runtime imports shift to local src/utils/* (logger, spawn, prompts, fs, etc.), @socketsecurity/registry is no longer external/copied, and bin/cli.js spawns through dist/utils.js. Build constants in scripts/constants.js are local, with SOCKET_SEA_DIST_DIR / SOCKET_SEA_EXTERNAL_DIR overrides.

Standalone behavior: isStandaloneSea() tightens Bazel resolution (native binary only, no Bazelisk/Node launchers); README documents SOCKET_CLI_SOCKET_PATCH_PATH.

Repo hygiene and CI: .gitignore switches to deny-all with an explicit allowlist; integration (scripts/test/integration.mts) and native SEA (scripts/test/native.mts) test scripts join the matrix; Apple signing helper capture.mts is added; package bumps inquirer/cross-spawn, removes registry deps, and extends test scripts.

Reviewed by Cursor Bugbot for commit 1e5a252. Configure here.

@socket-security

socket-security Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

@socket-security-staging

socket-security-staging Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Comment thread src/utils/spawn.mts Fixed
@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 5 times, most recently from 235a989 to 1e5a252 Compare November 9, 2026 17:59
@jdalton
John-David Dalton (jdalton) marked this pull request as ready for review November 9, 2026 18:18

@cursor cursor 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.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Gitignore drops GitHub workflow tracking
    • Allowlisted .github and its contents in the deny-by-default gitignore so workflows are trackable and scanned, while copilot instructions stay ignored.

Create PR

Or push these changes by commenting:

@cursor push 8129ed34e4
Preview (8129ed34e4)
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,8 @@
 !/.claude/skills/
 !/.claude/skills/bump-coana/
 !/.config/
+!/.github/
+!/.github/**
 !/.husky/
 !/.vscode/
 !/assets/

You can send follow-ups to the cloud agent here.

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 1e5a252. Configure here.

Comment thread .gitignore Resolved
@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 2 times, most recently from 6099c48 to cc04f94 Compare November 9, 2026 18:54
@jdalton John-David Dalton (jdalton) changed the title Build Socket 2.1 prerelease as a Node 27 SEA feat(sea): build Socket 2.1.0 pre-release as Node 27 SEA Nov 9, 2026
@socket-security

socket-security Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Priority Alert  (click "▶" to expand/collapse) Action
Low priority
License policy violation: npm playwright-core under MIT WITH Google-Patent-WebM

License: MIT WITH Google-Patent-WebM - The applicable license policy does not permit this license (5) (package/lib/webp_codec.LICENSE)

From: pnpm-lock.yaml → npm/@termless/core@0.11.0 → npm/playwright-core@1.65.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/playwright-core@1.65.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn

View full report

@socket-security-staging

socket-security-staging Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Priority Alert  (click "▶" to expand/collapse) Action
Low priority
License policy violation: npm playwright-core under MIT WITH Google-Patent-WebM

License: MIT WITH Google-Patent-WebM - The applicable license policy does not permit this license (5) (package/lib/webp_codec.LICENSE)

From: pnpm-lock.yaml → npm/@termless/core@0.11.0 → npm/playwright-core@1.65.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity-Staging ignore npm/playwright-core@1.65.0. You can also ignore all packages with @SocketSecurity-Staging ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn

View full report

@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 7 times, most recently from 1b25ce6 to c68d6bf Compare November 10, 2026 03:33

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

None yet

Development

Successfully merging this pull request may close these issues.

2 participants