category | happened | prevention
--- | --- | ---
fixture semantics | Earlier seeded active rows were cancelled at recovery. R here uses an event-backed `message.dispatch` with `defer_start`, captured while status was preparing and sessions were empty. | Create the active fixture after startup; assert the returned state before capture.
capability provenance | Both configured real adapters report true. C required a transient WebSocket projection fixture to change the attached session capability to false. | Label this client-policy evidence; retain upstream true, returned false, and effective-client false projections; do not call it negotiation proof.
subscription cache | The client resumed afterSequence and reused a cached true projection while the direct RPC returned false. | For the fixture, omit afterSequence on subscribeThread to receive a fresh snapshot; verify effective React projection read-only.
automation | Clearing a combobox with an empty fill cleared the DOM but left filtering active, so Favorites was absent. | Close and reopen the real picker before selecting Favorites; assert the actual selected target.
shortcuts | Default numbered model shortcuts are desktop-only; the browser reserves Ctrl+number. | Configure the supported opt-in Alt+1 → modelPicker.jump.1 binding with when=modelPickerOpen; explicitly limit the claim to this web binding.
fixture isolation | Copying the prior synthetic database retained its prior /tmp/ev-19687/workspace project root. The fresh source turn used that synthetic fixture workspace, despite separate home, display, ports, peer logs, and recordings. | Remap project workspace roots into the new temporary directory before starting future copied fixtures. No live ~/.t3/userdata was accessed.
Python tooling | A scratch script named inspect.py shadowed Python's standard library and broke a CDP inspection command. | Use read-react.py and avoid standard-library module names.
