feat(webworker): browser worker host runtime and the vfs image packer

Two private experimental packages run the whole harness tree inside one
dedicated Web Worker. dsh-experimental-webworker-runtime owns the in-memory
VFS (BigInt stats with per-path identity and strictly increasing mtimes),
the CommonJS wrapper loader over a lazily-evaluated builtin table whose
shims typecheck against Node's own module types, the postMessage tunnel
speaking plain HTTP, the AsyncLocalStorage runtime, and the worker
assembly. dsh-experimental-webworker-packer lowers every module body at
pack time against the shared wrapper contract, sweeps the profile closure
by static reachability, and writes a deterministically gzip-compressed tar
the worker inflates through the browser's native DecompressionStream while
it downloads.
This commit is contained in:
imccyu
2026-08-21 20:35:32 +08:00
parent b150a551b8
commit f47b1ecac2
113 changed files with 13126 additions and 47 deletions
+13
View File
@@ -43,6 +43,11 @@ const windowsUnsupportedTests = process.platform === 'win32'
'packages/subprocess/subprocess-local/tests/process-inspector.spec.ts',
'packages/subprocess/subprocess-local/tests/spawn.spec.ts',
'packages/subprocess/subprocess-local/tests/terminal.spec.ts',
// Oracle-diff suites: they compare the worker's POSIX path/url faces
// against the host Node's own answers, which are win32 semantics on
// Windows. The worker always speaks POSIX; the Linux lanes hold the diff.
'packages/experimental/webworker-runtime/tests/node/path-diff.spec.ts',
'packages/experimental/webworker-runtime/tests/node/shim-diff.spec.ts',
]
: []
@@ -211,6 +216,14 @@ export default defineConfig({
'packages/client/ui-layout/src/*',
'packages/client/web/src/*',
'packages/host/webserver/src/*',
// The browser-worker runtime and its image packer: the executing
// composition is a real dedicated Worker driven by the web browser lane
// (apps/web/tests/preview-boot.e2e.ts), which unit-process V8 coverage
// cannot observe. Unit specs cover the algorithmic cores; the assembled
// evidence is that boot. TODO(webworker): revisit when a browser-grade
// coverage lane exists.
'packages/experimental/webworker-runtime/src/**',
'packages/experimental/webworker-packer/src/*',
'packages/client/modules/src/client/system.ts',
'packages/client/hmr/src/client/index.ts',
// Web config-tree boot round: the new host-side web-transport halves