Skip to content

feat(receipt): add explicit local authenticated receipt bootstrap - #176

Merged
abruption merged 4 commits into
mainfrom
feat/receipt-bootstrap-132
Nov 3, 2026
Merged

abruption merged 4 commits into
mainfrom
feat/receipt-bootstrap-132

Conversation

@abruption

@abruption abruption commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Problem and resulting behavior

The runtime retains correlated handoff facts but has no installed receipt producer/collector bootstrap. This adds an explicitly selected, local owner-private route: a manually started foreground collector, a private-stdin receipt-only handler, and opt-in send integration. It never prompts an agent from a receipt or treats ordinary replies/turn completion as ACK.

  • Codex keeps original-generation receipt/handoff v1. Token-bearing native input uses the existing qualified owned RPC/stdin path only; it never enters a native --message argument or a legacy fallback. Unsupported best-effort fallback is unwrapped, before preparation, context-pinned and charged to the original budget.
  • Claude uses separate delegated receipt/handoff v2, keeping native generation null. token_possession does not prove model identity, native injection, consumption or completion. Public CLI envelope schema remains 1.
  • Private IPC v2 carries an opaque actor clock reference plus remaining milliseconds measured after hello. Later bootstrap/IPC delay cannot renew the original ACK cutoff. Scope, generation, original operation/deadline and terminal outcomes are pinned; stop races read once without repeating a mutation.
  • Managed format-2 state has one kernel-lock/clock owner, encrypted original-payload digests, hash-only authority, reserved terminal capacity and irreversible one-attempt fences. A fast receipt is a bounded candidate until positive submission. Restart/clock loss cannot revive unspent authority; unknown native outcomes cannot become submitted/ACK.
  • UID/mode, extended-ACL and descriptor/path checks protect private state, endpoints, handler artifacts and selected registry provenance. Known source/profile policies remain in place. A failed or unknown cleanup does not delete an unrelated replacement path.
  • Existing unmanaged v1 behavior stays separate. Legacy owner CLI paths refuse managed state; no migration, repair, installer, automatic service/restart, reverse SSH collector, wake, resend or exactly-once guarantee is added.

Independent development and review

Antigravity CLI 1.4.12 / actual gemini-4-argon-medium independently drafted a stdout-only prototype. Codex validated the proposal and performed all persistent edits. Fresh Gemini core/integration reviews and separate Claude Code 2.1.314 / canonical claude-opus-5-5 reviews checked frozen inputs. The final focused pair received identical SHA-256 cb1b3cac18c6cf0188b963b7adad533b11d63d8082524114552c197e9686f70d in parallel fresh contexts, with tools disabled or plan+sandbox. No model fallback or reviewer repo writes occurred.

Verified findings fixed: response scope/generation matching, original deadline renewal across IPC, terminal-stop result races, unknown-stop exit semantics, pre-effect stop cleanup order and expired-wait quota classification. Native queued/posted facts were deliberately retained; the contrary status-overwrite suggestion violated the existing contract. A larger Gemini request self-reported unviewed context; actual transport truncation could not be proven, so it is not claimed as complete coverage. Later bounded scope review and full Claude review are recorded separately. Private raw inputs, outputs, hashes, failures and Codex dispositions are retained in the task review record.

Final security correction and validation

The final static security delta (77,801bytes; SHA-256 32861d788754449199140aeded5c6efafb4a722599ff2bca4a1322b65ec3a0e8) was reviewed independently by Claude Code 2.1.314/canonical first-party claude-opus-5-5 (95.214s) and Antigravity 1.4.12/init gemini-4-argon-medium (146.036s), both successful with fixed inputs and no reviewer tools or edits. Both found adapter wrapping could erase pre-effect stop/deadline reasons. Final commit adbd95ad2bf00cc11072d6b005a84a4e311d173f preserves local unattempted guard reasons and immutable terminal timeout facts; attempted native outcomes stay unknown. Six new deterministic scenarios and receipt-send 35/35 pass validate this. Root audited the correction. Exit 130 follows a proven original stopped wait, while unknown submission facts remain intact; it does not claim zero native effect or consumption.

Final feature head passes 12/12 CI checks and current-head code review completes with no findings. GitHub Security Review metadata still names an older head; it is not presented as a current-head result. The independent security delta and root correction are recorded separately, without a claim of new live native/model/SSH qualification.

The integrated 0.6.0 tree 39eede022558106efaae5fd8cd391ce7393a1ef8 passes 666 local tests:654pass, 0fail, 11skip, 1existing TODO with pinned Python reference 8ca77cf31254c8287a2593fe484bb30a7dba2727. CI fixture paths/installations are private and canonical; production trust guards are unchanged. Test-file concurrency is bounded at two without weakening 800-ms owner bounds/assertions. An earlier macOS pre-effect owner refusal remains of unconfirmed cause; final-head CI passes. An earlier wrong Python-reference environment name caused an excluded ENOENT run.

Limits and release separation

The 32-MiB quota and conservative 64-KiB reservation can fill near 511 small intents before the 10,000-record cap. No automatic history reset/recovery is added. Explicit revoke blocks duplicate presentations; owner status preserves committed ACK. TTL-only identical authenticated retrieval stays read-only.

Windows managed storage, reverse-SSH receipts, new native profiles and general model/tool permission grants remain unsupported. No live user profile/transcript/auth access or real native/model/SSH receipt qualification was performed. Existing immutable skill 0.2.1 pin stays unchanged; metadata compatibility does not imply receipt feature coverage. Feature VERSION stays 0.5.2 until release PR #177. #132 remains open for implementation/qualification follow-up.

Refs #132

Add a manually operated private collector and receipt-only handler. Preserve original budgets through private IPC v2, generation-bound Codex v1, and a separate Claude delegated context without native identity or consumption claims.

Fence one native submission, preserve known facts on unknown receipt outcomes, and keep authority out of argv, environment, public output and sender/collector persistence.

Refs #132
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 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-11-03T04:07:11.147104Z adbd95a Manual request
🔒 Security Review ✅ Completed 2026-11-03T02:54:46.695917Z 749199f PR opened
ℹ️ 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: 749199fb13

ℹ️ 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/receipt-send.ts Resolved
@abruption

Copy link
Copy Markdown
Owner Author

@codex review

Please review current head f36015b, including the fixed effect-fence interruption and final write guards. Previous-head finding has a deterministic regression and is resolved.

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

Please review current head f36015b. No earlier-head review is treated as current-head validation.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

Unknown error
ℹ️ 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".

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: f36015bba7

ℹ️ 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".

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

Review final current head f02a6a7 (resolve full head from the PR). The last requested security review still references 749199f; this request targets the later interruption fix and bounded test scheduling.

@abruption

Copy link
Copy Markdown
Owner Author

@codex review

Review current head f02a6a7. The last code review completed with no findings at f36015b; the only later change bounds npm test file concurrency at two and leaves production source and assertions unchanged.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: f02a6a758a

ℹ️ 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".

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

Code review has now completed at final head f02a6a7. Please run security review alone on that head; metadata still points to the initial head. No additional code-review request is pending from this session.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

Reviewed commit: f02a6a758a

ℹ️ 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".

@abruption

Copy link
Copy Markdown
Owner Author

@codex review

Please review final security follow-up adbd95a. Independent noninteractive Claude Opus 5.5 and Gemini 4 Argon both found that adapter wrapping erased pre-effect stop/deadline Refusal; this commit preserves only unattempted local guard reasons and terminal timeout facts. Attempted native outcomes remain unknown; no retry/fallback is added. Six deterministic scenarios were added; receipt-send35/35pass. Full review scope/model/input hashes and limits are retained with the release evidence.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: adbd95ad2b

ℹ️ 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".

@abruption
abruption merged commit 105b3c5 into main Nov 3, 2026
12 checks passed
@abruption
abruption deleted the feat/receipt-bootstrap-132 branch November 3, 2026 05:05
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.

1 participant