Repository navigation
fix(http): stop Bun JSON Streamable HTTP memory climb + CI plateau gate - #1390
Merged
Merged
Conversation
MCP SDK JSON-response mode never cleans `_streamMapping` after resolveJson, so sessionful multiturn retained one entry per POST and Anonymous climbed (~200→~3444 MB on the week-1 board). Restore orphan prune after each POST, close stateless transports, default 30m idle eviction + max live sessions, and clear IFC labels on session end. Export governance from clawql-api so native-tool wrap resolves. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Tip lean probe and week-1 board no longer match the published plateau. Label Anon MB figures as measured on the October 15 build until remasured after the host memory climb fix. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Short sustained known-op run fails if Anonymous climbs past a slope limit or hard ceiling, so the next streamMapping-style leak fails at merge time. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Root package.json briefly gained viem from a local payments rebuild and desynced package-lock, failing npm ci on every job. Remove it and format the version-scoped docs that Prettier flagged. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Bun CI lacks node:sqlite/`sqlite`, so default CLAWQL_SECRET_STORE=sqlite killed host startup. Point the gate at memory secret + auth-audit stores. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Expose stream map sizes on /healthz when CLAWQL_BENCH_STATS=1 and add a ~300-POST regression that fails if the host orphan prune disappears. Document the private-field workaround against typescript-sdk#2559. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Exact pin until a published v1.x release includes the JSON-mode _streamMapping cleanup (typescript-sdk#2559 / #2747). Re-run the bound regression test on any SDK bump. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Schedule a full 30k Anonymous slope gate (PR stays at 2k). Document that the Oct 12 prune never reached main, link upstream #2559/#2747, and keep the Oct 15 lean floor (~130→170–260 MB) as a separate bisect item. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
CI showed prune holding ~450 MB flat after cold start, but slope from the first sample and a 450 MB hard cap still failed. Baseline after 20% warmup and raise the default ceiling so the gate catches real climbs, not tip lean. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Bump next to 16.4.2 (www/dashboard/docs), dompurify to 3.4.17 (docs), and ip-address to 10.7.4 (root + overrides). Drop unused sprintf-js ignore so osv-scanner tip stays clean for the memory-plateau PR. Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stops Bun JSON Streamable HTTP memory climb from orphan
_streamMappingentries, adds a CI plateau gate, and clears tip OSV drift that blocked merge.Changes
_streamMappingon JSON-response Streamable HTTP so Bun RSS plateaus under long session reuse--smolJSON memory plateau gate (PR 2k + nightly 30k)next16.4.2 (www/dashboard/docs),dompurify3.4.17 (docs),ip-address10.7.4 (root + overrides); drop unused sprintf-js ignoreTest plan
Follow-up
Resume Bun host density vs peers (~99–102 MB) once this lands; Rust dataplane path is rejected (ADR 0016 / #1396).