What answers the bridge
The frame is sandboxed: it runs in an opaque origin with no access to the portal’s session, cookies or storage.tap is the same in-memory mock your own tests build, with every scope
granted, tap.ui.size fixed at slot, and the sandbox fixtures behind tap.data — so a
component that renders here renders the same way under
renderWithTap. Navigation, toasts,
confirmations and action runs are recorded and go nowhere; storage writes live in memory for as
long as the frame does.
A procedure is the one call with no answer here. The frame registers no server handler, so
tap.server.<name> raises TAP_UNKNOWN_PROCEDURE and a widget that reads through
useTapServer renders its error state. Procedures are answered by a live session started with
--server <tunnel url>, and nowhere else while you are developing.
What the preview does not do: mint an install token, read the owner’s data, write hosted
storage, or reach your server. For those, use
live preview.
Previewing a deployed build
Anyhttps remote entry works — paste it into Remote entry, or point the CLI at it:
https remote entry, so it previews here
with no configuration on either side and nothing in Tappify depends on how you built it.
http is accepted only for localhost and 127.0.0.1. Anything else comes back as “That
remote entry was refused. The preview loads https URLs, and http only from localhost.”