Repository navigation
Replies: 3 comments
|
Core SummaryThe bundled codex-cli 0.160.0 app-server operates primarily as a stateless or checkpoint-logging JSON-RPC/IPC service rather than a fully transactional, ACID-compliant database coordinator. While it handles execution checkpoints and active-turn logging via thread/inject_items and thread/history APIs, it does not expose a formal, platform-enforced 2-phase commit (2PC) or strict caller-supplied pre-persistence registration boundary out-of-the-box for custom external clients.Detailed Answers to Your 6 Questions1. Operation-Start Boundary & HooksMechanism: The earliest observable operation-start boundary inside the bundled VS Code coordinator is handled via the transport/connection handshake and incoming JSON-RPC request lifecycle (initialize |
|
For the durability requirement, I'd separate the app-server acknowledgment from your application's own operation ledger. Unless the app-server protocol explicitly documents a crash-safe persistence guarantee, I wouldn't treat a successful JSON-RPC response as proof that a caller-defined operation record is durably committed. A safer host-side approach would be:
An idempotency key and a durable outbox could help with retries, although preventing duplicate external effects still requires cooperation from the executor. This doesn't establish what Codex 0.160.0 officially guarantees. I'd still want a maintainer-confirmed protocol contract for the exact acknowledgment and recovery boundaries you're asking about. |
|
Until a maintainer confirms the protocol contract, I’d separate that open question from testing the host’s own recovery path. A useful crash-injection matrix is: stop before submit, after submit but before ack, after ack but before the host records it, and during result persistence. On restart, compare the host’s durable operation ID and ledger with the supported history lookup, then retry and check for duplicate external effects. This can characterize caller-side recovery without treating JSON-RPC success as a durability guarantee.\n\nDisclosure: I work with BOMTOBE on Orke, a desktop workspace for Codex and Claude Code: https://orke.bomtobe.com/ |
Uh oh!
There was an error while loading. Please reload this page.
Environment: Windows x64, VS Code extension openai.chatgpt-26.930.51102-win32-x64, bundled codex-cli 0.160.0, release rust-v0.160.0, commit a956835.
We are clarifying existing supported behavior, not requesting validation of an application architecture. We inspected thread/inject_items and thread/history APIs. Injection exposes a checkpoint result, but active-turn input can still be pending; ordinary turn recording can log persistence errors and continue.
Does this deployed stack expose a supported operation-registration boundary, accessible to its calling host/coordinator, that persists a complete caller-supplied record before subsequent scoped work is released? If so:
If these guarantees are unavailable or unsupported in 0.160.0, please identify the unsupported parts. Please cite the applicable protocol/documentation or maintainer guarantee and distinguish any newer-version behavior.
All reactions