Repository navigation
feat(codex): add a shared bounded app-server client #71
Description
Public scoped 0.4.0 completion — 2026-10-18 KST
The user-approved limited scope is released as v0.4.0, npm latest0.4.0. Exact source dde3923efe116f87f38b1639b29b889d2b832e44, workflow39077096491 attempt1 and the reviewed/Actions/staged/public archive SHA256 84adc8b50ef8f03a2c2170e3c36a97b573f28a6bcbeb7dbc965e16c3b37a57c9 were verified. Exact-main CI/CodeQL, registry signature audit, Sigstore identity/source/subject verification and isolated install/removal passed. Protected environment and final npm approvals were completed by the user.
The four dependent PRs were merged in order and the release preparation #151 is merged. Companion skill candidate #37 in session-peer-skill was prepared and its exact profile/full candidate bytes reviewed; runtime publication does not publish that skill or adopt its pin. The published skill0.2.1 remains unchanged. Postpublication documentation record is PR #152, separately awaiting human merge, without changing the immutable publication source.
This closes the approved scoped development/release work, not every possible platform or automatic receipt route. Exact macOS Codex observation and explicit operator-confirmed receipts remain the included scope. Linux observation #130, Windows observation/private storage #131 and automatic voluntary receipt producer/collector #132 remain open follow-ups. No automatic ACK, receiver deduplication, generic exactly-once or broader native-platform qualification is claimed. Earlier candidate checkpoints below are historical.
Merged implementation checkpoint — 2026-10-18 KST
The user-authorized sequence #106 → #107 → #108 → #109 is merged. Exact final main is be6adb26f844e7158362a8fcd6d379fbe8d46864; CLI/release gate39046557287 and CodeQL39046557167 passed, including Windows Node22/24. Every PR merged by normal exact-head squash after its current-head CI and automatic Code/Security reviews; no admin/protection bypass.
The implementation retains the user-approved limited scope: exact qualified macOS Codex observation and explicit operator-confirmed receipts. Linux/Windows observation and automatic receipt bootstrap remain #130–#132. Publication/skill adoption is not implied by merge. Release preparation is PR #151, tracked in #150; human preparation merge and separate exact-source publication approval remain open. The older candidate/roadmap checkpoints below are historical.
Current roadmap — 2026-10-13 KST
- Target milestone: 0.4.0 — Delivery observation.
- Planning priority: P1 (
priority:P1). - Dependencies/order: Keep all four together; Draft docs(handoff): record the jointly frozen v1 design #106 → feat(handoff): add private correlation ledger and evidence CLI #107 → feat(app-server): add bounded guarded queue-only client #108 → feat(observation): add scoped metadata projection and bounded local waits #109, then current-main integration and companion guidance.
- Remaining scope: Keep approved macOS-qualified observation and explicit operator-confirmed receipts. Platform extensions and authenticated automatic collection remain follow-ups.
This section supersedes older milestone/version/priority statements below. Existing acceptance criteria, evidence limits and historical records remain applicable. Versioned milestones are provisional planning targets, not committed dates or implementation/live-test/merge/release authorization. P1 means a milestone prerequisite/current-release item; P2 a planned extension/research track; P3 later dependent work.
User-approved 0.4.0 scope — 2026-10-11 KST
The user approved finishing all four issues #69/#70/#71/#72 together with narrowly qualified macOS arm64 Codex client-ID observation and explicit operator-confirmed receipts. This changes the planned platform/receipt scope, not the frozen handoff schema or ordinary-mode contract. Candidate implementation and test evidence are in Draft PRs #106 → #107 → #108 → #109; this checklist records reviewed candidate work, not shipped support, merged acceptance or permission to publish.
Linux native observation is tracked in #130, Windows observation/private handoff storage in #131, and a voluntary receipt producer/authenticated collector bootstrap in #132 (Future — Agent integrations). Queue acceptance, turn completion, visible response and queue deletion are never automatic ACK. Native retry remains false. Required unsupported goals refuse before effect; no post-attempt fallback/resubmission. Existing SSH trust, writer and version guards remain.
Candidate acceptance evidence
- Qualify exact native Codex 0.160.1 and 0.162.1 / Darwin arm64 storage/protocol profiles; unreviewed versions/platforms fail closed. Linux/Windows native qualification remains feat(observation): qualify Linux Codex client-ID delivery observation #130/feat(observation): qualify Windows Codex handoff storage and delivery observation #131, not inherited from Python or a fake peer.
- Bound RPC framing, message/count budgets, owned process lifetime and cleanup. No trust/config/permission change or direct native state mutation; initial native bootstrap may create its policy-selected files before storage refusal, so zero queue is distinguished from zero filesystem activity.
- Preserve unique stable writer/storage/home/generation binding; at most one queue attempt and no fallback after possible effect.
- Public diagnostics/output contain no message body, transcript, secret or raw native stderr. Source SQL may evaluate body-bearing SQLite cells internally; body/error values never cross into JavaScript/ordinary output. This is not a blanket promise of no internal body access.
- Scripted app-server fixtures and narrowly scoped native evidence are documented separately in PARITY/VALIDATION. Local macOS Codex 0.162.1 client-ID/linked-turn evidence exists; ordinary KR/US queues and Windows harness tests do not qualify another native observer.
- Ordinary
codex queuestays default; documented best-effort fallback is allowed only before any app-server queue attempt. Required unsupported observation refuses before effect. - Human review, sequential merge, exact-main integration checks and separate exact-source release acceptance completed; public v0.4.0 evidence is recorded above.
This is not wake, side-session recreation, thread resume, receiver dedup or automatic receipt collection. Existing #27 wake work remains distinct.
Original issue plan (historical scope; superseded only by the explicit scoped acceptance above)
Codex delivery observation (Python #181, study) and bounded wake (#27) both need the experimental Codex app-server v2 protocol: thread/queue/add|list|delete with a caller-chosen clientUserMessageId, and thread/queue/changed, turn/started, turn/completed, item/completed notifications. TS currently only invokes codex queue.
This issue provides one bounded client that #72 and #27 can reuse.
Scope and completion criteria
- Independently validate the app-server protocol for explicitly listed Codex versions and platforms; refuse unvalidated versions instead of inheriting Python version claims.
- Bound process lifetime, message size, request/notification counts and timeouts; clean up owned processes on every path; never change trust settings or write native state directly.
- Respect writer exclusion and the existing live-writer revalidation; submit at most once per request.
- Do not log or return message bodies, transcripts or native stderr; expose fixed diagnostics only.
- Fixture tests with a stub app-server (no live accounts); document supported versions in PARITY.md.
- Keep the existing
codex queuepath as the default fallback.
Activity
abruption commentedon Oct 7, 2026
0.4.0 source work is available as a Draft stack:
All four issues #69/#70/#71/#72 remain in the single 0.4.0 milestone and OPEN. These PRs are partial source implementations, not publication/product acceptance. Automated receipt bootstrap, Windows private storage, original-sender SSH coordination, restart observation, full setup cancellation and real live/platform qualification remain release gates. Native local/SSH retry permission remains false.
Latest local integrated check at ce4741f: build/types; npm test 259 total / 254 pass / 0 fail / 5 Windows-only skips; package smoke/install-uninstall/reproducible pack; repository checker; release pack/artifact; npm audit 0; diff checks pass. Local package SHA-256 a06956e07b7c7723a51fe59160450cbcec5b7819f3afe671d34451596d7a6f10 is validation only, not a published or exact future main artifact. Independent findings on URI routing, generation/storage binding, filesystem bounds and wait concurrency were corrected with regressions.
Review order is #106 -> #107 -> #108 -> #109. Main retarget/rebase and exact-head CodeQL/CI are required before a future merge; stacked PR checks are not CodeQL completion. No merge, npm/stage/tag/fleet/protection changes performed.
abruption commentedon Oct 11, 2026
0.4.0 progress — 2026-10-11 KST
Draft PR #108 updated at
c5f96d0a7fecace3f739ade08b995a26aec4db92, integrating published 0.3.3 main without rewriting the previously reviewed Cloud fixes.Revalidate the original writer after the awaited durable beforeEffect guard and before a possible queue write. A deadline while that verifier is pending prohibits later writes. Refuse malformed nativeQueueOnce input before version/bootstrap work. Added focused guard-race, late-verifier and zero-bootstrap regressions.
Local
npm test: 271/276 passed, 0 failed, 5 Windows-only skipped; build/types, package lifecycle/install/uninstall, repository check, release pack/artifact, audit (0) and diff checks passed. Exact-head CI/CodeQL is now 12/12 SUCCESS, without reruns (CLI, CodeQL); fixtures are not live delivery/ACK or new native/platform qualification.Remaining: The exact native qualification remains Codex 0.160.1 / darwin-arm64. Current installed 0.162.1 is not qualified; no broader platform/version acceptance is claimed.
All four issues stay in 0.4.0 and remain open. The frozen handoff design controls effect/evidence semantics: required unsupported capability refuses before effect; best-effort legacy fallback is permissible only before any app-server submission may have happened. A bare correlated reply is not authenticated machine ACK. Status/wait/recovery never resubmit. This record does not approve merge/release/publication or silently repin the historical oracle.
abruption commentedon Oct 17, 2026
Completed within the user-approved scoped v0.4.0 release. Public source/artifact/signature verification and explicit limits are recorded at the top of this issue. Follow-ups #130–#132 remain open.