Releases: orangeofcarl0-sys/dsh-large-proj-perf
Release list
v1.1.1 — fix chunked materialize (cordis Proxy signature check)
Fix
chunked materialize was silently never installed since v1.0.0: ctx.get('sessionPersistence') returns a cordis Proxy, and String(proxy.encodeMaterialization) is [native code] (bound shadow method), so the source-signature check always failed. The fork-seed full-serialization OOM fix never actually ran in production — the cause of the reported model-select / message-send lag.
Now the check reads the prototype method (real source), with own-property fallback for mocks.
Verified
- Log confirms
chunked materialize installed (chunk=50000 events/frame) - 51 tests ALL PASS
- dsh stable (web 2.9s startup, mem 1.32GB idle)
v1.1.0 — memory optimization integrated
What
Integrates the large-session memory config into the plugin:
preparedCacheSize(default 1) — runtime-trims the persistence cold-session LRU (default 5 full event trees → 1), evicting oldest ready entries to release ~2.8GB. No manualcordis.patch.ymledit needed.heapWarnBytes(default 6GB) — detects V8 heap limit at startup and warns when below threshold, pointing to the bundled launcher.scripts/start-dsh.ps1— recommended launcher that starts dsh with--max-old-space-size=8192(the one thing the plugin can't do in-process, since heap cap is a V8 startup flag).
Why
Large live sessions each hold a ~700MB event tree. Default V8 heap cap (~4GB) OOMs when several are open at once. This release handles the plugin-side part (LRU trim) and ships the launcher + startup warning for the process-side part (heap cap).
Install
dsh plugin --profile web add github:orangeofcarl0-sys/dsh-large-proj-perf51 tests ALL PASS.
v1.0.0 — merged large-session perf
What
Merges dsh-fork-perf and dsh-projection-warmup into one plugin:
- zero-copy fork — fork seed reuses deep-frozen event refs (346ms → 19ms)
- fast initFor — persistence structuredClone(seed) eliminated (135ms → ~0ms)
- chunked projection warmup — cold fold 20min → 200ms on 74万-event sessions
- fork cache backfill — abandoned forks keep projection rows
- chunked materialize — fork seed serialization split into zstd frames (no 500MB string / RangeError)
- cold-session backfill (opt-in)
Install
dsh plugin --profile web add github:orangeofcarl0-sys/dsh-large-proj-perfSupersedes dsh-fork-perf and dsh-projection-warmup (both archived). 46 tests ALL PASS.