Bound memory when summarizing and finalizing large recordings
Capture currently calls summary after target exit; summary loads and retains every decoded event/draw and per-scope sample vectors. Replace this with a checked serial snapshot event reader and incremental summary aggregates, preserving summary output, timestamp semantics, recovery and corruption errors. Keep full-detail viewer loading unchanged. No games launched and no original captures modified. Acceptance: summary/finalization retains at most one decoded event plus snapshot index and aggregate metadata rather than all decoded recording data; synthetic regression verifies memory under a process memory limit, summary equivalence and reader error/recovery behavior; workspace formatting/check/tests pass. Verified: serial EventReader pins the committed index/open inode, reuses existing validation/decode and stops on corruption. Capture/standalone summary uses incremental counters, first-profile statistics and per-name count/sum/max, preserving wrapped timestamps. Synthetic 384-event fixture has 768 MiB decoded draw labels: restoring full Trace::open in summary fails allocation under 256 MiB virtual-memory limit; streaming passes with expected profile/sample/timing/drop output. Reader tests cover pinned snapshots across commits/compaction, torn-index fallback, payload corruption and missing session. 81 active workspace tests pass; one pre-existing storage stress test remains ignored. Formatting, workspace check, strict all-target Clippy, diff checks and release workspace build pass. No games launched or existing captures changed. Viewer/inspect still materialize full trace; summary retains index, one event, and per-distinct-name aggregates (not strictly constant total memory). Changes uncommitted.
Checklist
2 of 2 complete- Implement checked streaming snapshot iteration and incremental summary with preserved output semantics.
- Verify synthetic large-recording bounded-memory regression, error handling and workspace validation.
- Area
- Personal tooling
- Project
- Wayrender
- Kind
- Bug
- Task ID
tsk_3u2kz2dqwf- Updated