Skip to content

Define strict guest reconnect RPC contract - #113

Draft
jiashuoz wants to merge 1 commit into
mainfrom
feat/guest-reconnect-rpc
Draft

jiashuoz wants to merge 1 commit into
mainfrom
feat/guest-reconnect-rpc

Conversation

@jiashuoz

@jiashuoz jiashuoz commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Problem and behavior

The reconnect authorization foundation defines the signed transcript and durable authority, but consumers have no shared session-RPC request/response contract. Gateway-local schemas would let hosted and self-hosted implementations drift.

Define shared enroll/begin/accept method names, typed payloads and strict decoders for requests and cryptographic responses. Decoders enforce a 4096-byte raw payload limit, exact fields, canonical encodings, fixed errors and zero values on refusal. Enrollment retains the existing environment response so successful key enrollment does not break initial secret delivery. Document original-socket authority, runner-only begin/accept routing, commit-before-response and relay fencing requirements.

No handlers, capabilities or guest reconnect behavior are enabled. Gateway/guest integration, cold-resume ordering and hardware qualification remain follow-up work.

Validation

  • Regression reproduced plain JSON decoding accepting an unknown authority field; strict public decoder refuses it.
  • Protocol suite, race checks, executable public consumer example and focused vet passed.
  • Bounded fuzz run passed approximately 188,000 inputs across all decoders.
  • Full Linux CI passed on 21efedb: make verify, non-root jail ownership regression, CLI/client race checks and fleet script syntax. Run evidence.
  • Local full build/vet passed. Local make verify encountered the existing latency cleanup timeout (passed in isolation) and remained in Docker-backed tests; the redundant run was stopped after Linux CI passed.
  • Independent and adversarial reviews passed without required findings. The adversarial review independently exercised 210 malformed/cross-message/authority-injection cases.
  • Public consumer example passed again after full Linux CI completed.

This is a protocol library change. The executable challenge/sign/decode/verify example is the real-execution check; there is no newly enabled service endpoint to exercise.

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