CodeNomad/dev-docs
Pascal André 036a008c2c
fix(ui): restore the web preview entry on mobile, hide it through Remote Control (#1128)
Phones lost their only entry to the session web preview when the
conversation actions were reorganized: on mobile, the Full screen action
took the preview's place instead of joining it. Previews still work there
through direct (LAN) access, which serves them through the capability
iframe proxy. Remote Control, on the other hand, serves no preview content
(`/previews/*` is host-only), so its clients, desktop browsers included,
were offered a preview that could only fail to load.

The conversation header now offers the preview on every platform, inline
and in its overflow menu, with Full screen added on mobile. `/api/meta`
reports `remoteControl: true` for requests that arrived through the Remote
Control ingress, `lib/server-meta.ts` exposes it as `remoteControlClient()`,
and the shell hides the preview entry for those clients. The shell asks for
the server metadata on mount; the read is cached and shared with the other
callers, and the entry stays visible until a Remote Control answer arrives.

The Remote Control help page says, in all ten locales, that conversation
actions hide Open web preview there; dev-docs/UI_SHELL.md records the
convention.

Validation: a header-windows browser test drives the real conversation
header on a Pixel 5 profile and on desktop Chrome, with and without the
Remote Control metadata, and checks the inline buttons and the overflow
menu. It fails on the previous shell (no preview entry on the phone, and a
preview entry kept through Remote Control). meta.test.ts and the Remote
Control surface test cover the flag locally and through the real ingress
(the surface fixture's metadata gains the `host` field /api/meta needs).
The UI unit tests run by CI, the server routes, proxy and Remote Control
suites, the help checks and both typechecks pass.
2026-10-24 15:07:18 +02:00
..
architecture.md fix(previews): never forward the app's cookies to the previewed site (#1125) 2026-10-24 12:49:02 +02:00
BROWSER_AUTOMATION.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
BROWSER_DEVICE_EMULATION.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
CACHE_REFRESH_CONVENTIONS.md fix(transcript): keep streaming live across shared-stream reconnects (#1088) 2026-10-21 23:34:37 +02:00
COMPOSER.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
DESKTOP_DATA_PROFILES.md feat(settings): manage desktop data profiles and drop the startup question (#1123) 2026-10-24 09:46:30 +02:00
FILES_PANEL.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
HOTKEYS.md fix(transcript): jump between user messages with Alt+Up/Down, also from the composer (#1087) 2026-10-21 20:36:02 +02:00
INDEX.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
MISSIONS.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
MISSIONS_AUTONOMY.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
MISSIONS_RECURRING.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
MISSIONS_RECURRING_QUALIFICATION.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
NATIVE_INTERRUPTION_UX.md fix(forms): keep a live global Form's location for its reply (#1127) 2026-10-24 13:34:31 +02:00
OPENCODE_COMPATIBILITY.md chore(opencode): qualify and recommend runtime 2.1.4 (#1126) 2026-10-24 13:34:36 +02:00
OPENCODE_RUNTIME_SETUP.md fix(opencode): explain why OpenCode 2 cannot be installed beside an older command (#1093) 2026-10-22 13:49:20 +02:00
PALETTE_SOURCES.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
PANEL_EXTENSIONS.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
PLUGIN_CONTROLS.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
PROJECTS.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
PROVIDER_ACCOUNTS.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
REMOTE_CONTROL.md fix(server): authenticate the path the router routes, not the raw target (#1124) 2026-10-24 10:17:31 +02:00
RUNTIME_MAINTENANCE.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
SESSION_ENVIRONMENT.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
SESSION_HISTORY_NAVIGATION.md fix(timeline): mirror every transcript block in order and keep clicks on the clicked marker (#1086) 2026-10-22 05:32:43 +02:00
SESSION_HISTORY_QUERIES.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
SESSION_PRUNING_RPC.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
SESSION_PRUNING_SAFETY.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
SESSION_RECOVERY.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
SETTINGS.md fix(notifications): show Windows system notifications and keep their permission (#1109) 2026-10-23 04:03:26 +02:00
solidjs-llms.txt update blank session cleanup code for now session store logic 2025-11-27 20:18:22 -05:00
TAURI_UPDATER.md fix(tauri): stop AppImage helpers before exit so WebKit never crashes on quit (#1091) 2026-10-22 12:36:48 +02:00
TEXT_DISPLAY_BOUNDS.md fix(transcript): keep streaming reasoning rendering past the display bound (#1106) 2026-10-23 11:48:13 +02:00
TRANSCRIPT.md fix(transcript): load large tool images on demand instead of inline (#1118) 2026-10-23 23:38:00 +02:00
UI_CONVENTIONS.md fix(titlebar): show the hexagon logo at 20 px (#1116) 2026-10-23 21:59:53 +02:00
UI_SHELL.md fix(ui): restore the web preview entry on mobile, hide it through Remote Control (#1128) 2026-10-24 15:07:18 +02:00
USER_HELP.md docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082) 2026-10-21 16:59:43 +02:00
WORKTREE_SESSION_PLACEMENT.md fix(worktrees): omit a checkout mid-removal instead of failing the whole inventory (#1089) 2026-10-21 22:24:01 +02:00