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
mentionitems 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/readreturns 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:
codexuinow launchescodex app-serverwithapproval_policy=neverandsandbox_mode=danger-full-accessby default. -
Non‑Termux bootstrap: Added logic to auto-install official
@openai/codexand trigger login when missing on non‑Termux environments. -
Termux crash mitigation: Hardened SPA fallback handling when
dist/index.htmlis missing, plus guidance to avoidnpxtemp cache paths. -
Command naming: Added
codexappas a CLI alias while keepingcodexuifor compatibility; attempted unscoped rename tocodexuibut npm naming policy blocked it. -
Publish path: Began migrating toward
@friuns/codexappwith versioning/publish checks, noting npm propagation quirks.
Android / Playwright / Proot Notes
-
Playwright on Android: Confirmed
andClawdoes 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
8080responsive; logs show recent successful UI/API access. SSH connection throttling may explain intermittent “frozen” perception.
What’s Next
- Finish npm packaging alignment (finalize
@friuns/codexappversioning 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)