# RTT regression audit checkpoint Status: branch-local checkpoint, not release notes. ## Signals - `openclaw-rtt` Discord main rows appeared to jump from about 5-7s p50 to about 24-27s p50 after the 2026-05-16 main window. - Downloaded fast/slow Discord artifacts showed the old "fast" run included observed message `triggerTimestamp` and `timestamp`, while newer redacted runs kept only scenario metadata. - `openclaw-rtt` `scripts/import-discord-rtt.mjs` falls back to whole summary duration when observed-message timestamps are missing. That made a redaction shape change look like transport RTT regression. - Slack and WhatsApp RSS rows showed recurring first-sample max RSS outliers around 6-9GB while later warm samples sat far lower. That points at command-level cold-start RSS measurement before retained gateway heap. ## Fixes in this branch - `extensions/qa-lab/src/live-transports/discord/discord-live.runtime.ts` preserves safe timing fields through metadata redaction so importers can keep measuring reply RTT without exposing Discord IDs or content. - Discord QA scenario summaries now include `rttMs` for direct importer use. - `extensions/qa-lab/src/suite.ts` records gateway-process RSS start/end/peak and checkpoint samples in `qa-suite-summary.json`, giving RTT importers a gateway-level metric separate from `/usr/bin/time` command max RSS. ## Proof so far - Focused local wrapper: `node scripts/run-vitest.mjs extensions/qa-lab/src/live-transports/discord/discord-live.runtime.test.ts` passed 30 tests. - Focused local wrapper: `node scripts/run-vitest.mjs extensions/qa-lab/src/suite.test.ts extensions/qa-lab/src/suite.summary-json.test.ts extensions/qa-lab/src/live-transports/discord/discord-live.runtime.test.ts` passed 52 tests after the final rebase. - Testbox `tbx_01krvces8y0c99nzra2a90jg13` ran `pnpm openclaw qa suite --scenario channel-chat-baseline` and emitted gateway RSS trace fields. Observed sample: wall `15784ms`, gateway RSS `664403968 -> 689852416`, peak `689852416`. - Testbox `tbx_01krwb9k7cbktytpjprxcydfbk` ran `pnpm check:changed` and the command exited 0. The wrapper Actions run `26008757251` still reported `in_progress` after the box was stopped. - Testbox `tbx_01krwbsg15xvjdgpcz8fxq1htz` ran `OPENCLAW_QA_GATEWAY_HEAP_CHECKPOINTS=1 pnpm openclaw qa suite --scenario channel-chat-baseline`. The sample passed and recorded heap checkpoints plus RSS trace: wall `20112ms`, gateway RSS `655036416 -> 953790464`, peak `1051258880`, heap snapshots `154M` and `165M`. - After rebasing onto `b5046968f61`, a fresh Testbox `pnpm check:changed` attempt on `tbx_01krwbsg15xvjdgpcz8fxq1htz` was blocked before reaching the changed gate: pnpm install rejected newly published `@earendil-works/pi-ai@0.74.1` under `minimumReleaseAge`. - After rebasing again, Testbox-through-Crabbox `tbx_01krwcxpxx1n22t8jmvcj40228` ran `pnpm check:changed` with an explicit `origin/main` fetch to repair the delegated shallow checkout's merge base, and passed. The run escalated to all changed-gate lanes in the delegated checkout, so it covered typecheck, lint, and runtime import-cycle checks rather than only the narrow qa-lab diff. - Follow-up branch `perf/discord-rtt-summary-import` in `openclaw-rtt` updates `scripts/import-discord-rtt.mjs` to prefer the new summary `rttMs` field before observed-message or summary-duration fallback, and teaches Discord and live-transport importers to ingest gateway RSS summary metrics. `npm test -- scripts/import-discord-rtt.test.mjs scripts/import-live-transport-rtt.test.mjs` passed 19 tests and `npm run check` passed. ## Still weak - No retained-heap regression has been proven. The first heap-checkpoint sample grew by about 11M on disk across the scenario, which is worth comparing across repeated warm samples before calling it a leak. - The branch fixes OpenClaw artifact quality. `openclaw-rtt` has a paired importer branch for summary `rttMs` and gateway RSS metric ingestion; dashboard presentation of gateway RSS remains a later reporting decision. - Gitcrawl data was stale for the newest RTT window, so live `gh` history was the source of truth for 2026-05-16 and 2026-05-17 PR attribution.