Skip to content

v0.3.0 Desktop Bridge Walkthrough

Codex Remote Control Lab v0.3.0

v0.3.0 is the release where Codex Remote Control Lab stops feeling like a narrow phone page and starts behaving like a compact desktop control surface. The project still keeps the same safety model, but the day-to-day UI now gives operators the pieces they expect when they are reviewing work, opening artifacts, and switching between threads.

A Maintained Shell Instead Of Hand-Edited HTML

The shell now starts in src/ui/Shell.jsx. scripts/build-ui.mjs renders that React source into public/index.html, and npm run check fails when the generated HTML is stale.

That matters because the UI now has enough structure that direct HTML editing would be easy to drift. The React source keeps the sidebars, composer, model menu, panel tabs, and accessibility labels in one place.

Review While You Chat

The bridge can now show a review digest in the conversation. It looks at the working tree first and falls back to the latest commit when there are no uncommitted changes. The digest shows changed files, additions and deletions, and quick-open cards for files the artifact panel can display.

This does not replace a real code review, but it shortens the loop: a phone or secondary browser can see what changed without jumping back to the terminal first.

Workspace And Artifact Panels

The right panel has separate artifact, workspace, and review modes. Workspace listing is intentionally bounded: it limits traversal depth and count, sorts directories first, and skips local-only paths such as .env, .phone-token, .codex-home*, .uploads, and node_modules.

The UI also supports resizing the left thread rail and right panel. Those widths are stored in browser local storage, so a repeated operator setup does not need to be rebuilt every time the bridge opens.

Safer Debug Modes

Local UI debugging can now be tokenless without pretending that tokenless LAN sharing is safe by default. PHONE_DEBUG_NO_TOKEN=1 binds the bridge to 127.0.0.1 and prints a localhost URL. To expose tokenless debug mode on a private LAN, the operator must add PHONE_DEBUG_BIND=lan explicitly.

That split keeps the normal path clear: LAN usage remains token-protected unless the operator intentionally opts into a trusted-network debug exception.

Visual Evidence

The README evidence set now includes refreshed desktop and mobile screenshots, a four-theme comparison, and the new image-backed Stigmata theme. The screenshots are not just decoration; they are the public proof surface for the layout and theme work that landed in this release.

Validation Trail

The release branch was checked with the Node test suite, generated UI freshness check, JavaScript syntax checks, VitePress docs build, whitespace diff check, and SVG XML validation for the new release header.