# Issue 25639 runtime proof

Environment: fs-24, Linux, real T3 dev server (`vp run dev`), isolated worktree `.t3` state, web http://localhost:5921, backend port 13961. Browser: T3 server-owned chrome-headless-shell 156.0.8078.70. No UI rendering changed.

The same authenticated browser sent Effect JSON RPC `preview.open` through `/ws?orchestrationProtocol=2`. A short-lived RPC ticket was obtained through the normal browser-session endpoint; tickets and pairing credentials are omitted here.

Input: `{ threadId: <isolated project thread>, url: "about:blank" }`.

Before: implementation file restored verbatim from base 4034b5f6b5, running in the dev server.
```
Exit Failure
PreviewInvalidUrlError
inputLength: 11
reason: parse
protocol: https:
cause.message: Invalid preview URL (parse: https:; input length 11).
```

After: implementation file restored verbatim from head 49ad3bf500de6ffaf32b96f74b12da7af06ffe57, running in the same dev server and state.
```
Exit Failure
PreviewInvalidUrlError
inputLength: 11
reason: unsupported-protocol
protocol: about:
cause.message: Invalid preview URL (unsupported-protocol: about:; input length 11).
```

The live `preview_open({url:"about:blank"})` tool independently reproduced the original parse error. `preview_open({})` opened a healthy blank tab. In the isolated app, `preview.open` without `url` also returned Success with an Idle blank tab before and after the change.

The change preserves rejection of unsupported schemes; it does not add about: navigation. The tool already documents omitting `url` for a blank tab.
