Skip to content

v0.3.0 Release Notes

Codex Remote Control Lab v0.3.0

v0.3.0 covers the changes from v0.2.1 through the v0.3.0 release branch. It turns the phone bridge into a much closer desktop-style Codex control surface while keeping the safety boundary explicit: the Codex app-server stays on localhost, and LAN exposure remains the bridge's job.

Highlights

  • The browser UI is now generated from src/ui/Shell.jsx with npm run build:ui, giving the project a maintainable React source for the Codex-like shell instead of hand-editing the generated HTML.
  • The bridge UI now has a desktop-style left thread rail, central conversation, bottom composer, and right panel with artifacts, workspace files, and review tabs.
  • The left and right panels can be resized, and the mobile drawer/right-panel states now carry explicit accessibility attributes and focus handling.
  • Chat can show review digest cards for the current working tree or latest commit, including changed files, diff stats, and quick artifact-open actions.
  • The bridge can inspect workspace entries through /api/workspace and review summaries through /api/review while filtering local-only or sensitive paths.
  • Workspace, review, and file-open paths now follow the configured CODEX_WORKDIR, including files with spaces in their names.

Bridge And History Handling

  • scripts/thread-read.js adds a reusable thread snapshot helper that first serves live in-memory bridge history, then falls back to thread/read, and finally resumes a thread when the app-server requires it.
  • Active or starting bridge threads are detected before polling the app-server, avoiding noisy failures while a turn is still connecting or running.
  • History sync remains scoped to bridge-managed thread discovery; it helps after reopening or refreshing a thread, but it does not claim to inject live updates into an already-open normal Codex Desktop conversation view.
  • Review summary collection now uses async filesystem and Git subprocess work so workspace/review endpoints do not block the bridge event loop while scanning.

Debug And Operator Safety

  • .env.example now gives operators a public-safe template for repeatable local settings.
  • PHONE_DEBUG_NO_TOKEN=1 enables tokenless localhost-only UI debugging and binds the bridge to 127.0.0.1.
  • PHONE_DEBUG_BIND=lan must be added explicitly before tokenless debug mode binds to 0.0.0.0 for a trusted private LAN.
  • Debug-no-token mode skips startup notifications so tokenless URLs are not pushed into notification channels by accident.
  • README, security docs, and phone bridge guides now document the difference between token-protected LAN use, localhost-only debug mode, and intentional tokenless LAN debugging.

UI, Themes, And Evidence

  • The simple, cyberpunk, and botanical themes were retuned around the desktop-style shell.
  • The cyberpunk theme now uses green terminal/code-rain treatment, and the new Stigmata theme adds a high-contrast image-backed visual mode.
  • README screenshots and docs assets were refreshed to include the four-theme comparison and the updated mobile controls.
  • npm run check now verifies that public/index.html is in sync with src/ui/Shell.jsx before running syntax checks.

Contributors

Validation

  • npm test
  • npm run check
  • npm run docs:build
  • npm run screenshots:readme
  • git diff --check
  • xmllint --noout docs/public/release-header-v0.3.0.svg

Read the companion walkthrough: v0.3.0 Desktop Bridge Walkthrough.