Repository navigation
Replies: 2 comments
|
Fix branch is now available: https://github.com/damokelis/deepseek-harness/tree/fix/inspector-retained-state-budget The new deterministic regression fails with the original budget and passes with the fix. Added asynchronous growth/disposal coverage and real Loader+Worker growth under a small frame limit; truncated trees remain queryable. Changed publisher scoped coverage is100%; focused tests, Oxlint and required documentation/type checks passed (one initial test typing error was corrected). Attempted to open a PR: REST pulls endpoint returned404, and GraphQL CreatePullRequest returned FORBIDDEN for this contributor despite successful fork push. Maintainers: is external PR submission restricted? Please review the linked fix and advise the supported contribution path, or cherry-pick if appropriate. No installed Desktop update or deployment is claimed. |
Additional reproduction on Windows 11 — and confirmation the throw still ships in every published versionEnvironment — Windows 11 26H2, DeepSeek Harness Desktop, profile install Symptom — the desktop shell reports "应用无法启动或已意外停止" ("app failed to start or stopped unexpectedly"). followed by Mechanism — the Cordis-tree collector trims against // lib/index.js:1082
stateFits() {
return jsonByteLength([...this.state.values()]) + SOURCE_FRAME_OVERHEAD_BYTES <= this.options.maxFrameBytes;
}The two budgets therefore differ by tens to hundreds of bytes. Once the plugin tree approaches the 128 KiB default, the collector's trim "succeeds" while Not fixed in any published version — I unpacked the npm tarballs of Local mitigation that works (in case it helps whoever lands the fix): raise Happy to test a build if one appears. |
Uh oh!
There was an error while loading. Please reload this page.
Observed behavior
With the optional Inspector profile enabled, growing the live Cordis tree can terminate the Desktop Host with an uncaught exception:
Observed on Windows x64 and reproduced on macOS arm64 with Desktop 0.2.1-alpha.1, Electron 44.0.0, Node 24.18.1. No private conversation data or original filesystem paths are included here.
The macOS reproduction used the installed Desktop application, enabled Inspector and incrementally registered disposable no-op runtime plugins via Inspector CDP. The Host exited with code 1 and generated the same error stack. The last queried tree was not necessarily the crashing snapshot, so no exact trigger size is claimed.
Expected behavior
Cordis tree growth should be truncated within the complete retained-record byte budget without terminating the observed Host.
Suspected implementation mismatch
Host and Client pass
maxFrameBytes - 4096to the Cordis collector as a payload-only budget.InspectorSourceBuffer.stateFits()checks the serialized array of records containingmonotonicMs,topic, andpayload, plus 4096 bytes. A snapshot can satisfy the former budget while violating the latter.A deterministic test creates a bounded Cordis tree and chooses a frame limit equal to its snapshot payload length +4096. Publication with the existing implementation throws the exact exception above. Reserving the record envelope before tree collection makes the test pass.
Related production behavior
Local node and team publishing succeeded with a smaller tree. Thus this is not a claim that every node/team publication crashes; mutation under a sufficiently large tree is the relevant condition.
All reactions