@nimbus-sh/worker 0.1.1 → 0.1.3
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.
- package/LICENSE +21 -0
- package/NOTICE.md +6 -0
- package/README.md +38 -3
- package/dist/_shared/cache-stats.d.ts +1 -1
- package/dist/_shared/cache-stats.js +1 -1
- package/dist/_shared/exports-resolver.d.ts +0 -2
- package/dist/_shared/exports-resolver.d.ts.map +1 -1
- package/dist/_shared/exports-resolver.js +0 -2
- package/dist/_shared/session-id.d.ts +10 -8
- package/dist/_shared/session-id.d.ts.map +1 -1
- package/dist/_shared/session-id.js +13 -12
- package/dist/_shared/session-router.d.ts +0 -1
- package/dist/_shared/session-router.d.ts.map +1 -1
- package/dist/_shared/session-router.js +0 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/types.d.ts +2 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js +4 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -1
- package/dist/facets/cirrus-real.d.ts +1 -1
- package/dist/facets/cirrus-real.js +1 -1
- package/dist/facets/manager.d.ts +0 -1
- package/dist/facets/manager.d.ts.map +1 -1
- package/dist/facets/manager.js +3 -15
- package/dist/facets/process.d.ts +2 -2
- package/dist/facets/process.js +2 -2
- package/dist/facets/vite-dev-server.d.ts +3 -3
- package/dist/facets/vite-dev-server.d.ts.map +1 -1
- package/dist/facets/vite-dev-server.js +6 -8
- package/dist/facets/wasm-swap-registry.d.ts +15 -21
- package/dist/facets/wasm-swap-registry.d.ts.map +1 -1
- package/dist/facets/wasm-swap-registry.js +41 -54
- package/dist/facets/ws-terminal.d.ts +4 -5
- package/dist/facets/ws-terminal.d.ts.map +1 -1
- package/dist/facets/ws-terminal.js +7 -8
- package/dist/git/commands.d.ts.map +1 -1
- package/dist/git/commands.js +0 -1
- package/dist/git/network-facet.d.ts.map +1 -1
- package/dist/git/network-facet.js +0 -2
- package/dist/git-bundle.generated.d.ts +0 -1
- package/dist/git-bundle.generated.d.ts.map +1 -1
- package/dist/git-bundle.generated.js +0 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/loaders/child-process/spawn-facet.d.ts +7 -52
- package/dist/loaders/child-process/spawn-facet.d.ts.map +1 -1
- package/dist/loaders/child-process/spawn-facet.js +7 -49
- package/dist/loaders/child-process/spawn-pool.d.ts +5 -44
- package/dist/loaders/child-process/spawn-pool.d.ts.map +1 -1
- package/dist/loaders/child-process/spawn-pool.js +5 -44
- package/dist/loaders/fanout-pool.d.ts +18 -65
- package/dist/loaders/fanout-pool.d.ts.map +1 -1
- package/dist/loaders/fanout-pool.js +25 -87
- package/dist/loaders/generated-workers.d.ts +1 -2
- package/dist/loaders/generated-workers.d.ts.map +1 -1
- package/dist/loaders/generated-workers.js +3 -4
- package/dist/loaders/loader-pool.d.ts +1 -2
- package/dist/loaders/loader-pool.d.ts.map +1 -1
- package/dist/loaders/loader-pool.js +1 -1
- package/dist/loaders/npm-resolve-preamble.d.ts +4 -5
- package/dist/loaders/npm-resolve-preamble.d.ts.map +1 -1
- package/dist/loaders/npm-resolve-preamble.js +14 -21
- package/dist/loaders/pre-bundle-preamble.d.ts.map +1 -1
- package/dist/loaders/pre-bundle-preamble.js +0 -1
- package/dist/npm/cache.js +1 -1
- package/dist/npm/install-batch-facet.d.ts.map +1 -1
- package/dist/npm/install-batch-facet.js +7 -12
- package/dist/npm/installer.d.ts +5 -7
- package/dist/npm/installer.d.ts.map +1 -1
- package/dist/npm/installer.js +20 -101
- package/dist/npm/r2-cache.d.ts +17 -29
- package/dist/npm/r2-cache.d.ts.map +1 -1
- package/dist/npm/r2-cache.js +16 -27
- package/dist/npm/resolve-facet.d.ts +11 -17
- package/dist/npm/resolve-facet.d.ts.map +1 -1
- package/dist/npm/resolve-facet.js +14 -28
- package/dist/npm/resolve-one-facet.d.ts +10 -13
- package/dist/npm/resolve-one-facet.d.ts.map +1 -1
- package/dist/npm/resolve-one-facet.js +8 -10
- package/dist/npm/resolver.d.ts +0 -2
- package/dist/npm/resolver.d.ts.map +1 -1
- package/dist/npm/resolver.js +0 -12
- package/dist/observability/oom-discriminator.d.ts +0 -2
- package/dist/observability/oom-discriminator.d.ts.map +1 -1
- package/dist/observability/oom-discriminator.js +0 -2
- package/dist/replica/routing.js +1 -1
- package/dist/router/index.d.ts +6 -2
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +4 -0
- package/dist/router/remote-api.d.ts +44 -0
- package/dist/router/remote-api.d.ts.map +1 -0
- package/dist/router/remote-api.js +333 -0
- package/dist/runtime/barrel-synthesizer.js +1 -1
- package/dist/runtime/clang-runner.d.ts +5 -6
- package/dist/runtime/clang-runner.d.ts.map +1 -1
- package/dist/runtime/clang-runner.js +5 -6
- package/dist/runtime/esbuild-service.d.ts.map +1 -1
- package/dist/runtime/esbuild-service.js +0 -3
- package/dist/runtime/framework-detect.d.ts +0 -1
- package/dist/runtime/framework-detect.d.ts.map +1 -1
- package/dist/runtime/framework-detect.js +0 -1
- package/dist/runtime/node-runner.d.ts +1 -1
- package/dist/runtime/node-runner.js +1 -1
- package/dist/runtime/node-shims.d.ts.map +1 -1
- package/dist/runtime/node-shims.js +0 -22
- package/dist/runtime/package-manager.d.ts +2 -7
- package/dist/runtime/package-manager.d.ts.map +1 -1
- package/dist/runtime/package-manager.js +2 -7
- package/dist/runtime/process-logs-api.js +1 -1
- package/dist/runtime/process-logs.d.ts +0 -1
- package/dist/runtime/process-logs.d.ts.map +1 -1
- package/dist/runtime/process-table.d.ts +2 -2
- package/dist/runtime/process-table.d.ts.map +1 -1
- package/dist/runtime/process-table.js +1 -1
- package/dist/runtime/python-repl.d.ts +0 -1
- package/dist/runtime/python-repl.d.ts.map +1 -1
- package/dist/runtime/python-repl.js +0 -1
- package/dist/runtime/python-runner.d.ts +1 -2
- package/dist/runtime/python-runner.d.ts.map +1 -1
- package/dist/runtime/python-runner.js +1 -3
- package/dist/runtime/repl-session.d.ts +0 -1
- package/dist/runtime/repl-session.d.ts.map +1 -1
- package/dist/runtime/repl-session.js +1 -2
- package/dist/runtime/require-resolver.d.ts.map +1 -1
- package/dist/runtime/require-resolver.js +1 -4
- package/dist/runtime/ruby-runner.d.ts +0 -1
- package/dist/runtime/ruby-runner.d.ts.map +1 -1
- package/dist/runtime/ruby-runner.js +0 -1
- package/dist/runtime/runtime-catalog.d.ts +2 -4
- package/dist/runtime/runtime-catalog.d.ts.map +1 -1
- package/dist/runtime/runtime-catalog.js +2 -4
- package/dist/runtime/runtime-registry.d.ts +1 -1
- package/dist/runtime/runtime-registry.js +1 -1
- package/dist/runtime/streams.d.ts.map +1 -1
- package/dist/runtime/streams.js +0 -1
- package/dist/runtime/wasi-instance.d.ts +35 -45
- package/dist/runtime/wasi-instance.d.ts.map +1 -1
- package/dist/runtime/wasi-instance.js +87 -103
- package/dist/runtime/wasm-runner.d.ts +9 -15
- package/dist/runtime/wasm-runner.d.ts.map +1 -1
- package/dist/runtime/wasm-runner.js +23 -29
- package/dist/session/bindings.d.ts +2 -7
- package/dist/session/bindings.d.ts.map +1 -1
- package/dist/session/bindings.js +3 -8
- package/dist/session/helpers.d.ts +2 -9
- package/dist/session/helpers.d.ts.map +1 -1
- package/dist/session/helpers.js +2 -10
- package/dist/session/init.d.ts +3 -6
- package/dist/session/init.d.ts.map +1 -1
- package/dist/session/init.js +25 -30
- package/dist/session/nimbus-session.d.ts +1 -1
- package/dist/session/nimbus-session.js +5 -5
- package/dist/session/routes.d.ts.map +1 -1
- package/dist/session/routes.js +9 -16
- package/dist/session/rpc.d.ts +2 -2
- package/dist/session/rpc.js +6 -6
- package/dist/session/supervisor-rpc.d.ts +1 -2
- package/dist/session/supervisor-rpc.d.ts.map +1 -1
- package/dist/session/supervisor-rpc.js +1 -5
- package/dist/shell/features.d.ts +5 -5
- package/dist/shell/features.js +6 -6
- package/dist/shell/unix-commands.js +15 -15
- package/dist/vfs/dev-provider.d.ts +1 -1
- package/dist/vfs/dev-provider.js +1 -1
- package/dist/vfs/sqlite-vfs.d.ts +3 -3
- package/dist/vfs/sqlite-vfs.d.ts.map +1 -1
- package/dist/vfs/sqlite-vfs.js +10 -11
- package/package.json +13 -2
- package/public/s/index.html +44 -75
- package/scripts/bundle-facet-workers.mjs +1 -1
- package/scripts/bundle-git.mjs +1 -1
package/dist/session/routes.js
CHANGED
|
@@ -158,7 +158,7 @@ export async function handleFetch(self, request) {
|
|
|
158
158
|
if (url.pathname === '/api/processes') {
|
|
159
159
|
return handleProcessesListRequest(self.processTable, self.processLogs);
|
|
160
160
|
}
|
|
161
|
-
//
|
|
161
|
+
// runtime primitive support (P11) — kill / restart by PID for the Process tab UI.
|
|
162
162
|
//
|
|
163
163
|
// Both endpoints accept POST only. The body is empty; the PID is in the
|
|
164
164
|
// URL. Same authorization model as the rest of /api/* (session-scoped
|
|
@@ -317,7 +317,6 @@ export async function handleFetch(self, request) {
|
|
|
317
317
|
// Why this endpoint exists
|
|
318
318
|
// ────────────────────────
|
|
319
319
|
// workerd's process.memoryUsage() returns zero for every field inside
|
|
320
|
-
// a DO class context (verified at audit/sections/PROD-RESET-RESEARCH-
|
|
321
320
|
// R1.md §R1.4). The previous endpoint reported nodeMem/perfMem from
|
|
322
321
|
// process.memoryUsage() and they were always zero — useless.
|
|
323
322
|
//
|
|
@@ -351,7 +350,7 @@ export async function handleFetch(self, request) {
|
|
|
351
350
|
// calls process.memoryUsage(). Ceiling is the architectural soft
|
|
352
351
|
// budget (SUPERVISOR_HEAP_CEILING_BYTES = 64 MiB), half the
|
|
353
352
|
// workerd hard cap of 128 MiB.
|
|
354
|
-
// N3 (
|
|
353
|
+
// N3 (memory accounting cleanup). Pre-fix, this was hardcoded 0 with
|
|
355
354
|
// the comment "matches reality (writes are flushed in
|
|
356
355
|
// microseconds)" — which was wrong: pendingWrites can hold up to
|
|
357
356
|
// 500 chunks × 64 KiB = 32 MiB at peak, AND writeStream's spool
|
|
@@ -397,7 +396,7 @@ export async function handleFetch(self, request) {
|
|
|
397
396
|
lruShrunk: cacheStats.lruShrunk ?? false,
|
|
398
397
|
evictions: cacheStats.evictions ?? 0,
|
|
399
398
|
hitRate: cacheStats.hitRate ?? 0,
|
|
400
|
-
// N3 (
|
|
399
|
+
// N3 (memory accounting cleanup): pending-writes observability.
|
|
401
400
|
// `pendingWrites` is the entry count (unchanged); the new
|
|
402
401
|
// `pendingWriteBytes` is the live byte total maintained by
|
|
403
402
|
// SqliteVFS._pendingWriteBytes. Probes use the pair to
|
|
@@ -408,7 +407,7 @@ export async function handleFetch(self, request) {
|
|
|
408
407
|
// Visible during a real npm install; ~0 at rest.
|
|
409
408
|
writeStreamSpoolBytes: sqlStats.writeStreamSpoolBytes ?? 0,
|
|
410
409
|
},
|
|
411
|
-
// H7 (
|
|
410
|
+
// H7 (memory accounting cleanup): _NIMBUS_LOADED_CODES Map state.
|
|
412
411
|
// Pre-fix this Map grew unbounded — wrangler dev's rebuild
|
|
413
412
|
// loop accumulated one entry per save until the supervisor
|
|
414
413
|
// hit the workerd 128 MiB hard cap. Post-fix: hard-cap LRU
|
|
@@ -457,7 +456,6 @@ export async function handleFetch(self, request) {
|
|
|
457
456
|
// ── /api/_diag/session — Track B' state-store debug surface [B'.1] ──
|
|
458
457
|
//
|
|
459
458
|
// Exposes the persisted shell state so the probe at
|
|
460
|
-
// audit/probes/b-prime/b1-shell-state/ can verify the SQL row
|
|
461
459
|
// shape directly. Read-only; no side effects. Always returns
|
|
462
460
|
// 200 even when no row exists (the snapshot just shows
|
|
463
461
|
// hasPersistedState=false).
|
|
@@ -513,7 +511,6 @@ export async function handleFetch(self, request) {
|
|
|
513
511
|
// shape (kind = 'do-facet') + the in-facet identity cookie (proves
|
|
514
512
|
// own-SQLite is working and survives ctx.facets warm reuse).
|
|
515
513
|
//
|
|
516
|
-
// Probe at audit/probes/d-prime/d1-cirrus-real-facet/ asserts kind
|
|
517
514
|
// and cookie persistence across forced supervisor reconnect.
|
|
518
515
|
if (url.pathname === '/api/_diag/cirrus') {
|
|
519
516
|
if (!self.cirrusReal) {
|
|
@@ -592,10 +589,8 @@ export async function handleFetch(self, request) {
|
|
|
592
589
|
return Response.json({ pid, lines, chunkCount: chunks.length });
|
|
593
590
|
}
|
|
594
591
|
// ── C'.2 recovery-event test endpoints ────────────────────────────
|
|
595
|
-
// Used by audit/probes/c-prime/recovery-events/ to verify the ring
|
|
596
592
|
// schema works pre-Track-B'. Once Track B' transitions land, real
|
|
597
593
|
// events flow through the ring naturally — these endpoints stay
|
|
598
|
-
// for synthetic-trigger probes (audit/probes/interactive-liveness/
|
|
599
594
|
// error-recovery/).
|
|
600
595
|
if (url.pathname === '/api/_test/recovery-event/record' && request.method === 'POST') {
|
|
601
596
|
const body = await request.json();
|
|
@@ -625,7 +620,6 @@ export async function handleFetch(self, request) {
|
|
|
625
620
|
return Response.json({ reset: true });
|
|
626
621
|
}
|
|
627
622
|
// ── cache-and-scrub L2 cache benchmark ───────────────────────────
|
|
628
|
-
// Used by audit/probes/cache-and-scrub/* to measure the latency
|
|
629
623
|
// contrast between a cold L3-only path and a warm L2-served
|
|
630
624
|
// path. The probe asserts the warm path is ≥5× faster than the
|
|
631
625
|
// cold path (the wave's hard ship-gate).
|
|
@@ -642,8 +636,7 @@ export async function handleFetch(self, request) {
|
|
|
642
636
|
return await handleCacheTestEndpoint(self, url, request);
|
|
643
637
|
}
|
|
644
638
|
// ── two-tier-fanout primitive probe ──────────────────────────────
|
|
645
|
-
//
|
|
646
|
-
// POC C in-DO and POC B peer-DO speedups via the
|
|
639
|
+
// in-DO fanout in-DO and peer-DO fanout peer-DO speedups via the
|
|
647
640
|
// NimbusFanoutPool primitive. Independent of any specific
|
|
648
641
|
// production site (install-batch, pre-bundle, etc.) so the
|
|
649
642
|
// primitive's behavior can be measured cleanly without
|
|
@@ -732,7 +725,7 @@ export async function handleFetch(self, request) {
|
|
|
732
725
|
if (!self.esbuildService)
|
|
733
726
|
self.esbuildService = new EsbuildService(self.sqliteFs);
|
|
734
727
|
const basePath = self.viteBasePath;
|
|
735
|
-
//
|
|
728
|
+
// process metadata support: allocate a PID + port even on the
|
|
736
729
|
// /api/start-vite path so probes that drive vite via the test
|
|
737
730
|
// surface still see a real process in `ps` and stream
|
|
738
731
|
// diagnostics into the Process tab.
|
|
@@ -890,7 +883,7 @@ export async function handleFetch(self, request) {
|
|
|
890
883
|
// X-Nimbus-Base header) over the stored one — the latter is only
|
|
891
884
|
// a fallback for cold rehydrates that precede any header hit.
|
|
892
885
|
const basePath = self.viteBasePath || config.basePath;
|
|
893
|
-
//
|
|
886
|
+
// process diagnostics support: on hibernation rehydrate, re-allocate
|
|
894
887
|
// a PID so log streaming has somewhere to land. Without
|
|
895
888
|
// this, the rehydrated server would be silent again. The
|
|
896
889
|
// PID is registered against the previously-known port (or
|
|
@@ -954,7 +947,7 @@ export async function handleFetch(self, request) {
|
|
|
954
947
|
}
|
|
955
948
|
// ── Worker route: serves the nimbus-wrangler dev worker output ──
|
|
956
949
|
//
|
|
957
|
-
//
|
|
950
|
+
// runtime primitive support (P5): the canonical path is `/__nimbus/worker/*`
|
|
958
951
|
// so projects with their own `worker/` directory at root (Markflow,
|
|
959
952
|
// CF Pages projects, …) can serve it via `/preview/worker/*` without
|
|
960
953
|
// collision. The bare `/worker/*` path remains accepted for
|
|
@@ -1195,7 +1188,7 @@ async function handleCacheTestEndpoint(self, url, request) {
|
|
|
1195
1188
|
// ── two-tier-fanout primitive benchmark endpoint ────────────────────────
|
|
1196
1189
|
//
|
|
1197
1190
|
// Routes under /api/_test/fanout/* exercise NimbusFanoutPool's two
|
|
1198
|
-
// topologies (
|
|
1191
|
+
// topologies (in-DO fanout in-DO + peer-DO fanout peer-DO) via a synthetic workload
|
|
1199
1192
|
// that's independent of the production install-batch / pre-bundle
|
|
1200
1193
|
// sites. The probe measures speedup, peer-DO routing determinism,
|
|
1201
1194
|
// and backpressure behavior in isolation.
|
package/dist/session/rpc.d.ts
CHANGED
|
@@ -219,7 +219,7 @@ export declare function _rpcCpDrainOutput(self: RpcHost, childPid: number): Prom
|
|
|
219
219
|
export declare function _rpcCpKill(self: RpcHost, childPid: number, signal: string): Promise<boolean>;
|
|
220
220
|
export declare function _rpcCpWait(self: RpcHost, childPid: number, waitMs: number): Promise<any>;
|
|
221
221
|
/**
|
|
222
|
-
*
|
|
222
|
+
* child-process isolation gap #1: dispatch a single cp.spawn request inline using the
|
|
223
223
|
* existing pure-builtin / facet-direct logic, returning final stdout/
|
|
224
224
|
* stderr/exitCode rather than streaming via hooks. Called by
|
|
225
225
|
* spawn-facet.ts:runSpawnInIsolate from inside a fresh Worker Loader
|
|
@@ -256,7 +256,7 @@ export declare function vfsReaddir(self: RpcHost, path: string): {
|
|
|
256
256
|
/** RPC: Write a file to the VFS. */
|
|
257
257
|
export declare function vfsWriteFile(self: RpcHost, path: string, data: ArrayBuffer): void;
|
|
258
258
|
/**
|
|
259
|
-
* RPC: peer-DO execute leg of NimbusFanoutPool's
|
|
259
|
+
* RPC: peer-DO execute leg of NimbusFanoutPool's peer-DO fanout topology.
|
|
260
260
|
*
|
|
261
261
|
* Called by a coordinator NimbusSession DO via
|
|
262
262
|
* `env.NIMBUS_SESSION.idFromName(siblingName).get()._rpcFanoutExecute(...)`.
|
package/dist/session/rpc.js
CHANGED
|
@@ -236,16 +236,16 @@ export async function _rpcWriteBatchStream(self, stream) {
|
|
|
236
236
|
self.ensureSqliteFs();
|
|
237
237
|
// [P0a — COORDINATOR-OVERLOAD]
|
|
238
238
|
//
|
|
239
|
-
//
|
|
239
|
+
// core WASI (semaphore here): rejected. Parking peer-side awaits in a
|
|
240
240
|
// user-space queue extended each peer's _rpcFanoutExecute round-trip
|
|
241
241
|
// time, which made workerd cancel the peer→coordinator PARENT RPC
|
|
242
|
-
// with the same overload error (
|
|
242
|
+
// with the same overload error (observed in production 7c3f1b25:
|
|
243
243
|
// "[batch-fanout] aborted: ExecutionError: Durable Object is
|
|
244
244
|
// overloaded"). The semaphore moved the queue-age problem one layer
|
|
245
245
|
// up — same symptom, worse blast radius (whole-batch abort instead
|
|
246
246
|
// of per-package fail).
|
|
247
247
|
//
|
|
248
|
-
//
|
|
248
|
+
// filesystem WASI (shared flush + adaptive shard cap, no semaphore): the
|
|
249
249
|
// producer-side fix. The peer-side install-batch-facet now shares
|
|
250
250
|
// ONE inode/chunk accumulator across all packages in a peer's
|
|
251
251
|
// shard (src/npm/install-batch-facet.ts), so 39 packages → ~3-5
|
|
@@ -627,7 +627,7 @@ export async function _rpcCpWait(self, childPid, waitMs) {
|
|
|
627
627
|
return fpm.wait(childPid, waitMs);
|
|
628
628
|
}
|
|
629
629
|
/**
|
|
630
|
-
*
|
|
630
|
+
* child-process isolation gap #1: dispatch a single cp.spawn request inline using the
|
|
631
631
|
* existing pure-builtin / facet-direct logic, returning final stdout/
|
|
632
632
|
* stderr/exitCode rather than streaming via hooks. Called by
|
|
633
633
|
* spawn-facet.ts:runSpawnInIsolate from inside a fresh Worker Loader
|
|
@@ -702,7 +702,7 @@ export function vfsWriteFile(self, path, data) {
|
|
|
702
702
|
self.sqliteFs.writeFile(stripped, new Uint8Array(data));
|
|
703
703
|
}
|
|
704
704
|
/**
|
|
705
|
-
* RPC: peer-DO execute leg of NimbusFanoutPool's
|
|
705
|
+
* RPC: peer-DO execute leg of NimbusFanoutPool's peer-DO fanout topology.
|
|
706
706
|
*
|
|
707
707
|
* Called by a coordinator NimbusSession DO via
|
|
708
708
|
* `env.NIMBUS_SESSION.idFromName(siblingName).get()._rpcFanoutExecute(...)`.
|
|
@@ -775,7 +775,7 @@ export async function _rpcFanoutExecute(self, fnSource, args, poolOpts = {}) {
|
|
|
775
775
|
catch { /* best-effort */ }
|
|
776
776
|
}
|
|
777
777
|
}
|
|
778
|
-
// ── Cache-observability stats forward (cache
|
|
778
|
+
// ── Cache-observability stats forward (cache metrics support) ──────
|
|
779
779
|
//
|
|
780
780
|
// SupervisorRPC handlers run in a SEPARATE isolate from the DO they
|
|
781
781
|
// service (loopback service-binding semantics). When they bump
|
|
@@ -97,7 +97,6 @@ export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
|
97
97
|
* cap entirely; the byte stream traverses the RPC boundary with
|
|
98
98
|
* automatic flow control per Cloudflare RPC docs.
|
|
99
99
|
*
|
|
100
|
-
* Acceptance per audit/sections/MASTER-ROADMAP.md §W7:
|
|
101
100
|
* - Install of 5GB monorepo doesn't hit 32 MiB wall.
|
|
102
101
|
* - Peak heap reduction 48 MiB → 30 MiB on the facet side.
|
|
103
102
|
*
|
|
@@ -253,7 +252,7 @@ export declare class SupervisorRPC extends WorkerEntrypoint {
|
|
|
253
252
|
signal: string | null;
|
|
254
253
|
}>;
|
|
255
254
|
/**
|
|
256
|
-
*
|
|
255
|
+
* child-process isolation gap #1: dispatch a single cp.spawn request inline using
|
|
257
256
|
* the existing pure-builtin / facet-direct logic, returning final
|
|
258
257
|
* stdout/stderr/exitCode (NOT streamed via hooks). Called from
|
|
259
258
|
* spawn-facet.ts:runSpawnInIsolate inside a fresh Worker Loader
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor-rpc.d.ts","sourceRoot":"","sources":["../../src/session/supervisor-rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAmBtD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAsC5D,qBAAa,aAAc,SAAQ,gBAAgB;IACjD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU,CAAa;IAE/B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAWV,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIpD;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIvD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"supervisor-rpc.d.ts","sourceRoot":"","sources":["../../src/session/supervisor-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,7 +111,6 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
111
111
|
// decode every Uint8Array write — mangling bytes ≥ 0x80 to U+FFFD
|
|
112
112
|
// and corrupting binary content. RPC structured-clone handles
|
|
113
113
|
// Uint8Array transparently; downstream _rpcWriteFile also accepts
|
|
114
|
-
// either shape. See /workspace/.seal-internal/2026-05-10-binary-fs/.
|
|
115
114
|
return this._getStub()._rpcWriteFile(path, content);
|
|
116
115
|
}
|
|
117
116
|
async stat(path) {
|
|
@@ -163,7 +162,6 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
163
162
|
* cap entirely; the byte stream traverses the RPC boundary with
|
|
164
163
|
* automatic flow control per Cloudflare RPC docs.
|
|
165
164
|
*
|
|
166
|
-
* Acceptance per audit/sections/MASTER-ROADMAP.md §W7:
|
|
167
165
|
* - Install of 5GB monorepo doesn't hit 32 MiB wall.
|
|
168
166
|
* - Peak heap reduction 48 MiB → 30 MiB on the facet side.
|
|
169
167
|
*
|
|
@@ -232,7 +230,6 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
232
230
|
// aren't configured (deploy without R2 buckets, or local dev), the
|
|
233
231
|
// R2CacheClient falls through to null returns / no-op writes; the
|
|
234
232
|
// facet sees null and uses its existing network-fetch path. No errors,
|
|
235
|
-
// no breakage. See audit/sections/W4-plan.md §8 risk #1.
|
|
236
233
|
/**
|
|
237
234
|
* Build a fresh R2CacheClient bound to this request's env. Cheap to
|
|
238
235
|
* instantiate; does no async work. Called from each R2 RPC method to
|
|
@@ -401,7 +398,6 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
401
398
|
// these methods. They delegate to NimbusSession._rpcCp* methods which
|
|
402
399
|
// route through the shared FacetProcessManager.
|
|
403
400
|
//
|
|
404
|
-
// Contract documented in audit/sections/W8-plan.md §2 / §8.5.
|
|
405
401
|
async cpSpawn(req) {
|
|
406
402
|
return this._getStub()._rpcCpSpawn(req);
|
|
407
403
|
}
|
|
@@ -424,7 +420,7 @@ export class SupervisorRPC extends WorkerEntrypoint {
|
|
|
424
420
|
return this._getStub()._rpcCpWait(childPid, waitMs);
|
|
425
421
|
}
|
|
426
422
|
/**
|
|
427
|
-
*
|
|
423
|
+
* child-process isolation gap #1: dispatch a single cp.spawn request inline using
|
|
428
424
|
* the existing pure-builtin / facet-direct logic, returning final
|
|
429
425
|
* stdout/stderr/exitCode (NOT streamed via hooks). Called from
|
|
430
426
|
* spawn-facet.ts:runSpawnInIsolate inside a fresh Worker Loader
|
package/dist/shell/features.d.ts
CHANGED
|
@@ -167,7 +167,7 @@ export declare class FdRedirectNormalizer {
|
|
|
167
167
|
static normalize(line: string): string;
|
|
168
168
|
}
|
|
169
169
|
/**
|
|
170
|
-
*
|
|
170
|
+
* shell compatibility (2026-05-11): @lifo-sh/core's parser doesn't support
|
|
171
171
|
* subshell grouping `(cmd1; cmd2)`. Pre-fix `(echo a; echo b)` raised
|
|
172
172
|
* `unexpected token '('`. Common shell idioms (`(cd /x && cmd)` for
|
|
173
173
|
* cd-scoped execution, pipeline grouping `(a; b) | c`) all failed.
|
|
@@ -205,7 +205,7 @@ export declare class SubshellNormalizer {
|
|
|
205
205
|
}[];
|
|
206
206
|
}
|
|
207
207
|
/**
|
|
208
|
-
*
|
|
208
|
+
* shell compatibility (2026-05-11): @lifo-sh/core doesn't expand
|
|
209
209
|
* `{a,b,c}` brace expressions. Pre-fix `ls /x/*.{js,ts}` returned
|
|
210
210
|
* nothing because the literal `*.{js,ts}` doesn't match a glob shape.
|
|
211
211
|
*
|
|
@@ -233,7 +233,7 @@ export declare class BraceExpander {
|
|
|
233
233
|
static expandBraces(line: string): string;
|
|
234
234
|
}
|
|
235
235
|
/**
|
|
236
|
-
*
|
|
236
|
+
* shell compatibility (2026-05-11): @lifo-sh/core doesn't expand `$$`
|
|
237
237
|
* (PID) or `$0` (shell name). Pre-fix `echo $$` printed literal `$$`
|
|
238
238
|
* and `echo $0` printed empty. Common in shell scripts (PID for
|
|
239
239
|
* lockfiles, $0 for script-name-aware behaviour).
|
|
@@ -260,7 +260,7 @@ export declare class DollarVarShim {
|
|
|
260
260
|
static expandDollarVars(line: string, pid: number): string;
|
|
261
261
|
}
|
|
262
262
|
/**
|
|
263
|
-
*
|
|
263
|
+
* shell compatibility (2026-05-11): lifo-sh's HeredocHandler accumulates
|
|
264
264
|
* lines verbatim — `$X` references inside an unquoted-delimiter
|
|
265
265
|
* heredoc don't expand. Bash semantics:
|
|
266
266
|
* cat <<EOF → variables expand
|
|
@@ -282,7 +282,7 @@ export declare class DollarVarShim {
|
|
|
282
282
|
*/
|
|
283
283
|
export declare function expandHeredocVars(content: string, env: Record<string, string>): string;
|
|
284
284
|
/**
|
|
285
|
-
*
|
|
285
|
+
* shell compatibility (2026-05-11): backtick `` `cmd` `` command
|
|
286
286
|
* substitution. Pre-fix `echo \`date +%Y\`` printed literal
|
|
287
287
|
* '`date +%Y`'. `$(cmd)` form worked; backtick form didn't.
|
|
288
288
|
*
|
package/dist/shell/features.js
CHANGED
|
@@ -543,7 +543,7 @@ export class HeredocHandler {
|
|
|
543
543
|
async _finishHeredoc() {
|
|
544
544
|
const info = this.heredocInfo;
|
|
545
545
|
let content = this.lines.join('\n') + '\n';
|
|
546
|
-
//
|
|
546
|
+
// shell compatibility (2026-05-11): expand $NAME / ${NAME} in heredoc
|
|
547
547
|
// content when delimiter is NOT quoted (bash semantics: <<EOF
|
|
548
548
|
// expands, <<'EOF' doesn't). Without this, `cat <<EOF` with $X
|
|
549
549
|
// inside outputs literal `$X` — surprising for users coming from
|
|
@@ -715,7 +715,7 @@ export class FdRedirectNormalizer {
|
|
|
715
715
|
}
|
|
716
716
|
// ── Subshell / grouping normalizer ─────────────────────────────────────
|
|
717
717
|
/**
|
|
718
|
-
*
|
|
718
|
+
* shell compatibility (2026-05-11): @lifo-sh/core's parser doesn't support
|
|
719
719
|
* subshell grouping `(cmd1; cmd2)`. Pre-fix `(echo a; echo b)` raised
|
|
720
720
|
* `unexpected token '('`. Common shell idioms (`(cd /x && cmd)` for
|
|
721
721
|
* cd-scoped execution, pipeline grouping `(a; b) | c`) all failed.
|
|
@@ -840,7 +840,7 @@ export class SubshellNormalizer {
|
|
|
840
840
|
}
|
|
841
841
|
// ── Brace expansion ─────────────────────────────────────────────────────
|
|
842
842
|
/**
|
|
843
|
-
*
|
|
843
|
+
* shell compatibility (2026-05-11): @lifo-sh/core doesn't expand
|
|
844
844
|
* `{a,b,c}` brace expressions. Pre-fix `ls /x/*.{js,ts}` returned
|
|
845
845
|
* nothing because the literal `*.{js,ts}` doesn't match a glob shape.
|
|
846
846
|
*
|
|
@@ -1048,7 +1048,7 @@ function expandTokenBraces(tok) {
|
|
|
1048
1048
|
}
|
|
1049
1049
|
// ── Variable shim: $$, $0 ──────────────────────────────────────────────
|
|
1050
1050
|
/**
|
|
1051
|
-
*
|
|
1051
|
+
* shell compatibility (2026-05-11): @lifo-sh/core doesn't expand `$$`
|
|
1052
1052
|
* (PID) or `$0` (shell name). Pre-fix `echo $$` printed literal `$$`
|
|
1053
1053
|
* and `echo $0` printed empty. Common in shell scripts (PID for
|
|
1054
1054
|
* lockfiles, $0 for script-name-aware behaviour).
|
|
@@ -1133,7 +1133,7 @@ export class DollarVarShim {
|
|
|
1133
1133
|
}
|
|
1134
1134
|
// ── Heredoc variable expansion ─────────────────────────────────────────
|
|
1135
1135
|
/**
|
|
1136
|
-
*
|
|
1136
|
+
* shell compatibility (2026-05-11): lifo-sh's HeredocHandler accumulates
|
|
1137
1137
|
* lines verbatim — `$X` references inside an unquoted-delimiter
|
|
1138
1138
|
* heredoc don't expand. Bash semantics:
|
|
1139
1139
|
* cat <<EOF → variables expand
|
|
@@ -1189,7 +1189,7 @@ export function expandHeredocVars(content, env) {
|
|
|
1189
1189
|
}
|
|
1190
1190
|
// ── Backtick command substitution ─────────────────────────────────────
|
|
1191
1191
|
/**
|
|
1192
|
-
*
|
|
1192
|
+
* shell compatibility (2026-05-11): backtick `` `cmd` `` command
|
|
1193
1193
|
* substitution. Pre-fix `echo \`date +%Y\`` printed literal
|
|
1194
1194
|
* '`date +%Y`'. `$(cmd)` form worked; backtick form didn't.
|
|
1195
1195
|
*
|
|
@@ -343,7 +343,7 @@ function mkCommand(vfs, registry) {
|
|
|
343
343
|
};
|
|
344
344
|
}
|
|
345
345
|
/**
|
|
346
|
-
*
|
|
346
|
+
* shell compatibility (2026-05-11): `type` builtin. lifo-sh doesn't ship
|
|
347
347
|
* one; pre-fix `type echo` → 'type: command not found'. bash's
|
|
348
348
|
* `type X` reports how X would be interpreted (builtin, alias,
|
|
349
349
|
* function, file, or unknown).
|
|
@@ -418,7 +418,7 @@ function mkClear() {
|
|
|
418
418
|
return (ctx) => { ctx.stdout.write('\x1b[2J\x1b[H'); return 0; };
|
|
419
419
|
}
|
|
420
420
|
/**
|
|
421
|
-
*
|
|
421
|
+
* shell compatibility (2026-05-11): date strftime format support.
|
|
422
422
|
*
|
|
423
423
|
* Pre-fix mkDate only honoured `-u`, `-I`, and `+%s` literal. Any
|
|
424
424
|
* other `+FMT` was a no-op falling to `now.toString()`. Real shell
|
|
@@ -684,7 +684,7 @@ function mkTree(vfs) {
|
|
|
684
684
|
};
|
|
685
685
|
}
|
|
686
686
|
/**
|
|
687
|
-
*
|
|
687
|
+
* shell compatibility (2026-05-11): find predicates (-size, -mtime).
|
|
688
688
|
*
|
|
689
689
|
* Pre-fix only -name and -type were honoured. `find /x -size 0`
|
|
690
690
|
* and `find /x -mtime -1` were no-ops (returned all files). Common
|
|
@@ -920,7 +920,7 @@ function mkFind(vfs) {
|
|
|
920
920
|
};
|
|
921
921
|
}
|
|
922
922
|
/**
|
|
923
|
-
*
|
|
923
|
+
* shell compatibility (2026-05-11): grep flag handling.
|
|
924
924
|
*
|
|
925
925
|
* Pre-fix gaps:
|
|
926
926
|
* -c X matched lines were printed (count mode ignored from stdin)
|
|
@@ -1354,7 +1354,7 @@ function mkSed(vfs) {
|
|
|
1354
1354
|
};
|
|
1355
1355
|
}
|
|
1356
1356
|
/**
|
|
1357
|
-
*
|
|
1357
|
+
* shell compatibility (2026-05-11): expanded awk subset.
|
|
1358
1358
|
*
|
|
1359
1359
|
* Pre-fix mkAwk supported only:
|
|
1360
1360
|
* {print $N}
|
|
@@ -2133,7 +2133,7 @@ function mkAwk(vfs) {
|
|
|
2133
2133
|
};
|
|
2134
2134
|
}
|
|
2135
2135
|
/**
|
|
2136
|
-
*
|
|
2136
|
+
* shell compatibility (2026-05-11): real xargs implementation.
|
|
2137
2137
|
*
|
|
2138
2138
|
* Pre-fix the impl printed the command-line it WOULD execute and
|
|
2139
2139
|
* returned 0. Real xargs runs the command, possibly batched (-n),
|
|
@@ -2281,7 +2281,7 @@ function mkTee(vfs) {
|
|
|
2281
2281
|
};
|
|
2282
2282
|
}
|
|
2283
2283
|
/**
|
|
2284
|
-
*
|
|
2284
|
+
* shell compatibility (2026-05-11): du flag parsing for combined forms.
|
|
2285
2285
|
* Pre-fix `du -sh` didn't activate -h because we checked for literal
|
|
2286
2286
|
* `-h` only — `-sh` is a single arg containing both flags. POSIX
|
|
2287
2287
|
* conformant short-flag stacking.
|
|
@@ -2383,7 +2383,7 @@ function mkDiff(vfs) {
|
|
|
2383
2383
|
};
|
|
2384
2384
|
}
|
|
2385
2385
|
/**
|
|
2386
|
-
*
|
|
2386
|
+
* shell compatibility (2026-05-11): POSIX rm with proper -f semantics.
|
|
2387
2387
|
*
|
|
2388
2388
|
* lifo-sh's rm calls `r.vfs.stat(...)` and catches `e instanceof VFSError`.
|
|
2389
2389
|
* Our SqliteVFSProvider's stat method delegates to SqliteVFS.stat which
|
|
@@ -2401,7 +2401,7 @@ function mkDiff(vfs) {
|
|
|
2401
2401
|
* contract is honoured.
|
|
2402
2402
|
*/
|
|
2403
2403
|
/**
|
|
2404
|
-
*
|
|
2404
|
+
* shell compatibilityb (2026-05-11): registry-level echo so `X | xargs echo`
|
|
2405
2405
|
* resolves. lifo-sh's `echo` is a Shell.builtins entry, NOT in the
|
|
2406
2406
|
* registry map. xargs's cross-command dispatch goes through
|
|
2407
2407
|
* registry.resolve(name) — without a registry entry for echo it falls
|
|
@@ -2680,7 +2680,7 @@ function mkLs(vfs) {
|
|
|
2680
2680
|
};
|
|
2681
2681
|
}
|
|
2682
2682
|
/**
|
|
2683
|
-
*
|
|
2683
|
+
* shell compatibilityc (2026-05-11): registry-level cat (for xargs cross-
|
|
2684
2684
|
* command dispatch). Behaves like lifo-sh's lazy cat: reads files (or
|
|
2685
2685
|
* stdin if none), concatenates to stdout.
|
|
2686
2686
|
*/
|
|
@@ -2692,7 +2692,7 @@ function mkCat(vfs) {
|
|
|
2692
2692
|
ctx.stdout.write(ctx.stdin);
|
|
2693
2693
|
return 0;
|
|
2694
2694
|
}
|
|
2695
|
-
//
|
|
2695
|
+
// shell compatibility follow-up: prefer ctx.vfs (Kernel.VFS, sees /dev
|
|
2696
2696
|
// mount) over the closure-captured SqliteVFS. Without this fallback,
|
|
2697
2697
|
// `cat /dev/null` errors with ENOENT because SqliteVFS doesn't know
|
|
2698
2698
|
// about the /dev provider mounted on Kernel.VFS. lifo-sh's
|
|
@@ -2855,7 +2855,7 @@ function mkTouch(vfs) {
|
|
|
2855
2855
|
}
|
|
2856
2856
|
function mkStat(vfs) {
|
|
2857
2857
|
return (ctx) => {
|
|
2858
|
-
//
|
|
2858
|
+
// shell compatibility follow-up: try Kernel.VFS (ctx.vfs) first so /dev
|
|
2859
2859
|
// mount paths resolve. Same pattern as mkCat.
|
|
2860
2860
|
const kvfs = ctx.vfs;
|
|
2861
2861
|
for (const f of ctx.args.filter(a => !a.startsWith('-'))) {
|
|
@@ -2988,7 +2988,7 @@ function mkRealpath(vfs) {
|
|
|
2988
2988
|
};
|
|
2989
2989
|
}
|
|
2990
2990
|
/**
|
|
2991
|
-
*
|
|
2991
|
+
* shell compatibility (2026-05-11): printf full POSIX format set.
|
|
2992
2992
|
*
|
|
2993
2993
|
* Pre-fix mkPrintf only handled %s and %d via simple replace —
|
|
2994
2994
|
* `printf "%x\\n" 255` output literal `%x`, `printf "%5d" 7` output
|
|
@@ -3213,7 +3213,7 @@ function formatOneArg(spec, arg) {
|
|
|
3213
3213
|
function mkTrue() { return () => 0; }
|
|
3214
3214
|
function mkFalse() { return () => 1; }
|
|
3215
3215
|
/**
|
|
3216
|
-
*
|
|
3216
|
+
* shell compatibility (2026-05-11): readlink stub.
|
|
3217
3217
|
*
|
|
3218
3218
|
* Real readlink reads the symlink target. Our VFS doesn't yet
|
|
3219
3219
|
* support real symlinks (ln -s currently does a regular file
|
|
@@ -3674,7 +3674,7 @@ export function registerUnixCommands(registry, vfs) {
|
|
|
3674
3674
|
// Mutating ctx.env inside a registered command therefore CANNOT
|
|
3675
3675
|
// propagate the var-assignment back to the shell. Builtins, by
|
|
3676
3676
|
// contrast, run inside the interp instance with direct access to
|
|
3677
|
-
// `this.env` (the real shell env). The wait builtin in shell
|
|
3677
|
+
// `this.env` (the real shell env). The wait builtin in shell/compat/r6 uses
|
|
3678
3678
|
// the same workaround.
|
|
3679
3679
|
//
|
|
3680
3680
|
// Keep the registry stub so `type read` reports "shell builtin" and
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dev-provider.ts — virtual /dev provider.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* shell compatibility (2026-05-11): pre-fix `cmd > /dev/null` and
|
|
5
5
|
* `cmd 2>/dev/null` returned `ENOENT: '/dev': no such file or
|
|
6
6
|
* directory` because /dev wasn't mounted. Standard Unix idioms
|
|
7
7
|
* (`make 2>/dev/null`, `cmd > /dev/null 2>&1`, scripts piping
|
package/dist/vfs/dev-provider.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dev-provider.ts — virtual /dev provider.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* shell compatibility (2026-05-11): pre-fix `cmd > /dev/null` and
|
|
5
5
|
* `cmd 2>/dev/null` returned `ENOENT: '/dev': no such file or
|
|
6
6
|
* directory` because /dev wasn't mounted. Standard Unix idioms
|
|
7
7
|
* (`make 2>/dev/null`, `cmd > /dev/null 2>&1`, scripts piping
|
package/dist/vfs/sqlite-vfs.d.ts
CHANGED
|
@@ -89,11 +89,11 @@ export declare class SqliteVFS {
|
|
|
89
89
|
* (deferWrite/clearPendingWritesForPath/flushPendingWrites/
|
|
90
90
|
* cleanupAfterDelete). Read by getStats() so /api/_diag/memory's
|
|
91
91
|
* `heap.breakdown.vfsInFlightBytes` is no longer a hardcoded 0.
|
|
92
|
-
* (N3,
|
|
92
|
+
* (N3, memory accounting cleanup.)
|
|
93
93
|
*/
|
|
94
94
|
private _pendingWriteBytes;
|
|
95
95
|
/**
|
|
96
|
-
* N2 (
|
|
96
|
+
* N2 (memory accounting cleanup). Sum of bytes currently held in the
|
|
97
97
|
* `chunks: []` spool inside writeStream(). Maintained per-chunk so
|
|
98
98
|
* a long-running drain shows live, not the steady-state 0.
|
|
99
99
|
* Reset (or decremented to the drained amount) inside writeStream's
|
|
@@ -304,7 +304,7 @@ export declare class SqliteVFS {
|
|
|
304
304
|
* heap estimator. We now maintain `_writeStreamSpoolBytes` that
|
|
305
305
|
* tracks the live spool contents during the drain; the diag's
|
|
306
306
|
* vfsInFlightBytes contributor now sums pendingWriteBytes +
|
|
307
|
-
* writeStreamSpoolBytes. The N2
|
|
307
|
+
* writeStreamSpoolBytes. The N2 failing probe asserts on this sum.
|
|
308
308
|
*
|
|
309
309
|
* Throws on SQLITE_NOMEM (with halve-retry per writeBatch); any
|
|
310
310
|
* iterator-source error propagates unchanged. Atomicity guarantee
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-vfs.d.ts","sourceRoot":"","sources":["../../src/vfs/sqlite-vfs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sqlite-vfs.d.ts","sourceRoot":"","sources":["../../src/vfs/sqlite-vfs.ts"],"names":[],"mappings":"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"}
|