Route the evidence by owner.
MutationObserver::deliver proves callback delivery, not who registered it.
Preserve module URL, digest, observed root, options, and construction call stack.
Session log, API, query window, archive state.
React projection, scrollport, renderers.
WebView, preload scripts, process lifecycle.
One source boundary changes the diagnosis.
The official tree contains CLI and Web apps. Tracked production sources register no first-party MutationObserver; the matching occurrences are test probes. Bundled dependencies, dynamic plugins, preload scripts, or another artifact remain candidates.
Change one plane at a time.
whole profilebrowser / wrapperclean / injectedcontent / scaleContain without erasing the trigger.
Hide one Session while preserving its log and Workspace accounting.
Test immutable copies; never renumber, merge, or repeatedly edit the authoritative log.
Repair the feedback edge.
Observe the smallest owned root and ignore owned output nodes.
Compare old and desired values before changing text or attributes.
Cap records, scans, writes, and callback time while preserving navigation.
Sixteen gates before claiming a fix.
- 01Renderer PID and parent are exact.
- 02Native and browser traces correlate.
- 03Loaded script digests are recorded.
- 04Registration stack names the owner.
- 05Observed root and options are known.
- 06Shell-only A/B is controlled.
- 07Clean-client A/B proves absence.
- 08Session fixture is sanitized.
Primary evidence.
- WebView CPU loop report #4737
- rc.2 official applications
- rc.2 complex-history performance probes
- rc.2 Session archive contract
Find the callback before changing the Session.
The canonical runbook covers profile snapshots, observer instrumentation, wrapper/client A/B, sanitized fixture reduction, privacy, and all sixteen regression gates.
Read the complete runbook