Skip to content

feat(app-server): add bounded guarded queue-only client - #108

Merged
abruption merged 9 commits into
mainfrom
feat/71-app-server
Oct 17, 2026
Merged

abruption merged 9 commits into
mainfrom
feat/71-app-server

Conversation

@abruption

@abruption abruption commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Current automatic-review corrections — 2026-10-18 KST

Exact head 564adb32c2d4c6def5388b654050299a8536dad6 fixes all three findings on aa4c4ff:

  • Bind the actual queue process to the reviewed build using initialize.userAgent and observed executable identity. Reject atomic binary replacement and symlink retarget before queue.
  • Require positive budget immediately before version/lsof probes; an expired owner check cannot start another process.
  • Revalidate owned app-server SQLite device/inode after both durable guard and final asynchronous owner verification, before one queue write. Same-path replacement is rejected, not just renamed paths.

Original regressions failed on the prior dist. Corrected focused app-server44/44; full317 total/312 pass/0 fail/5 Windows-only skips. Build/types, reproducible package/install/uninstall, repository/diff checks pass. Actual Darwin lsof fixture verifies opened descriptor identity; scripted wrong-build/storage/deadline cases are not new native Codex or live ACK qualification. These checks do not provide code authentication or an atomic filesystem snapshot.

Draft during correction, then Ready on this new head for fresh automatic Code/Security Review. Current-head CI/CodeQL and reviews must complete before merge; previous green runs are history. No bypass/publication/native resubmission.


Current authorized merge checkpoint — 2026-10-18 KST

Exact head aa4c4ff002638116174c305ed594b3919bc92b17 applies only #108's eight commits onto actual #107 squash 1e788be6b02c414b3c7de5bbad37afc7e293c2ff. The tree is byte-identical to locally validated projected head 01484c616a7ca0c146a45b2d1415e3abf1f42afa (tree 77c1f20e60a63ca6390470d782ae7d2c7b8d8d3c).

Local macOS arm64 Node24.16.0: full310 total /305 pass /0 fail /5 Windows-only skips; build/types, package/reproducible isolated install/uninstall, shorthand, repository/diff checks pass. #107's Claude continuity, inactive Codex binding, encrypted private journal, original-operation wait handling and regressions are preserved. App-server immediate-close/delayed-spawn cleanup and Cloud JSON/argv fixes are preserved.

Ready triggers fresh current-head automatic Code/Security Review; current-head CI/CodeQL must pass before normal exact-head squash. No manual mention, admin/protection bypass, live/native effect test or publication. User-approved order #106→#107→#108→#109, then release preparation. Earlier checkpoints below are historical.


Current refresh checkpoint — 2026-10-14 KST

  • Exact head: 1f27ad6ead66eb8a77249223d8264e1237d64524; latest published main base: a2057940ba19056fcaaa5551a7820f7414bd3bfa.

  • Rebased sequentially in dependency order 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. Each PR keeps base main for current-head full CI and CodeQL; later branches contain the preceding source dependencies and must be reviewed/merged in that order. This is branch preparation, not an integration merge into main.

  • Local macOS arm64 checks: 283 total; 278 passed; zero failed; five Windows-only skips. App-server tests 37/37; build, types, repository/diff and reproducible package/install/uninstall checks passed.

  • Conformance used the existing exact exported published Python 1.1.0 source 8ca77cf31254c8287a2593fe484bb30a7dba2727; hash-pinned oracle tests executed. Frozen contract bytes/hashes and historical validation records are preserved.

  • Published 0.3.5 version, finite skill matrix/pin, strict ordinary SSH response handling and Windows exit propagation are retained. No new native/live delivery, automated ACK or Linux/Windows observer qualification is claimed.

  • Current-head Actions completed successfully; automatic reviews remain a separate gate. Earlier green checks below are historical and do not verify this refreshed head. Draft, human review gate, no merge/tag/release/publication.

  • Final exact-head CI: 12/12 SUCCESS, CLI 38488693817 and CodeQL 38488689232, including both Windows-native Node 22/24. No rerun/bypass. Branch-scoped CodeQL open-alert API returned zero alerts. No new automatic Code/Security Review completion is claimed. GitHub reports MERGEABLE; the PR remains Draft.


Earlier PR history (superseded heads/checkpoints)

Scoped 0.4.0 review coordination — 2026-10-11 KST

The user approved keeping #69/#70/#71/#72 together with narrowly qualified macOS arm64 observation and explicit operator-confirmed receipts. Linux observation #130, Windows observation/private storage #131 and voluntary receipt producer/authenticated collector bootstrap #132 are Future extensions. No automatic ACK from text/turn/queue deletion, resend or receiver dedup is claimed. Required unsupported goals still refuse before effect.

This PR's own head remains 1eba3b56936330445e33063a478114f576a67c08 and its narrower source/evidence below is unchanged. Integrated scope/docs and added pure-validator/ACK/SSH tests are in PR #109 at d830ccaa1a459bfec0f3c67e2b0e682d99bc7734; that integration does not retroactively qualify this standalone head. Companion skill guidance remains pending in session-peer-skill #31. Human review/merge order remains #106 → #107 → #108 → #109 with current-main checks. No merge/version bump/tag/release/publication is performed by this coordination.

Current checkpoint — 2026-10-11 KST

Exact head: 1eba3b56936330445e33063a478114f576a67c08. Normal fast-forward push; main remains public 0.3.3 c0ed30273b9e9c0049df86ae3c38486a94289527. Draft, refs #71; no merge/publication or issue closure.

  • Finite native queue qualification now includes exact Codex 0.160.1 and 0.162.1 / macOS arm64, with pinned official source and generated schema hashes. The notification sets are 83 and 84 respectively; no future/minor/platform range is accepted.
  • Actual network-denied synthetic native queue fixture: one queue/add, exact client ID receipt/persistence, unloaded thread before/after. Separate owned native SQLite-descriptor and durable-guard refusal left zero queue rows. Initial harness failures used new homes/IDs afterward; no attempted intent was replayed. These are queue mechanics, not live consumption or receipt ACK.
  • Carries the wait-generation/persistence corrections and ordinary Python 1.1.0 source pin. The frozen shared handoff fixture/document are byte-identical to published 1.1.0; earlier changed-fixture claims are superseded. Ordinary comparison covers selected list/discovery projections, not full cross-runtime handoff conformance.

Local validation on this head

macOS arm64, Node24.16.0 / Python3.15.0, exact Python1.1.0 source 8ca77cf31254c8287a2593fe484bb30a7dba2727:

  • npm test: 278 total / 273 pass / 0 fail / 5 Windows-only skips, build/types included.
  • npm run test:package, repository checker, git diff --check, npm audit (0 vulnerabilities), fresh release helper pack and artifact: PASS.
  • First pack refused an existing old checkpoint artifact. That artifact was preserved separately and was not treated as this head's bytes; fresh pack/artifact then passed. Validation only, no publication.
  • Current-head CLI/CodeQL runs: 38107146537, 38107143927. 12/12 current-head checks completed SUCCESS, including release gate, Windows native22/24, CodeQL and GitGuardian; no reruns. No current-head Codex review is claimed from historical reviews; no manual review mention was sent.

Native Linux/Windows queue/observation, automatic receipts and generic owner-route capability remain unsupported. Live dedicated test-session evidence belongs to the separate #109 combined route and does not turn queue-only fixtures into a live ACK test. Required unsupported goals refuse before effect; no post-attempt fallback/retry. Human merge/release gates remain.

Earlier checkpoints (historical; superseded where noted above)

Current checkpoint — 2026-10-11 KST

Exact head: c5f96d0a7fecace3f739ade08b995a26aec4db92. Refreshed against published 0.3.3 main c0ed30273b9e9c0049df86ae3c38486a94289527 using fast-forward branch updates and integration merges; the earlier Cloud CodeQL fixes are retained. This stays Draft, refs #71, within the unchanged four-issue 0.4.0 milestone.

Changes in this checkpoint

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.

Validation actually performed

  • macOS arm64, Node 24.16.0; existing exact Python 1.0.2 conformance source 47c23713d0a2a3c11ebde6186afd8c43489b8b65, extracted from the local reference repository. No runtime/reference repin.
  • npm test (including build and test:types): 276 tests, 271 pass, 0 fail, 5 Windows-only skips.
  • npm run test:package: bash/zsh contract + in-place fixture-version lifecycle, reproducible package, isolated install/uninstall pass. Repository checker, release helper pack/artifact, npm audit (0 vulnerabilities) and diff check pass. These are unpublished validation tarballs, not the public 0.3.3 bytes.
  • Synthetic private homes, DBs, writer/SSH/native tools only for the new regressions. No user session delivery, transcript read, live injection/ACK, installed Codex 0.162.1 queue call, or Windows/Linux native qualification was performed.
  • The first integrated full run failed only on the inherited stale 0.3.1 SSH banner fixture. The fixture and inherited stdin example fix were merged from feat(handoff): add private correlation ledger and evidence CLI #107; the final full run passed.
  • Exact-head CI: 12/12 SUCCESS, including macOS/Ubuntu Node 22/24, Windows native 22/24, repository policy, release gate, CodeQL and GitGuardian. CLI run, CodeQL run; no reruns. These are fixture/CI results, not broader native integration qualification. No new current-head Codex review is posted as of this check; historical reviews are not counted, and no manual review mention was posted.

Remaining gates

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.

Required unsupported goals refuse before native effect. No fallback/retry after a possible native submission; queued/posted is not receipt ACK or completion. The milestone remains incomplete. No merge, release/version bump, npm publication, tag, protection change, operations change or issue closure is requested by this checkpoint.

Earlier implementation/validation record (historical checkpoint)

Scope

Refs #71 and #69. Draft queue-only client foundation, stacked on #107 (and #106); part of the unchanged 0.4.0 milestone. No CLI default migration, release or general observation/ACK qualification.

  • Add bounded native queue/add transport plus explicitly hermetic metadata fixture client. Freeze original scope; bound frames/traffic/RPCs/owner checks/monotonic deadline and owned process cleanup.
  • Native queue mechanics gate exact Codex 0.160.1/macOS arm64, recheck executable version/home/owner, require a durable caller-owned beforeEffect fence, issue at most one queue RPC. Attempt is marked before write; disconnect/malformed reply/timeout after a possible write never permits fallback/resend.
  • initialize suppresses all 83 notifications for the exact inspected native schema. queue/add validates only its own input echo and returns IDs; queue/list, full item/turn notifications, history, resume/start and model turns are excluded.
  • Include generated schema hashes, fixed official source commit d27764b82f7118f674371e6d6e76271d9d606edb, and sanitized isolated-native fixture facts. A new app-server process is not treated as the existing writer owner.
  • Package module explicitly; add portable client fixtures to Windows test command. Version remains 0.3.1.

Validation

  • Full local npm test: 188 total / 183 pass / 0 fail / 5 Windows-only skips; build/types pass, existing Python runtime reference unchanged.
  • App-server focused tests 31/31: original scope/owner races, single concurrent effect, pre-effect guard refusal, strict framing/limits, unknown after response loss, no resend, owned child/descendant cleanup.
  • One actual queue/add in a network-denied synthetic native home: queueAttempts=1, queueRows=1, client ID persisted at $.UserInput.client_id, own input echo/queue ID match, loaded threads=0 before/after, writer lock absent, has_user_event=0, no unexpected notifications or auth file. No real accounts/threads/models or second native effect. This qualifies queue mechanics only.
  • Package smoke/isolated install-uninstall/reproducible pack, repository checker, release pack/artifact and diff pass. Local artifact SHA-256 b84358f607fb931ecf2ace11ee9041772f63f0582c0d51a4da1dc7d494bd7ba6; not a published artifact.

Remaining gates

Other native versions/platforms, live owner integration, body-free production event route and receipt ACK are unsupported. The separate synthetic metadata protocol is never advertised as Codex native behavior. Default CLI still uses guarded legacy queue; #72 integrates a separately qualified read-only SQL projection. No merge, publish, tags, fleet or ops changes. #71 remains open until its remaining gates are resolved.

Latest storage-binding amendment

Head c228c7fcb49d28241923cc9718b958ce7c84fe07, base feat/70-handoff.
The config SQLite home wins over env and managed exact requirements can override
CLI values in native0.160.1. Pin both env and quoted CLI SQLite home, then prove
opened state/queue paths on the OWNED app-server PID before the effect guard.
Missing/mismatched proof refuses with zero queue/fallback. Direct native binary
proof is required; unverified launchers are unsupported. Managed policy can
initialize bootstrap files before this refusal; zero queue is the guarantee.
A separate network-denied native initialization-only fixture reached a refusing
beforeEffect guard once, with zero queue/thread rows and other home unchanged.
No second native queue effect occurred. SDK focused31/31, build/types pass;
combined stack at 73533fa full230/225/0fail/5skip. Latest exact head all eight
CLI jobs and GitGuardian success; main-retarget CodeQL remains a gate. The prior
local artifact hash above is historical checkpoint d766d7b, not this head.

Comment thread test/transport.test.ts Fixed
Comment thread test/transport.test.ts Fixed
@abruption

Copy link
Copy Markdown
Owner Author

Review findings corrected and propagated through the implementation candidates. All three Draft PRs now target main; each exact current head has successful macOS/Linux Node22/24, Windows Node22/24, release gate, CodeQL (Actions and JavaScript/TypeScript) and GitGuardian checks.

  • feat(handoff): add private correlation ledger and evidence CLI #107 / 52f233d: message-file contents are literal. Open stdin with different data cannot replace file '-' or block submission. --message - still reads stdin; framed SSH body '-' is literal. Old code reproduced a wait; new CLI fixtures7/7 pass.
  • feat(app-server): add bounded guarded queue-only client #108 / 53a656b: close/timeout/error/exit stop the registration lifecycle, detach spawn callback and prevent late re-registration/reaping. Immediate-close test delivers a delayed spawn event plus captured queued callback, verifies listener baseline and no second fake-PID reap. Old-code negative control failed; current app-server32/32 pass. No foreign process is signalled by the test.
  • feat(observation): add scoped metadata projection and bounded local waits #109 / f6c283c: SIGINT first retrieves the originating operation, and fence/submission/catch keep that projection. Regression adds another wait before effect, withholds queue response and interrupts: original stopped/exit130, submitted:null, newer terminal unchanged, exactly one queue attempt/no resubmit. Old-code negative control failed; delivery6/6 pass.

Combined focused build/types and45/45 fixtures pass locally. main-target exact-head CI/CodeQL success supersedes the earlier stacked-base gate note. Implementation release gates and Draft status remain; no merge/publication performed. Dependency review order stays #106 -> #107 -> #108 -> #109 despite their main comparison targets.

@abruption
abruption marked this pull request as ready for review October 17, 2026 15:16
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T15:30:56.110998Z 564adb3 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-17T15:30:52.460577Z 564adb3 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aa4c4ff002

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/app-server.ts
Comment thread src/app-server.ts
Comment thread src/app-server.ts Outdated
@abruption
abruption marked this pull request as draft October 17, 2026 15:21
@abruption
abruption marked this pull request as ready for review October 17, 2026 15:28
@abruption
abruption merged commit d645a69 into main Oct 17, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants