Raising maxValueBytes' load bound to ceiling-envelope assumed both budgets are metered in serialized (JSON-escaped) bytes, which held for completion values and logs but not the diagnostic: _cap_message capped by raw UTF-8, so a control-heavy message near maxValueBytes could serialize sixfold and breach the fd-3 frame ceiling — the silent worker-exit inversion the load check prevents. _cap_message now accumulates per-byte serialized cost (new _JSON_BYTE_COST table) and cuts the prefix that fits. Also reword the host SIGXCPU timeout message to name cpuSeconds as the configured ceiling rather than a budget a stricter inherited RLIMIT_CPU soft may undercut. Adds a control-heavy-diagnostic regression test. |
||
|---|---|---|
| .. | ||
| boot-write-failure.spec.ts | ||
| protocol-mirror.e2e.ts | ||
| protocol.spec.ts | ||
| residual-detach.spec.ts | ||
| runtime.spec.ts | ||