Skip to content

docs(handoff): propose shared v0.2 evidence and receipt contract - #261

Merged
abruption merged 4 commits into
mainfrom
abruption/handoff-v1-design-181-20261006
Oct 9, 2026
Merged

abruption merged 4 commits into
mainfrom
abruption/handoff-v1-design-181-20261006

Conversation

@abruption

@abruption abruption commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

Relates to #181 and abruption/session-peer-ts#69. This is reviewed design v0.2 with exact-tuple joint DESIGN freeze; not implementation, a shipped/frozen runtime protocol, or a release promise.

  • Define opt-in per-destination handoff evidence while preserving runtime-specific ordinary output, missing fields and native submission snapshots.
  • Specify receipt-only collector/producer bootstrap, separate receipt wire, bounded sender fencing, generated/prepared ID freshness, wait history/late ACK and a total monotonic budget.
  • Add English, Korean, Japanese and Simplified Chinese contracts and a versioned synthetic fixture.
  • Add test-only schema/bounds checks; behavioral and SSH vectors are declared expectations, not exercised delivery/crash/collector engines.

Type

  • docs
  • chore / refactor / test / perf
  • feat
  • fix

Checklist

  • Commits follow Conventional Commits
  • Docs updated
  • No secrets, tokens, personal session identifiers or credentials in the diff
  • Native local/SSH delivery checks — intentionally not performed for this design-only change
  • New opt-in runtime behavior — not implemented

Verified against

Published Python runtime reference: v1.0.3, commit 0d25255. Design base: 817d92a.

Local Python 3.14.8 on the updated integration head:

  • python3 -m unittest discover -s tests/docs -t . -q: 52 tests passed, including 20 synthetic contract tests.
  • python3 tools/generate_session_peer.py --check: passed.
  • git diff --check: passed.
  • Relative to current main, this PR remains documentation/synthetic tests only; no runtime changes.

Notes

No merge, publication, runtime implementation, live delivery or operational change is authorized by this proposal. #181 remains open.

The following have exact-source cross-runtime DESIGN acceptance (see the joint freeze record below): generated ID preparation and operator-confirmation interfaces, ledgerEpoch/wait operationId fields, 5-second cleanup reserve within the 1..60-second total budget, lexical JSON integer checks, and intact-history/rollback limitations. Collector/producer validation, private bootstrap/restart continuity and real strict SSH preservation remain future implementation acceptance gates.

Unknown caller UUIDs are not fresh-ID evidence. Retained effect fences are never evicted to regain authority. Local fencing cannot detect unmarked rollback or cloned ledgers and is not receiver dedup/exactly-once delivery. Raw receipt authority is not exposed in sender/collector argv/URI/environment/ordinary JSON/diagnostics or their own raw persistence. Recipient native queues/history/transcripts may retain delegated receipt authority; token possession is not model identity.

The TS 0.4.0 issues remain together; runtime reference remains published v1.0.3 until a release actually implements a reviewed contract. Experimental Side Session/wake and paired-device/Relay support are not added.

Candidate document SHA-256: 46a953010c49214bd8f969412f26713384fbe09a0ba78ebf0fef75da40d0d889.
Shared fixture SHA-256: 963b94e78f510c2535e405813558275d512a5bfe6bbd99ffdf0994b4d2e6e441.

CI follow-up

CI run 37455780583: all four Node Control jobs fail in npm audit --omit=dev on the existing source-map-js dependency (GHSA-68fv-2mgg-jv7q), and the required release gate consequently fails. Documentation tests pass. Control source and lockfile are unchanged by this proposal; no dependency upgrade or audit bypass is included. This is a blocking repository CI dependency finding, not evidence that this draft is merge-ready. Handle the dependency remediation separately from the contract review.

Exact-commit review amendments

Candidate: 99d8ec3. All seven TS freeze findings are addressed in normative text across four locales and synthetic vectors: authenticated duplicate expiry exception; atomic classified receipt recovery/manual proof-or-refusal; original generation binding and null-generation refusal; recipient-storage secret boundary; concrete missing-context query envelope; precise scoped byte/token bounds; original-request/target/goal-aware opt-in wire guard. The fixture includes 32 semantic expectations and 39 request-aware wire examples. These are schema/static examples, not actual authentication, crash, collector, SSH or live tests.

TS exact-source design approval and Python exact acceptance are now recorded; joint DESIGN freeze applies only to this candidate tuple. The b369cef run 37458387737 also completed with the same four Control audit failures and release-gate failure; docs and runtime jobs passed. The dependency finding is not resolved or bypassed here.

Final profile / wait-exit alignment

The seven prior normative amendments were accepted at design level by TS. Final conditional review findings are addressed here: original-request nativeProfile (Python/TS x Claude/Codex), exact canonical home/context, optional Python-Claude absence and TS target.agent/name:null, existing Codex UUID case rules and optional queueId, strict consumptionConfirmed=false, post-submission unsupported exit 1, pending-wait interrupt/operator stop exit 130 vs stopped status query exit 0. Native snapshots are independently preserved; ACK cannot be promoted from an invalid wire tuple. No fallback or resend after effect. The TS positive-profile source pin is published v0.3.1 only and does not change TS parity/reference markers. Exact TS design approval and Python acceptance are recorded; normative/schema/vector changes require new exact review.

Latest exact-candidate CI: 37461834232 completed with conclusion failure (four optional Control audit jobs plus the required release gate). No all-green claim or merge readiness.

Joint design freeze

Exact acceptance and joint freeze record: source 99d8ec3, the document/fixture hashes above, TS review-record head 63473fb80936b0085e08039997ac39f7158a58dd. No source files or fixture bytes changed when recording approval; no new source commit. This is design-only, runtimeImplemented=false, Draft remains. CI remediation and implementation/platform acceptance gates are not waived.

Current-main integration (2026-10-09)

Head d8f56c1 merges main 10a9cef without rewriting the frozen 99d8ec3 ancestor. Only the translation manifest conflict and canonical document-count assertion required resolution. The authoritative English contract and shared fixture retain the exact jointly approved SHA-256 hashes above, byte for byte. Current main already contains source-map-js 1.2.2; the earlier Control audit failure is historical, not bypassed. New current-head CI is running and must pass before any merge readiness claim. The draft and design-only scope are retained; no merge or publication performed.

@abruption

Copy link
Copy Markdown
Owner Author

Joint design freeze record — v0.2

correlation=STS-040-COMMON-CONTRACT-20261006-A

Python-side exact source acceptance: approved_design_only.
TS-side exact source acceptance: approved_design_only, verified against TS Draft mirror #106 review-record head 63473fb80936b0085e08039997ac39f7158a58dd.

Joint design freeze: approved for this exact tuple ONLY.

  • Source commit: 99d8ec3
  • Authoritative document: docs/contracts/handoff-v1.md
  • Document SHA-256: 46a953010c49214bd8f969412f26713384fbe09a0ba78ebf0fef75da40d0d889
  • Authoritative synthetic fixture: tests/fixtures/handoff-v1.json
  • Fixture SHA-256: 963b94e78f510c2535e405813558275d512a5bfe6bbd99ffdf0994b4d2e6e441

The approval is recorded here without a new source/provenance commit or regeneration. HEAD remains the approved source commit; source diff against that commit is empty; document/fixture hashes were rechecked unchanged. Normative/schema/vector content is therefore unchanged. Any later normative/schema/vector change requires new exact review. The source document's unimplemented/non-frozen-protocol disclaimer and synthetic draft metadata remain historical source bytes; this record freezes the reviewed DESIGN, not an implemented/shipped runtime protocol.

Scope: normative design and synthetic fixture only. runtimeImplemented=false. No merge, runtime implementation, receipt authentication/collector/persistence/crash/clock/SSH/platform acceptance, live submission, operational change or publication is approved. Producer/bootstrap, body-free observation, durable fencing and bounded cleanup remain implementation gates.

Python runtime baseline remains published 1.0.3 / 0d25255. TS runtime/parity markers unchanged; #181/#69 remain OPEN; TS #69/#70/#71/#72 stay in 0.4.0.

CI remains separate: exact-source run 37461834232 completed FAILURE (four optional Control dependency audits plus required release gate); docs/runtime checks succeeded. Existing source-map-js audit finding is neither repaired nor bypassed. Draft status stays; no full-green or merge-ready claim.

@abruption
abruption marked this pull request as ready for review October 9, 2026 04:59
@abruption
abruption merged commit a7cd204 into main Oct 9, 2026
28 checks passed
@abruption
abruption deleted the abruption/handoff-v1-design-181-20261006 branch October 9, 2026 04:59
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 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-09T05:03:10.857735Z d8f56c1 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-09T05:02:37.172911Z d8f56c1 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.

@abruption abruption mentioned this pull request Oct 9, 2026
6 of 8 tasks
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