diff --git a/docs/codex-app-backend.md b/docs/codex-app-backend.md index 6a2bbd8eb22..857c7f891e1 100644 --- a/docs/codex-app-backend.md +++ b/docs/codex-app-backend.md @@ -149,6 +149,19 @@ read_thread after archive: transcript still included the initial and follow-up completed turns. ``` +Separate 2026-07-06 shell-harness rerun attempt evidence: this harness did not expose callable `create_thread`, `read_thread`, `send_message_to_thread`, or `archive` host tools, so it could not perform an independent same-day rerun from shell. +Targeted tool discovery for those names surfaced GitHub and Gmail connector tools only, not Codex Desktop thread host tools. +The requested shell-harness smoke output files were absent: + +```text +$ ls -l state/codex-app-host-smoke-20260706.status data/codex-app-host-smoke-20260706/report.md +ls: data/codex-app-host-smoke-20260706/report.md: No such file or directory +ls: state/codex-app-host-smoke-20260706.status: No such file or directory +``` + +Prior 2026-07-03 host-tool smoke evidence is preserved as historical confirmation. +That run used thread id `019f2947-f75e-78b2-aebc-f57ef1b5b399`, wrote `state/codex-app-host-smoke-j3.status` and `data/codex-app-host-smoke-j3/report.md`, appended `working: host thread wrote status` and `done: follow-up delivered`, and archive/read-after-archive still returned the transcript with the thread no longer loaded. + Result: a Desktop-owned Codex thread can write Firstmate status files when the prompt gives it the absolute status path and the Desktop permission context can write that checkout. The return channel is real at the Codex Desktop host-tool layer. @@ -167,10 +180,10 @@ The available Codex CLI and app-server probes found useful pieces but not a supp - A raw proxy attempt against the Desktop control socket did not accept plain JSON-RPC framing. That is not enough to add `codex-app` to `FM_BACKEND_KNOWN` or `FM_BACKEND_SPAWN`. -A Firstmate backend must be able to create a thread, start or continue turns, read live state while turns run, and archive/stop the same endpoint through a Codex Desktop-supported shell-callable API. +A Firstmate backend must be able to create a thread, start or continue turns, read live state while turns run, and archive/stop the same endpoint through a stable Codex Desktop-supported shell-callable API. Shipping a local ledger would only record intentions; it would not supervise the actual Desktop thread. -## Required Codex Desktop bridge +## Required Codex Desktop bridge before implementation Firstmate should implement a Codex App adapter only after Codex Desktop exposes one of these supported interfaces: