Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
f7dd471
feat: enhanced SEA mode with walker integration and VFS (#204)
robertsLando Apr 7, 2026
7b55262
fix: move @platformatic/vfs to optionalDependencies for Node 20 CI co…
robertsLando Apr 7, 2026
26ddcb0
feat: drop Node.js 20 support, require Node.js >= 22
robertsLando Apr 7, 2026
69c0010
fix: restore test-00-sea Node version guard to < 20
robertsLando Apr 7, 2026
13541e1
fix: restore assertSeaNodeVersion to check Node >= 20
robertsLando Apr 7, 2026
49ad5a9
test: enhance SEA mode tests for pkg compatibility and error handling
robertsLando Apr 7, 2026
0842c82
fix: improve error handling and conditionally remove Mach-O signature…
robertsLando Apr 7, 2026
862df2a
refactor: extract shared runtime code into bootstrap-shared.js
robertsLando Apr 7, 2026
8a42a62
fix: address Copilot review feedback on SEA pipeline
robertsLando Apr 7, 2026
f539f92
fix: throw when JSON config targets Node < 22 in SEA mode
robertsLando Apr 7, 2026
6f580b6
fix: normalize paths for Windows compatibility in SEA bootstrap
robertsLando Apr 7, 2026
151f25c
docs: add technical architecture documentation
robertsLando Apr 7, 2026
e49e17e
fix: normalize all SEA provider paths to POSIX for Windows compatibility
robertsLando Apr 7, 2026
4d0ef4a
docs: mention --no-bytecode flag in architecture comparison
robertsLando Apr 7, 2026
3399b66
fix: address Copilot review feedback for SEA enhanced mode
robertsLando Apr 7, 2026
f3d47fe
feat: add DEBUG_PKG diagnostics to SEA mode, deduplicate diagnostic code
robertsLando Apr 7, 2026
e6f5753
fix: address remaining Copilot review feedback
robertsLando Apr 7, 2026
10a84db
feat: add worker thread support and fix SEA walker warnings
robertsLando Apr 7, 2026
8e612e3
docs: update architecture documentation to include worker thread supp…
robertsLando Apr 7, 2026
0808a05
fix: mount VFS at POSIX /snapshot on all platforms for Windows compat
robertsLando Apr 7, 2026
5e4a53a
fix: use Module._compile for worker threads instead of raw eval
robertsLando Apr 7, 2026
a4dcb29
fix: use postject JS API instead of npx to inject SEA blobs
robertsLando Apr 7, 2026
c2d3b91
fix: avoid eager file loading and unnecessary temp files in SEA walker
robertsLando Apr 8, 2026
2cdf100
fix: pass defaultEntrypoint in SEA bootstrap for API consistency
robertsLando Apr 8, 2026
8293cf8
feat: add snapshotify function to convert file paths to snapshot paths
robertsLando Apr 8, 2026
d7229f7
docs: fix version comments and Node 22 requirement notes
robertsLando Apr 8, 2026
1e80fed
refactor: reuse replaceSlashes from common.ts instead of duplicate to…
robertsLando Apr 8, 2026
2801ce4
fix: handle VFS-incompatible fs calls in SEA bootstrap
robertsLando Apr 8, 2026
ebc1162
feat: add SKILL.md for packaging performance benchmarks comparison
robertsLando Apr 8, 2026
3d0b118
perf: optimize SEA provider startup and add DEBUG_PKG_PERF instrument…
robertsLando Apr 8, 2026
219d978
docs: split project instructions into modular .claude/rules files
robertsLando Apr 8, 2026
8255a4a
feat: enhance SEA asset generation with single archive blob and offse…
robertsLando Apr 8, 2026
58ccfa5
docs: update README and ARCHITECTURE.md for single archive blob and r…
robertsLando Apr 8, 2026
3fb1387
fix: enable model invocation for performances-compare skill
robertsLando Apr 8, 2026
051c73b
refactor: replace @platformatic/vfs with @roberts_lando/[email protected]
robertsLando Apr 8, 2026
f64bf63
refactor: update Node.js version requirements and testing commands in…
robertsLando Apr 8, 2026
9ed8ce5
feat: track body modifications in stepStrip for enhanced record handling
robertsLando Apr 8, 2026
a536430
chore: update @roberts_lando/vfs to version 0.3.1 in package.json, pa…
robertsLando Apr 8, 2026
394deb1
chore: update @roberts_lando/vfs to version 0.3.2
robertsLando Apr 8, 2026
af5b851
fix: address Copilot review — patchDlopen regression, SEA blob fallba…
robertsLando Apr 10, 2026
f2f1d9f
refactor: use assertSeaOutput helper in test-00-sea
robertsLando Apr 10, 2026
dd99f48
fix: address Copilot review — dlopen VFS, docs, prettierignore
robertsLando Apr 13, 2026
7829973
feat(sea): support ESM entrypoints with top-level await
robertsLando Apr 14, 2026
7476440
docs(readme): document ESM entry + top-level await in SEA mode
robertsLando Apr 14, 2026
3155538
fix(sea): harden SEA pipeline — CJS bootstrap for ESM+TLA, blob gener…
robertsLando Apr 14, 2026
33d43f9
fix(sea): self-review fixes — symlink fallback, archive bounds, short…
robertsLando Apr 14, 2026
beca977
docs(sea): align README + ARCHITECTURE with single-bootstrap dispatch
robertsLando Apr 14, 2026
2ac0177
perf(sea): read SEA blob once and share buffer across targets
robertsLando Apr 14, 2026
90352a3
fix(sea): address copilot review — mixed-major guard, emitWarning lea…
robertsLando Apr 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: handle VFS-incompatible fs calls in SEA bootstrap
Two fixes for the SEA runtime bootstrap:

1. Replace fs.copyFileSync with readFileSync+writeFileSync in the
   dlopen patch's cpRecursive helper. copyFileSync is not routed
   through the VFS in overlay mode, causing ENOENT when extracting
   native addon packages from the snapshot.

2. Wrap fs.realpathSync in try-catch in the diagnostic dumpLevel
   function. realpathSync can fail on VFS paths, crashing the
   DEBUG_PKG tree dump.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
  • Loading branch information
robertsLando and claude committed Apr 8, 2026
commit 2801ce4252425a1b53770ee852cd8522db6c9f2a
11 changes: 9 additions & 2 deletions prelude/bootstrap-shared.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@ function patchDlopen(insideSnapshot) {
);
}
} else {
fs.copyFileSync(src, dest);
// Use readFileSync+writeFileSync instead of copyFileSync because
// copyFileSync may not be routed through the VFS in SEA mode.
fs.writeFileSync(dest, fs.readFileSync(src));
}
})(modulePkgFolder, destFolder);
}
Expand Down Expand Up @@ -307,7 +309,12 @@ function installDiagnostic(snapshotPrefix) {
var d = fs.readdirSync(filename);
for (var j = 0; j < d.length; j += 1) {
var f = path.join(filename, d[j]);
var realPath = fs.realpathSync(f);
var realPath;
try {
realPath = fs.realpathSync(f);
} catch (_) {
realPath = f;
}
var isSymbolicLink = f !== realPath;

var s = fs.statSync(f);
Expand Down