Skip to content

feat(sea): build Socket 2.1.0-rc.0 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

Native Socket help

Build Socket 2.1.0-rc.N as a signed, platform-specific Node 27 SEA. .config/release.json keeps this track on the prerelease-2.1.0 dist-tag; stable v1.x releases retain their three existing packages.

pnpm run approve:npm <id> checks the authenticated npm stage and approves it when ready. The workflow then verifies the signed tag is on the default branch and waits for npm to serve every package version before creating the GitHub release from the tag’s changelog. A timeout creates no GitHub release and can be retried with the same tag. Blocked or deleted stages burn the version; their changes carry into the next changelog.

The VFS embeds the bundled tools. cdxgen and synp are present for darwin-arm64 but remain unavailable until their provenance and notice requirements are resolved.

@socket-security

This comment was marked as duplicate.

@socket-security-staging

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

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​termless/​xtermjs@​0.11.0981007091100
Addednpm/​@​types/​cross-spawn@​6.0.61001007880100
Addednpm/​@​actions/​cache@​6.3.0981009191100
Addednpm/​node-pty@​1.2.0-beta.189210010097100
Addednpm/​@​termless/​core@​0.11.09810010092100
Addednpm/​svgo@​4.1.010010010095100

View full report

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[bot]

This comment was marked as 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

This comment was marked as duplicate.

@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: package.json → 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 12 times, most recently from a1633f0 to 500e05c Compare November 10, 2026 06:01
@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 3 times, most recently from c1d36f9 to 3f89f76 Compare November 10, 2026 19:57
vasco-santos

This comment was marked as resolved.

@jdalton

This comment was marked as resolved.

@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 5 times, most recently from 09f122d to a5d36f4 Compare November 11, 2026 20:56
@jdalton

This comment was marked as resolved.

@jdalton John-David Dalton (jdalton) changed the title feat(sea): build Socket 2.1.0 pre-release as Node 27 SEA feat(sea): build Socket 2.1.0-rc.0 as Node 27 SEA Nov 11, 2026
@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 5 times, most recently from 3cbabb9 to 82fa5fa Compare November 12, 2026 02:50
@jdalton

This comment was marked as outdated.

@cursor

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

@jdalton
John-David Dalton (jdalton) force-pushed the feat/v1x-node27-sea-vfs-socket branch 3 times, most recently from 1dc12a4 to 549b957 Compare November 12, 2026 04:22
@jdalton

Copy link
Copy Markdown
Contributor Author

Cursor (@cursor) review

@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 3 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

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

Reviewed by Cursor Bugbot for commit 549b957. Configure here.

JSON.stringify(
constants.ENV.INLINED_SOCKET_CLI_VERSION ||
getRootPkgJsonSync().version,
),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SEA version override never inlines

High Severity

The Rollup replace for INLINED_SOCKET_CLI_VERSION reads constants.ENV.INLINED_SOCKET_CLI_VERSION, but LAZY_ENV never copies that string from the environment. SEA builds set the env var to SEA_VERSION so v1.x feature binaries report 2.1.0-rc.0; the bundle still inlines root package.json instead. After a dual-track v1.x bump, signed natives would advertise the 1.x number.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 549b957. Configure here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 34c56c5: scripts/constants.js now reads INLINED_SOCKET_CLI_VERSION through envAsString, with a regression test. The prototype SEA binary reports 2.1.0-rc.0.

} else if (
constants.ENV[INLINED_SOCKET_CLI_PUBLISHED_BUILD] &&
process.env[SEA_BUILD_ENV] !== 'true'
) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SEA skips Maven jar fail-closed

Medium Severity

SEA dist builds set INLINED_SOCKET_CLI_PUBLISHED_BUILD but now skip the missing Maven extension jar check, and build-sea.mts never runs build:maven-extension (it only builds the .NET helper). A prototype native can ship without the jar, so socket manifest maven and Maven reachability still emit an empty SBOM.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 549b957. Configure here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 34c56c5: SEA preparation now builds the Maven extension before Rollup, and published builds fail if its jar is missing. The skipped guard could leave the jar out, causing native manifest maven to fail at runtime; it did not silently emit an empty SBOM. The prototype build passes with the helper bundled.

Comment thread .gitignore Outdated
!/.config/vitest.e2e.config.mts
!/.config/vitest.integration.config.mts
!/.config/vitest.native.config.mts
!/.config/vitest.terminal.config.mts

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Release policy file not allowlisted

Medium Severity

The deny-all .gitignore un-ignores every other .config file but omits .config/release.json. Prepare, npm policy validation, and SEA version loading all require that file. A re-add, copy, or tooling pass that honors gitignore can drop the prerelease policy and fail those paths closed.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 549b957. Configure here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 34c56c5: .gitignore now re-includes .config/** as a directory rule and removes the per-file config exceptions. git check-ignore confirms .config/release.json is not ignored.

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.

3 participants