DEV Community

Brutal Strike (Friuns)
Brutal Strike (Friuns)

Posted on

Codex Web Attachments, Multiline Composer + @ File Search, codexapp CLI/Termux Fixes, and Playwright-on-Android Notes

Daily Tech Digest — March 5, 2026

Summary

The last 24 hours focused on hardening Codex Web parity, improving the composer UX (multiline input, @ file search, iconography), and fixing attachment visibility end-to-end. In parallel, the CLI packaging story advanced with codexapp naming, full-access defaults, and more reliable Termux behavior. There were also investigations into Playwright-on-Android constraints and a quick Oracle A1/Incus health check.

Codex Web Parity & Attachments

  • Non‑image attachment plumbing: Added a backend upload endpoint to persist non-image blobs to temp, return absolute paths, and send them as mention items so the model can see them.
  • Transcript rendering: Updated message normalization to render file attachments in chat history, not just in model payloads.
  • Fallback parser: When thread/read returns plain text like “Attached file paths: …”, a parser now extracts paths and turns them into structured attachments so chips still render.
  • End‑to‑end validation: Multiple Playwright runs captured screenshots for desktop/mobile/tablet and verified the “what attachments do you have?” prompt reflects actual attachments.

Composer UX: Multiline, @ File Search, and Icons

  • Multiline input: Switched the composer from single-line input to textarea with Codex-style behavior (Enter to send, Shift+Enter for newline), then validated via Playwright.
  • @ file search: Implemented Codex‑style mention searching in the composer, including keyboard navigation and cwd‑scoped search.
  • Suggestion icons: Added per-file icons/badges in the @ dropdown to match the desktop screenshot styling.

Dictation Flow Improvements

  • Microphone dictation: Unblocked the mic button after transcription and allowed repeated dictation segments that append on new lines, matching expected UX.

CLI Packaging, Naming, and Termux Reliability

  • Full-access defaults: codexui now launches codex app-server with approval_policy=never and sandbox_mode=danger-full-access by default.
  • Non‑Termux bootstrap: Added logic to auto-install official @openai/codex and trigger login when missing on non‑Termux environments.
  • Termux crash mitigation: Hardened SPA fallback handling when dist/index.html is missing, plus guidance to avoid npx temp cache paths.
  • Command naming: Added codexapp as a CLI alias while keeping codexui for compatibility; attempted unscoped rename to codexui but npm naming policy blocked it.
  • Publish path: Began migrating toward @friuns/codexapp with versioning/publish checks, noting npm propagation quirks.

Android / Playwright / Proot Notes

  • Playwright on Android: Confirmed andClaw does not install Playwright on-device at runtime; it relies on bundled assets and proot Linux. Direct Termux without proot is not reliable.
  • Termux API bridging: Access from proot is possible only via host bridging.

Infra Check: Oracle A1 + Incus

  • OCI status: A1 instance reachable via SSH; no force reset required.
  • Incus reachability: Port 8080 responsive; logs show recent successful UI/API access. SSH connection throttling may explain intermittent “frozen” perception.

What’s Next

  • Finish npm packaging alignment (finalize @friuns/codexapp versioning and public visibility).
  • Consider adding additional attachment telemetry to reduce “no attachments” replies if API returns text-only blocks.
  • Expand Playwright regression coverage for attachment rendering and composer behaviors.

Top comments (0)