mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
`sendReply` already refuses to write after the run settled, but only after `snapshotJsonValue` walked and copied the resolution. Binding resolution carries no seam-level byte cap, so a binding resolving a wide value after `maxWallMs`, an abort, or dispose settled the run spent host heap building a frame that was then discarded. The check moves ahead of the snapshot. Also in this change: - `readProcessStart` moved after `messageOf`. Inserting it between `messageOf`'s JSDoc and its body left that function undocumented and the orphaned block reading as a second doc for the reader; `verify-export-jsdoc` does not catch it because `messageOf` is not exported. - The README pair adds the disposed-runtime rejection to `run()`'s public contract, which `src/index.ts` has enforced all along. - Known Limitations records three deferred constraints that until now existed only in review discussion: the combined log-and-value peak the load gate does not model, the host-side per-member expansion of a wide binding reply (owned by `packages/core/session`, and shared with the worker-thread backend), and the absence of fd-3 backpressure for concurrent replies. - The Agent Note's same-group section records the teardown identity guard and its two rulings, including why an ABSENT start-time reading proceeds rather than withholding the signal, and that reading it as a mismatch is what turned the three same-group heartbeat cases red on Linux.