@@ -251,6 +251,32 @@ The [plugin guide](NATIVE_PLUGINS.md) documents the supported schema, example
251251bundle, limits, separate executable activation and partial-install recovery.
252252Legacy Python bundles remain on disk and are explicitly reported for conversion.
253253
254+ ## Sustained native-engine stress
255+
256+ ` node scripts/test-native-stress.mjs ` runs the native executable without a display
257+ against a disposable profile and scripted compatible provider. Fifty batches
258+ submit one task to each of four projects: ** 200 completed tasks / 405 provider
259+ requests** , including actual bounded reads of 105 KB files and roughly 32 KB
260+ assistant answers. Five deliberately stalled provider requests are cancelled.
261+ Ten manual subprocesses each produce 1 MiB of output; each must exit successfully
262+ and report truncated, nonempty bounded output.
263+
264+ The final local run sampled engine RSS at 83,464–85,352 KiB, with 84,908 KiB after
265+ the subprocess phase: 828 KiB above the 40-task warm-up sample. All samples had
266+ 14 descriptors and 21 threads; no engine-owned child processes remained at the
267+ sample points. SQLite integrity passes, exactly 200 completed and five cancelled
268+ jobs persist with no active jobs, and an early job remains readable after clean
269+ shutdown and reopening the profile. CI runs the same probe and uploads its JSON
270+ measurements or failure diagnostics under ` native-stress-diagnostics ` .
271+
272+ The regression allows less than 64 MiB RSS growth after warm-up, sampled RSS below
273+ 384 MiB, and at most twelve additional descriptors. These are regression bounds,
274+ not a general memory guarantee. Samples measure the engine process, not WebKit,
275+ model-server memory, or transient peaks between samples. Large repository maps,
276+ long individual conversations, desktop memory and longer-duration soaks remain
277+ separate release checks. ` SHADOW_STRESS_BINARY ` must point directly to the native
278+ ELF executable; an AppImage launcher is deliberately rejected for RSS attribution.
279+
254280## Native terminal interface
255281
256282The initial ` shadowcode tui ` frontend passes a real-PTY probe with ** 8 scripted
0 commit comments