Date: 2026-08-28/29 UTC
Branch: r6-device-bootstrap
Fork baseline: main version 50
Branch version before this receipt: 39
Scope: secretless real-device bootstrap for the existing Codex runtime acceptance gate
Production: NO_GO
Objective and preserved authority
The durable gate remains CODEX_REAL_RUNTIME_ACCEPTANCE_V1. R6 does not replace R5 pairing recovery, R4 acceptance verification, R3 fail-closed external guard, or the exact challenge.
lane checkpoint SHA-256: d97d464ac817879c733f26249518faf3833a48c8e00a14d7ebed389af9a70962
live acceptance state during branch validation: PENDING_CODEX_ACK
Problem solved
The remaining physical gate depended on a pre-shared pairing secret and an opaque activation ZIP whose latest sidecar was observable but whose bytes/regeneration receipt were not available in the current File Library surface.
R6 introduces a public device-code bootstrap with no embedded credentials:
real Codex host starts a device session;
server returns a 256-bit device code plus a short human code;
only the short code is pasted into an authenticated RUMBO/ChatGPT conversation;
GPT/admin approval atomically authorizes that exact hash-bound device session;
the local host polls using the secret device code and only then receives the Codex bearer;
local bootstrap confirms pairing, reconstructs and verifies the plugin, ACKs the exact challenge, and publishes the nonce-bound reverse response;
final ChatGPT semantic review/ACK remains separate.
Server security properties
raw device/user codes are never persisted; only SHA-256 values are stored;
32-byte device-code entropy;
unbiased short-code generation via rejection sampling;
pending-session limits: 3 per client fingerprint, 100 global;
client fingerprint stores only SHA-256 of network/user-agent material;
final evaluation id: 01a04b7a-34c5-71bd-b230-3f314a00c4ce
start: HTTP 201
pre-approval poll: HTTP 202
unauthenticated approval: HTTP 401
GPT approval: HTTP 200
approval replay: IDEMPOTENT_PASS
token delivered: false
real codex-v4 pairing touched: false
fixture cleanup: PASS
Note: an earlier self-test evaluation printed all functional checks PASS but ended with a false cleanup failure because the test used 0 || -1. Database inspection proved the row had been deleted. The test assertion was corrected to nullish handling and the final evaluation above passed. Synthetic approval audit events are preserved in the append-only audit chain and are not represented as real runtime evidence.
no literal bearer/API/GitHub credential in launcher
no production promotion path added
Database boundary after branch tests
real pairing id codex-v4: no row
device self-test fixture rows: none
challenge ACK: NOT_PROVEN
Codex reverse response: NOT_PROVEN
final GPT ACK: NOT_PROVEN
Promotion boundary
R6 branch may be promoted because it makes the physical gate safer and recoverable without performing that gate.
Promotion does NOT mean:
REAL_CODEX_RUNTIME_PASS
REAL_CODEX_ACK
REAL_CODEX_RESPONSE
FINAL_CHATGPT_ACK
PRODUCT_GO
PRODUCTION_GO
After promotion, main must be revalidated for health, launcher bytes/hash, device separation, acceptance/checkpoint, audit chain, zero codex-v4 row, and remote-device availability.