docs/diagrams/user-session-stream-watch-plan.mmd

flowchart LR A["Selfbot gateway/session
user token"] --> B["VoiceSessionManager
screen-watch product surface"] B --> C["nativeScreenShare state
sharers + stream registry"] B --> D["clankvoxClient IPC"]

A --> E["VOICE_STATE_UPDATE<br/>VOICE_SERVER_UPDATE<br/>STREAM_CREATE<br/>STREAM_SERVER_UPDATE<br/>STREAM_DELETE"]
E --> C

D --> F["clankvox transport slot<br/>voice"]
D --> G["clankvox transport slot<br/>stream_watch"]

C --> H{"native watch ready?"}
H -->|yes| I["send STREAM_WATCH<br/>build stream credentials"]
H -->|no| J["share-link fallback"]

I --> G

G --> K["existing DAVE + video receive<br/>OP15 + depacketize + IPC"]
K --> L["existing Bun keyframe decode<br/>ffmpeg -> JPEG"]
L --> M["existing stream-watch ingest<br/>scanner + voice brain context"]
J --> M