commit 90c588541e98eb7d71db2a6fb4f2da7cf15f5143 from: Isaac Meerleo date: Sat Jul 18 15:24:56 2026 UTC Prove live Codex continuity capture commit - 2bc69aedf0c572e1dd76c84c1a3e686d34b33ec9 commit + 90c588541e98eb7d71db2a6fb4f2da7cf15f5143 blob - a992054c8ba290d4dcd1983807e2d7cd318e216c blob + 293d4950c17fbcc9aa75311535f6428d92327496 --- docs/release-live-checks.md +++ docs/release-live-checks.md @@ -72,6 +72,11 @@ isolated Journal, and the delimited syslog slice witho environment, or command output. Temporary evidence is removed when the target exits. +The Codex Tool check also isolates the Journal created by that invocation and +requires a committed `responses-continuity` Provider-state envelope for the +fixed profile and model. It checks only the envelope metadata; the backend's +opaque encrypted-state bytes are neither assumed nor printed. + The opt-in must run as the ordinary Owner account, never root. Record the date and profile identifier in the release transcript; do not record request content, raw provider output, the token, or the account id. blob - 9bdb10dcbfd56e37f14e68124b364e4c34e539a2 blob + 5e8f971090ff39eb92103d3e209588bbbda0a1dd --- scripts/live-check +++ scripts/live-check @@ -428,6 +428,22 @@ one_tool_result() grep -F -q "\"is_error\":$is_error" } +# Prove that a successful Codex Tool Turn committed opaque continuation state +# without depending on the backend's encrypted-state bytes. The envelope is +# fixed by the compatibility profile; its data object deliberately stays +# opaque to this release check. +codex_continuity_present() +{ + journal=$1 + marker='"provider_state":"{\"provider\":3,\"profile\":\"chatgpt-codex-2026-07-17\",\"model\":\"gpt-5.5\",\"kind\":\"responses-continuity\",\"data\":' + + [ -f "$journal" ] || return 1 + grep -F '"t":"msg","role":"assistant"' "$journal" 2>/dev/null | + grep -Fq "$marker" || return 1 + grep -F '"t":"turn-end"' "$journal" 2>/dev/null | + grep -Fq '"outcome":"ok"' +} + # Return 0 when absent, 1 when leaked, and 2 when the scan could not run. secret_absent() { @@ -577,6 +593,7 @@ credentialed() chmod 0700 "$tmp" artifacts=$tmp/artifacts live_home=$tmp/home + journals=$live_home/.fugu/sessions project=$tmp/project mkdir -p "$artifacts" "$live_home" "$project" chmod 0700 "$artifacts" "$live_home" "$project" @@ -647,6 +664,10 @@ credentialed() if [ "$subscription" -eq 1 ]; then live_workdir=$project printf '%s\n' "LIVE-SUBSCRIPTION-TOOL-$$" >"$project/profile.txt" + subscription_before=$tmp/subscription-journals-before + subscription_after=$tmp/subscription-journals-after + find "$journals" -type f -name '*.ndjson' -print 2>/dev/null | + sort >"$subscription_before" credentialed_run -p \ 'Use read exactly once on profile.txt, then reply exactly: live subscription tool ok' \ -o ndjson >"$artifacts/subscription-tool.out" \ @@ -661,6 +682,17 @@ credentialed() grep -Fq "$subscription_marker" \ "$artifacts/subscription-tool.err" ok "subscription startup warns that the profile is experimental" $? + if [ "$expect_provider" = codex ]; then + find "$journals" -type f -name '*.ndjson' -print \ + 2>/dev/null | sort >"$subscription_after" + subscription_journal=$(comm -13 "$subscription_before" \ + "$subscription_after") + n=$(printf '%s\n' "$subscription_journal" | + sed '/^$/d' | wc -l) + [ "$n" -eq 1 ] && + codex_continuity_present "$subscription_journal" + ok "Codex Tool turn commits its opaque continuity envelope" $? + fi fi live_workdir=$project @@ -712,7 +744,6 @@ credentialed() grep -q "$report_a" "$artifacts/subagent.out" && grep -q "$report_b" "$artifacts/subagent.out" ok "both bounded agent reports return successfully" $? - journals=$live_home/.fugu/sessions grep -R -q '"name":"agent"' "$journals" 2>/dev/null && grep -R -q "$report_a" "$journals" 2>/dev/null && grep -R -q "$report_b" "$journals" 2>/dev/null