@volter/browser-wali 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/bulk-memory.d.ts +23 -0
  2. package/dist/bulk-memory.d.ts.map +1 -0
  3. package/dist/bulk-memory.js +50 -0
  4. package/dist/bulk-memory.js.map +1 -0
  5. package/dist/coherent-file-locks.d.ts +4 -1
  6. package/dist/coherent-file-locks.d.ts.map +1 -1
  7. package/dist/coherent-file-locks.js +24 -1
  8. package/dist/coherent-file-locks.js.map +1 -1
  9. package/dist/descriptors.d.ts +18 -1
  10. package/dist/descriptors.d.ts.map +1 -1
  11. package/dist/descriptors.js +51 -6
  12. package/dist/descriptors.js.map +1 -1
  13. package/dist/filesystem-host.d.ts +81 -0
  14. package/dist/filesystem-host.d.ts.map +1 -0
  15. package/dist/filesystem-host.js +849 -0
  16. package/dist/filesystem-host.js.map +1 -0
  17. package/dist/filesystem-protocol.d.ts +49 -1
  18. package/dist/filesystem-protocol.d.ts.map +1 -1
  19. package/dist/filesystem-protocol.js +17 -0
  20. package/dist/filesystem-protocol.js.map +1 -1
  21. package/dist/filesystem-remote.d.ts +72 -18
  22. package/dist/filesystem-remote.d.ts.map +1 -1
  23. package/dist/filesystem-remote.js +271 -40
  24. package/dist/filesystem-remote.js.map +1 -1
  25. package/dist/filesystem-worker.js +8 -502
  26. package/dist/filesystem-worker.js.map +1 -1
  27. package/dist/filesystem.d.ts +9 -0
  28. package/dist/filesystem.d.ts.map +1 -1
  29. package/dist/filesystem.js +209 -61
  30. package/dist/filesystem.js.map +1 -1
  31. package/dist/host-idle.d.ts +29 -0
  32. package/dist/host-idle.d.ts.map +1 -0
  33. package/dist/host-idle.js +68 -0
  34. package/dist/host-idle.js.map +1 -0
  35. package/dist/host.d.ts +1 -0
  36. package/dist/host.d.ts.map +1 -1
  37. package/dist/host.js +1 -3
  38. package/dist/host.js.map +1 -1
  39. package/dist/memory.d.ts.map +1 -1
  40. package/dist/memory.js +79 -18
  41. package/dist/memory.js.map +1 -1
  42. package/dist/module-layout.d.ts +6 -0
  43. package/dist/module-layout.d.ts.map +1 -1
  44. package/dist/module-layout.js +26 -3
  45. package/dist/module-layout.js.map +1 -1
  46. package/dist/monotonic-clock.d.ts +9 -0
  47. package/dist/monotonic-clock.d.ts.map +1 -1
  48. package/dist/monotonic-clock.js +11 -0
  49. package/dist/monotonic-clock.js.map +1 -1
  50. package/dist/network-worker.js +7 -2
  51. package/dist/network-worker.js.map +1 -1
  52. package/dist/network.d.ts.map +1 -1
  53. package/dist/network.js +11 -8
  54. package/dist/network.js.map +1 -1
  55. package/dist/process-bridge.d.ts.map +1 -1
  56. package/dist/process-bridge.js +25 -5
  57. package/dist/process-bridge.js.map +1 -1
  58. package/dist/program.d.ts +5 -1
  59. package/dist/program.d.ts.map +1 -1
  60. package/dist/program.js +13 -12
  61. package/dist/program.js.map +1 -1
  62. package/dist/runtime.d.ts.map +1 -1
  63. package/dist/runtime.js +75 -9
  64. package/dist/runtime.js.map +1 -1
  65. package/dist/shared-file-layer.d.ts +69 -0
  66. package/dist/shared-file-layer.d.ts.map +1 -0
  67. package/dist/shared-file-layer.js +299 -0
  68. package/dist/shared-file-layer.js.map +1 -0
  69. package/dist/shared-pipes.d.ts +7 -0
  70. package/dist/shared-pipes.d.ts.map +1 -1
  71. package/dist/shared-pipes.js +56 -17
  72. package/dist/shared-pipes.js.map +1 -1
  73. package/dist/signals.d.ts +2 -0
  74. package/dist/signals.d.ts.map +1 -1
  75. package/dist/signals.js +5 -1
  76. package/dist/signals.js.map +1 -1
  77. package/dist/snapshot-filesystem.d.ts +36 -3
  78. package/dist/snapshot-filesystem.d.ts.map +1 -1
  79. package/dist/snapshot-filesystem.js +204 -19
  80. package/dist/snapshot-filesystem.js.map +1 -1
  81. package/dist/stdin.d.ts.map +1 -1
  82. package/dist/stdin.js +3 -2
  83. package/dist/stdin.js.map +1 -1
  84. package/dist/symlink.d.ts.map +1 -1
  85. package/dist/symlink.js +91 -1
  86. package/dist/symlink.js.map +1 -1
  87. package/dist/system.d.ts.map +1 -1
  88. package/dist/system.js +17 -6
  89. package/dist/system.js.map +1 -1
  90. package/dist/thread-coordinator-worker.d.ts +1 -25
  91. package/dist/thread-coordinator-worker.d.ts.map +1 -1
  92. package/dist/thread-coordinator-worker.js +29 -2
  93. package/dist/thread-coordinator-worker.js.map +1 -1
  94. package/dist/thread-worker.js +13 -8
  95. package/dist/thread-worker.js.map +1 -1
  96. package/dist/threads.d.ts +4 -0
  97. package/dist/threads.d.ts.map +1 -1
  98. package/dist/threads.js +72 -43
  99. package/dist/threads.js.map +1 -1
  100. package/dist/types.d.ts +10 -0
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/websocket-peer.d.ts.map +1 -1
  103. package/dist/websocket-peer.js +2 -1
  104. package/dist/websocket-peer.js.map +1 -1
  105. package/dist/worker-program-protocol.d.ts +26 -0
  106. package/dist/worker-program-protocol.d.ts.map +1 -1
  107. package/dist/worker-program-worker.js +26 -8
  108. package/dist/worker-program-worker.js.map +1 -1
  109. package/dist/worker-program.d.ts +43 -0
  110. package/dist/worker-program.d.ts.map +1 -1
  111. package/dist/worker-program.js +198 -24
  112. package/dist/worker-program.js.map +1 -1
  113. package/package.json +1 -1
@@ -1,14 +1,16 @@
1
+ import { createSharedFileLayer, lowerTreeOf, sharedFileLayerEntries, withoutHostTrees } from "./shared-file-layer.js";
1
2
  import { normalizeProcessFilesystemPolicy, intersectProcessFilesystemPolicies, requireProcessFilesystemPolicySupport } from "@volter/browser-runtime/browser-process-filesystem-policy.js";
2
3
  import { localBrowserFileSystemStore, readBrowserFileSystemSnapshot, readBrowserFileSystemEntry } from "@volter/browser-runtime/browser-filesystem.js";
3
4
  import { BROWSER_PACK_RETENTION_ROOT, NODE_ENGINE_ROOT, PROJECT_ROOTS } from "@volter/browser-runtime/browser-pack-store.js";
4
5
  import { browserProcessLineage } from "@volter/browser-runtime/browser-process.js";
5
6
  import { SharedWaliStdinWriter } from "./stdin.js";
7
+ import { findImportedMemory } from "./module-layout.js";
6
8
  import { createWaliSignalState, defaultTerminates, WaliSignals } from "./signals.js";
7
9
  import { waliSharedPipeDescribesFd } from "./shared-pipes.js";
8
10
  import { applyProcessFilesystemPatch, closeSharedPipe, createProcessFilesystemPatch, encodeProcessPatch, readSharedPipe, writeSharedPipe, } from "./process-bridge.js";
9
11
  import { createBrowserFileLockChannel, sharedBrowserFileLockCoordinator, } from "@volter/browser-runtime/browser-file-locks.js";
10
12
  import { createBrowserFileCoherenceChannel, sharedBrowserFileCoherenceCoordinator, } from "@volter/browser-runtime/browser-file-coherence.js";
11
- import { currentEntry, patchedSnapshot } from "@volter/browser-runtime/browser-process-filesystem.js";
13
+ import { currentEntry, patchWithContent, ProcessFilesystemBase } from "@volter/browser-runtime/browser-process-filesystem.js";
12
14
  import { pageWorker } from "@volter/browser-runtime/page-workers.js";
13
15
  /** Runs one unchanged WALI executable off the UI thread while retaining its compiled module. */
14
16
  /**
@@ -18,6 +20,58 @@ import { pageWorker } from "@volter/browser-runtime/page-workers.js";
18
20
  */
19
21
  const compiledModules = new Map();
20
22
  const compiledKey = (url, integrity) => integrity ? `${url}\n${integrity}` : undefined;
23
+ /** `work`, or sooner when `signal` aborts: a run waiting on a preload is still one that can be cancelled (review of da64b88). */
24
+ async function untilAborted(work, signal) {
25
+ if (!signal) {
26
+ await work;
27
+ return;
28
+ }
29
+ if (signal.aborted)
30
+ return;
31
+ let stop = () => undefined;
32
+ const aborted = new Promise((resolve) => { stop = () => resolve(); });
33
+ signal.addEventListener("abort", stop, { once: true });
34
+ try {
35
+ await Promise.race([work, aborted]);
36
+ }
37
+ finally {
38
+ signal.removeEventListener("abort", stop);
39
+ }
40
+ }
41
+ /** Preloads in flight, which a run waits for rather than compiling the module a second time. */
42
+ const preloads = new Map();
43
+ /**
44
+ * A pinned program's module fetched, checked and compiled on the page before
45
+ * its first run, into the same cache a run's worker fills. A host that has
46
+ * other work before it can start the program -- the editor's Blender builds
47
+ * its 66 MB runtime layer first -- overlaps the module's download and compile
48
+ * with that work instead of paying them after it (measured 2026-09-28: the
49
+ * layer 270-975 ms, then the module 200-250 ms warm, in series). The checks
50
+ * are the worker's: a well-formed SRI pin, fetched with it, so the browser
51
+ * refuses bytes that do not match. A failed preload leaves the run to load
52
+ * the module as it would have.
53
+ */
54
+ export function preloadWaliModule(url, integrity) {
55
+ const key = compiledKey(url, integrity);
56
+ if (compiledModules.has(key))
57
+ return Promise.resolve();
58
+ let pending = preloads.get(key);
59
+ if (pending)
60
+ return pending;
61
+ if (!/^sha256-[A-Za-z0-9+/]{43}=$/u.test(integrity))
62
+ return Promise.reject(new Error("Invalid artifact integrity metadata."));
63
+ pending = fetch(url, { integrity }).then(async (response) => {
64
+ if (!response.ok)
65
+ throw new Error(`Unable to load WALI program: HTTP ${response.status}.`);
66
+ const streamed = WebAssembly.compileStreaming(response.clone()).catch(() => undefined);
67
+ const bytes = await response.arrayBuffer();
68
+ const layout = findImportedMemory(new Uint8Array(bytes));
69
+ const module = await streamed ?? await WebAssembly.compile(bytes);
70
+ compiledModules.set(key, { module, ...(layout ? { layout } : {}) });
71
+ }).finally(() => preloads.delete(key));
72
+ preloads.set(key, pending);
73
+ return pending;
74
+ }
21
75
  export class BrowserWaliWorkerProgram {
22
76
  filesystem;
23
77
  program;
@@ -43,6 +97,12 @@ export class BrowserWaliWorkerProgram {
43
97
  this.filesystem = filesystem;
44
98
  this.program = program;
45
99
  }
100
+ /** The trees of the host's layers this run reads (`layers`): what the program writes there stays the program's. */
101
+ hostRoots = [];
102
+ /** A patch without the host's trees, which the page does not hold (review of c5de163: a program's bytecode landed in the page). */
103
+ withoutHostTrees(patch) {
104
+ return withoutHostTrees(patch, this.hostRoots);
105
+ }
46
106
  async run(argv, options = {}) {
47
107
  if (options.filesystemPolicy !== undefined)
48
108
  options = { ...options, filesystemPolicy: normalizeProcessFilesystemPolicy(options.filesystemPolicy) };
@@ -73,18 +133,45 @@ export class BrowserWaliWorkerProgram {
73
133
  // bodies are its own: carried as content, an editor's 296 MB of them went
74
134
  // into every `git` run's image, and two runs at once ended the page on
75
135
  // its heap (measured 2026-09-24 in examples/volter-editor).
76
- const unread = [BROWSER_PACK_RETENTION_ROOT, NODE_ENGINE_ROOT, ...this.program.excludedImagePaths?.() ?? []];
77
- const metadataRoots = [...(store ? PROJECT_ROOTS : []), ...unread];
78
- const image = await readBrowserFileSystemSnapshot(this.filesystem, "/", metadataRoots.length > 0 ? { metadataRoots } : {});
136
+ const unread = this.unreadRoots();
137
+ // A tree with no store travels as a shared layer (ADR-0044 §6): the
138
+ // snapshot describes every file by size, and the files' bytes go once
139
+ // into shared memory that each of the run's workers reads.
140
+ let image = await readBrowserFileSystemSnapshot(this.filesystem, "/", store ? { metadataRoots: [...PROJECT_ROOTS, ...unread] } : { metadataRoots: ["/"] });
141
+ const layer = store ? undefined : await createSharedFileLayer(this.filesystem, image.files.filter((entry) => !underAny(entry.path, unread)));
142
+ if (!store && !layer)
143
+ image = await readBrowserFileSystemSnapshot(this.filesystem, "/", unread.length > 0 ? { metadataRoots: unread } : {});
144
+ // A file gone before its bytes were read is not in the worker's tree, so
145
+ // it is not in the base either: the exit would propose removing it, and
146
+ // meet the file if it came back meanwhile (an atomic save).
147
+ if (layer?.vanished) {
148
+ const vanished = new Set(layer.vanished);
149
+ image = { files: image.files.filter((entry) => !vanished.has(entry.path)) };
150
+ delete layer.vanished;
151
+ }
152
+ // The host's own layers are described by size in the image and the base,
153
+ // as a store's files are: the program holds them, and a file it did not
154
+ // write comes back as it went.
155
+ const hostLayers = this.program.layers ?? [];
156
+ if (hostLayers.length > 0) {
157
+ const held = new Set(image.files.map((entry) => entry.path));
158
+ image = { files: [...image.files, ...hostLayers.flatMap(sharedFileLayerEntries).filter((entry) => !held.has(entry.path))] };
159
+ }
160
+ const layers = [...(layer ? [layer] : []), ...hostLayers];
161
+ this.hostRoots = [...hostLayers.flatMap((hosted) => hosted.roots ?? []), ...(this.program.privateRoots ?? [])]
162
+ .map((root) => root === "/" ? root : root.replace(/\/+$/u, "") || "/");
79
163
  // The base every patch is diffed against is the image as the worker
80
164
  // holds it: the unread trees' files are not in it (their directories
81
165
  // are). Diffed against the page's own listing, the worker's final tree
82
166
  // reported every one of those files removed, and the page deleted them
83
167
  // (measured 2026-09-21: one git run's exit took 3,318 files of the
84
168
  // GitLens and server trees).
85
- const unreadFile = (path) => unread.some((root) => path === root || path.startsWith(`${root}/`));
86
- const base = { files: image.files.filter((entry) => entry.type === "directory" || !unreadFile(entry.path)) };
169
+ const base = { files: image.files.filter((entry) => entry.type === "directory" || !underAny(entry.path, unread)) };
87
170
  const filesystem = this.program.prepareFilesystem ? await this.program.prepareFilesystem(image) : image;
171
+ // A preload of this module still in flight is waited for, not repeated in the worker.
172
+ const preloading = preloads.get(compiledKey(this.program.url, this.program.integrity) ?? "");
173
+ if (preloading)
174
+ await untilAborted(preloading.catch(() => undefined), options.signal);
88
175
  if (options.signal?.aborted)
89
176
  throw options.signal.reason;
90
177
  const id = this.nextId++;
@@ -101,7 +188,7 @@ export class BrowserWaliWorkerProgram {
101
188
  if (!pending || pending.id !== id)
102
189
  return;
103
190
  const entry = currentEntry(coherenceFilesystem, path);
104
- pending.filesystemBase = patchedSnapshot(pending.filesystemBase, entry ? { files: [entry], removed: [] } : { files: [], removed: [path] });
191
+ pending.filesystemBase.apply(entry ? { files: [entry], removed: [] } : { files: [], removed: [path] });
105
192
  });
106
193
  this.urlScanTail = "";
107
194
  this.openedUrls.clear();
@@ -154,7 +241,7 @@ export class BrowserWaliWorkerProgram {
154
241
  const filesystemFinalization = new Promise((resolve) => { resolveFilesystemFinalization = resolve; });
155
242
  this.pending = {
156
243
  id,
157
- filesystemBase: base,
244
+ filesystemBase: new ProcessFilesystemBase(base, layers.length > 0 ? ((lower) => (path) => lower.entries.has(path) ? lower.read(path) : undefined)(lowerTreeOf(undefined, layers)) : undefined),
158
245
  filesystemQueue: Promise.resolve(),
159
246
  resolve,
160
247
  reject,
@@ -167,6 +254,7 @@ export class BrowserWaliWorkerProgram {
167
254
  releaseFileCoherence,
168
255
  releaseFilesystemChanges: () => { },
169
256
  changedPaths: new Set(),
257
+ importSequence: 0,
170
258
  importingFilesystem: false,
171
259
  filesystemFinalized: false,
172
260
  filesystemFinalization,
@@ -211,6 +299,8 @@ export class BrowserWaliWorkerProgram {
211
299
  terminal: options.terminal !== undefined,
212
300
  filesystem,
213
301
  ...(store ? { store: { projectId: store } } : {}),
302
+ ...(layers.length > 0 ? { layers } : {}),
303
+ ...(this.program.privateRoots?.length ? { privateRoots: [...this.program.privateRoots] } : {}),
214
304
  fileLocks: { channel: lockChannel.client, owner: lockOwner },
215
305
  fileCoherence: coherenceChannel.client,
216
306
  signalState,
@@ -268,8 +358,33 @@ export class BrowserWaliWorkerProgram {
268
358
  this.filesystemUpdatePort = filesystemUpdates.port1;
269
359
  this.filesystemUpdatePort.onmessage = (event) => {
270
360
  const active = this.pending;
271
- if (active?.id === id)
272
- active.filesystemQueue = active.filesystemQueue.then(() => this.applyLiveFilesystemPatch(id, event.data));
361
+ if (active?.id !== id)
362
+ return;
363
+ if (event.data.type === "mailbox") {
364
+ // New imports go to the mailbox; one already on the port is the
365
+ // host's to take until it closes the port (review of 31309ca: sent
366
+ // again here, it could be taken twice).
367
+ active.mailbox = { control: new Int32Array(event.data.buffer, 0, 2), buffer: event.data.buffer, doorbell: new Int32Array(event.data.doorbell) };
368
+ return;
369
+ }
370
+ if (event.data.type === "port-closed") {
371
+ const unread = active.importOnPort;
372
+ delete active.importOnPort;
373
+ if (unread && (unread.sequence ?? 0) > event.data.taken && active.mailbox) {
374
+ // On the ordered queue, whose failure ends the run as an import's does (review of 29919da).
375
+ active.filesystemQueue = active.filesystemQueue.then(() => this.sendImport(active, unread)).catch((error) => {
376
+ if (this.pending !== active)
377
+ return;
378
+ this.finishPending();
379
+ this.resetWorker();
380
+ active.reject(error);
381
+ });
382
+ }
383
+ return;
384
+ }
385
+ if (event.data.type === "imported" || event.data.type === "import-error")
386
+ delete active.importOnPort;
387
+ active.filesystemQueue = active.filesystemQueue.then(() => this.applyLiveFilesystemPatch(id, event.data));
273
388
  };
274
389
  this.filesystemUpdatePort.start();
275
390
  const changed = (path) => {
@@ -446,7 +561,7 @@ export class BrowserWaliWorkerProgram {
446
561
  // Its full snapshot may predate a peer import acknowledged on that port;
447
562
  // diffing it against the advanced base would manufacture a deletion.
448
563
  const patch = message.filesystemFinalized ? { files: [], removed: [] }
449
- : createProcessFilesystemPatch(pending.filesystemBase, safeFilesystem);
564
+ : this.withoutHostTrees(createProcessFilesystemPatch(pending.filesystemBase, safeFilesystem, { written: true }));
450
565
  if (!message.filesystemFinalized)
451
566
  applyProcessFilesystemPatch(this.filesystem, patch, pending.filesystemBase);
452
567
  try {
@@ -518,8 +633,14 @@ export class BrowserWaliWorkerProgram {
518
633
  const patch = createProcessFilesystemPatch(before, await metadataSnapshot());
519
634
  const previous = new Map(before.files.map((entry) => [entry.path, entry]));
520
635
  const files = [];
521
- const removed = new Set(patch.removed);
636
+ // A tree the parent never reads is not the parent's news: another
637
+ // program placed while the child ran was 151 MB of bytes here, nine
638
+ // times the patch's room, and the child's result never arrived.
639
+ const unread = this.unreadRoots();
640
+ const removed = new Set(patch.removed.filter((path) => !underAny(path, unread)));
522
641
  for (const entry of patch.files) {
642
+ if (entry.type !== "directory" && underAny(entry.path, unread))
643
+ continue;
523
644
  const current = previous.get(entry.path);
524
645
  const bytesMoved = entry.type === "file" && (!current || current.type !== "file"
525
646
  || current.size !== entry.size || current.mtimeMs !== entry.mtimeMs);
@@ -562,11 +683,11 @@ export class BrowserWaliWorkerProgram {
562
683
  ? intersectProcessFilesystemPolicies(pending.options.filesystemPolicy, message.filesystemPolicy)
563
684
  : message.filesystemPolicy === undefined ? undefined : normalizeProcessFilesystemPolicy(message.filesystemPolicy);
564
685
  requireProcessFilesystemPolicySupport(filesystemPolicy, backend.capabilities);
565
- const safePatch = this.program.sanitizeFilesystemPatch
686
+ const safePatch = this.withoutHostTrees(this.program.sanitizeFilesystemPatch
566
687
  ? await this.program.sanitizeFilesystemPatch(message.filesystemPatch)
567
- : message.filesystemPatch;
688
+ : message.filesystemPatch);
568
689
  applyProcessFilesystemPatch(this.filesystem, safePatch, pending.filesystemBase);
569
- pending.filesystemBase = patchedSnapshot(pending.filesystemBase, safePatch);
690
+ pending.filesystemBase.apply(safePatch);
570
691
  childFilesystem = await metadataSnapshot();
571
692
  trace("spawn-patched");
572
693
  const stdinStream = message.stdin ? streamBrowserPipe(message.stdin, controller.signal) : undefined;
@@ -631,7 +752,7 @@ export class BrowserWaliWorkerProgram {
631
752
  return;
632
753
  }
633
754
  if (message.type === "imported") {
634
- pending.filesystemBase = patchedSnapshot(pending.filesystemBase, message.patch);
755
+ pending.filesystemBase.apply(message.patch);
635
756
  pending.importingFilesystem = false;
636
757
  this.scheduleFilesystemImport(pending);
637
758
  return;
@@ -639,9 +760,11 @@ export class BrowserWaliWorkerProgram {
639
760
  try {
640
761
  if (message.type === "import-error")
641
762
  throw new Error(message.message);
642
- const safePatch = this.program.sanitizeFilesystemPatch
643
- ? await this.program.sanitizeFilesystemPatch(message.patch)
644
- : message.patch;
763
+ if (message.type === "mailbox" || message.type === "port-closed")
764
+ return;
765
+ const safePatch = this.withoutHostTrees(this.program.sanitizeFilesystemPatch
766
+ ? await this.program.sanitizeFilesystemPatch(patchWithContent(message.patch))
767
+ : message.patch);
645
768
  this.applyingFilesystem = true;
646
769
  try {
647
770
  applyProcessFilesystemPatch(this.filesystem, safePatch, pending.filesystemBase);
@@ -649,7 +772,7 @@ export class BrowserWaliWorkerProgram {
649
772
  finally {
650
773
  this.applyingFilesystem = false;
651
774
  }
652
- pending.filesystemBase = patchedSnapshot(pending.filesystemBase, safePatch);
775
+ pending.filesystemBase.apply(safePatch);
653
776
  }
654
777
  catch (error) {
655
778
  // THIS IS WHERE A LIVE PROGRAM BECOMES A DEAD ONE, and it is not an
@@ -683,7 +806,7 @@ export class BrowserWaliWorkerProgram {
683
806
  }
684
807
  try {
685
808
  if (message.type === "filesystem")
686
- await this.program.onFilesystemCommit?.(this.filesystem, message.patch);
809
+ await this.program.onFilesystemCommit?.(this.filesystem, patchWithContent(message.patch));
687
810
  }
688
811
  catch (error) {
689
812
  if (this.pending?.id !== id)
@@ -693,6 +816,45 @@ export class BrowserWaliWorkerProgram {
693
816
  pending.reject(new Error(`WALI filesystem durability barrier failed: ${error instanceof Error ? error.message : String(error)}`));
694
817
  }
695
818
  }
819
+ /**
820
+ * The trees a run's program never reads, read now rather than when it
821
+ * started: a program placed while this one runs (a cold open places Pi's
822
+ * 109 MB beside a running Supercode) is another program's tree from the
823
+ * moment it appears, and its files cross neither a child's patch nor a
824
+ * live import, as they are not in the run's image.
825
+ */
826
+ unreadRoots() {
827
+ return [BROWSER_PACK_RETENTION_ROOT, NODE_ENGINE_ROOT, ...this.program.excludedImagePaths?.() ?? []];
828
+ }
829
+ /** An import to the program: a message, or the mailbox of a host on its main thread (ADR-0046). */
830
+ sendImport(pending, message) {
831
+ message = { ...message, sequence: message.sequence ?? ++pending.importSequence };
832
+ const mailbox = pending.mailbox;
833
+ if (!mailbox) {
834
+ // Kept until answered: a host that announces a mailbox after this left
835
+ // its port unread, and it goes again there (see the "mailbox" message).
836
+ pending.importOnPort = message;
837
+ this.filesystemUpdatePort?.postMessage(message);
838
+ return;
839
+ }
840
+ // Raw bytes in the base are base64 again before JSON, which would make a
841
+ // Uint8Array an object and every file the program wrote a false conflict
842
+ // (review of c96148c).
843
+ const encoded = new TextEncoder().encode(JSON.stringify({ ...message, patch: patchWithContent(message.patch), ...(message.base ? { base: patchWithContent(message.base) } : {}) }));
844
+ const needed = 8 + encoded.byteLength;
845
+ const growable = mailbox.buffer;
846
+ if (needed > mailbox.buffer.byteLength) {
847
+ if (!growable.grow || needed > (growable.maxByteLength ?? 0))
848
+ throw new Error(`A filesystem import of ${encoded.byteLength} bytes does not fit the program's mailbox.`);
849
+ growable.grow(needed);
850
+ }
851
+ // One import is outstanding at a time (`importingFilesystem`), so the slot is empty.
852
+ new Uint8Array(mailbox.buffer, 8, encoded.byteLength).set(encoded);
853
+ Atomics.store(mailbox.control, 1, encoded.byteLength);
854
+ Atomics.store(mailbox.control, 0, 1);
855
+ Atomics.add(mailbox.doorbell, 0, 1);
856
+ Atomics.notify(mailbox.doorbell, 0);
857
+ }
696
858
  scheduleFilesystemImport(pending) {
697
859
  if (pending.filesystemFinalized || pending.importingFilesystem || pending.changedPaths.size === 0 || this.pending !== pending)
698
860
  return;
@@ -700,9 +862,14 @@ export class BrowserWaliWorkerProgram {
700
862
  pending.filesystemQueue = pending.filesystemQueue.then(async () => {
701
863
  if (this.pending !== pending)
702
864
  return;
703
- const paths = new Set(pending.changedPaths);
865
+ // The program's own trees (private, and a host's layers) take nothing
866
+ // from the page, on either side of the patch: left out of `after` only,
867
+ // a path the base knows would read as removed (review of 29919da).
868
+ const paths = new Set([...pending.changedPaths].filter((path) => !underAny(path, this.hostRoots)));
704
869
  pending.changedPaths.clear();
705
- const before = { files: pending.filesystemBase.files.filter((entry) => paths.has(entry.path)) };
870
+ const unread = this.unreadRoots();
871
+ // The same paths leave both sides: a file dropped from one side only would read as removed.
872
+ const before = pending.filesystemBase.only([...paths].filter((path) => !underAny(path, unread) || pending.filesystemBase.byPath.get(path)?.type === "directory"));
706
873
  const after = { files: [] };
707
874
  // THE CHANGED PATHS, ONE AT A TIME, never the whole tree. This read a
708
875
  // full `toSnapshot()` to pick two entries out of it, and a page-side
@@ -711,6 +878,9 @@ export class BrowserWaliWorkerProgram {
711
878
  // ~100 MB of string built and thrown away PER PAGE WRITE, and a
712
879
  // directory-channel session writes twice per request.
713
880
  for (const path of paths) {
881
+ // An unread tree's directories cross, as they are in the image; its files do not.
882
+ if (underAny(path, unread) && !(this.filesystem.existsSync(path) && this.filesystem.statSync(path).isDirectory()))
883
+ continue;
714
884
  const entry = await readBrowserFileSystemEntry(this.filesystem, path);
715
885
  if (entry)
716
886
  after.files.push(entry);
@@ -723,7 +893,7 @@ export class BrowserWaliWorkerProgram {
723
893
  this.scheduleFilesystemImport(pending);
724
894
  return;
725
895
  }
726
- this.filesystemUpdatePort?.postMessage({ type: "import", patch, base: before });
896
+ this.sendImport(pending, { type: "import", patch, base: before });
727
897
  }).catch((error) => {
728
898
  if (this.pending !== pending)
729
899
  return;
@@ -854,4 +1024,8 @@ async function* streamBrowserPipe(handle, signal) {
854
1024
  if (signal.aborted)
855
1025
  throw signal.reason;
856
1026
  }
1027
+ /** Whether a path is one of these roots or under one. */
1028
+ function underAny(path, roots) {
1029
+ return roots.some((root) => root === "/" || path === root || path.startsWith(`${root}/`));
1030
+ }
857
1031
  //# sourceMappingURL=worker-program.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-program.js","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-program.js","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/browser-wali",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "A browser host for WebAssembly Linux Interface programs",
5
5
  "license": "MIT",
6
6
  "repository": {