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 asmentionitems 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: Whenthread/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 whendist/index.htmlis missing, plus guidance to avoidnpxtemp cache paths.
Command naming: Addedcodexappas 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: ConfirmedandClawdoes 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: Port8080responsive; 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.
SOCIAL SHARE CARD GENERATOR