History

feat(orchestration): bound thread history and resume payloads

- Add paginated thread history with bounded snapshots and replay limits - Trim oversized wire payloads and support progressive mobile history loading

Julius Marminge committed 2 months ago

Commit 7d42d311 parent e3883a943 files · +4239 −211Browse files

Showing the changes to docs (1 of 43 files). Show all

Unified · Split

docs/internals/performance-regressions.md+30−0
@@ -0,0 +1,30 @@
1+# Performance regression checks
2+
3+The v2 transport has a focused regression command:
4+
5+```bash
6+vp run test:perf:v2-wire
7+```
8+
9+It exercises the real v2 projection and client reducers. This matters because the older
10+built-app benchmark fixtures seed v1 orchestration events; running those fixtures against a v2
11+client can produce reassuring timings while missing the active transport path.
12+
13+The v2 checks pin these invariants:
14+
15+- Client cold opens use a recent timeline window capped at 75 rows and about 1 MiB of encoded
16+ timeline data.
17+- The bounded snapshot does not retain the full duplicate conversation-message table.
18+- Older activity is fetched in bounded HTTP pages and merged without disturbing the live scroll
19+ window.
20+- Resume catch-up replays at most 128 thread events and 1 MiB of projected event JSON before
21+ replacing stale state with a current snapshot.
22+- Oversized dynamic-tool results and detail strings are reduced only at the wire boundary; the
23+ persisted event remains complete.
24+- Shell resume sends deltas plus compact repository-enrichment metadata, not another full project
25+ and thread snapshot.
26+- Known idle sends and interrupts do not fetch a full thread projection before dispatch.
27+
28+When changing projection schemas, paging, shell synchronization, or thread state, run this command
29+alongside the focused package typechecks and a real-client pass on every affected surface. Payload
30+budgets belong in these tests rather than logs or one-off recordings so regressions fail locally.