Operator board · measured 9 Sep 2026
Four Stripchat steps, walked headlessly at your real 1320×900 and measured. Every number below came off the live board, not from reading the code.
| Step | Screen used at 900px | Words | VNC |
|---|---|---|---|
| 1 · Existing account | 123 | — | |
| 2 · Age / face verification | 76 | — | |
| 3 · VPS browser ready | 132 | yes | |
| 4 · Oracle sees a session | 92 | — |
Steps 2 and 4 leave roughly half the screen empty. Step 3 — the only one that needs the desktop — is the one that overflows, so the VNC gets pushed under the fold. Three buttons render 926px wide to hold ~30 characters of label.
Every account carries a machine-readable reason. The step page renders only the bare state word and then gives you a generic instruction. The diagnosis already exists in the payload — it is thrown away at the last moment.
stripchat trillionzrecords249 cookie=expired reason: transparency_logged_out camsoda trillionzrecords cookie=unknown reason: rendered_session_age_gate chaturbate trillionzrecords cookie=unknown reason: api_credentials_missing — live /board/api/board, 9 Sep
This is why "we're already logged in" and the board disagree. You are reading the platform; Oracle is reading its own evidence, and it says transparency_logged_out. Three different causes needing three different fixes, all flattened to the same dead-end screen.
The step catalogue was written from the 31 Aug client call, where Chaturbate was the main platform and the others were "funnel-only". That decision is still literally in the code as everyPlatform: false on the profile step.
So Stripchat silently drops Profile, bio, background, apps and gives you four steps designed around a different site. Two of those four embed the identical VNC panel with no step-specific context — which is exactly why it feels like the same screen every time.
You described it correctly: the partition has to exist with the Google session before any platform account makes sense. It is nowhere in the checklist. Worse, the partition is keyed per account, not per model:
persist:oracle-platform:{modelId}:{platform}:{accountHandle}
There is no shared per-model partition layer. So "set the Gmail up on the model's partition once" doesn't map onto what's built — today it would need seeding into each account partition separately. That gap is worth a decision before any UI work.
The engine already exposes platformSession.openLogin, platformSession.verify, managedChromium.launch and streamKey.deliver as real managed commands, and the onboarding→browser chain was proven working today at 12:12Z. The per-account reasons are in the payload. This is a presentation and sequencing problem far more than a capability problem.
Ordered by real dependency, with the prerequisite promoted to step 0. Blue rows are new.
Platform pills, not stacked cards. The three platform cards and the account dropdown become one pill row — Chaturbate 0/5 · CamSoda 0/4 · Stripchat 2/4. Click a pill, its steps appear beneath. The dropdown disappears; when an account is the only one, it's a label, not a select.
Steps open in place. No separate step route. The row expands with its own view, so context is never lost and there's no back-and-forth.
Every step gets a visual, or it isn't a step. VNC where you act on the screen; the identity form where you confirm data; the QR/link preview for what she receives. The 49%-empty text screens go away.
Cut the copy hard. ~130 words per step down to a one-line instruction plus the evidence. The three platform-wide disclaimers move to one line at the top of the checklist.