S123 · SOURCE-BOUND GATE EVIDENCE
S123 BOOT8H capture kapandı; 23 leading NUL strict physical raw'ı reddetti
Operations komutu/kapı ailesi → gerçek repository yürütme sözleşmesi Bu sayfa yalnız S123 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S123Komut / fiziksel sözleşmeOperations id exactsource SHA exact
operation: rpi5-g8h-s123-leading-nul-physical-raw-rejected
script/Makefile/config · Operations · 2 exact excerpt
sequence-bound=true · implementation-bound=false
01 · Yürütme sözleşmesi
Gerçek script / Makefile / config kaynağı
tam dosyaL1–L144
scripts/verify-rpi5-g8h-physical-raw.sh::verify-rpi5-g8h-physical-raw.sh
#!/bin/sh
set -eu
SCRIPT_DIR=$(CDPATH= cd -- "$(/usr/bin/dirname -- "$0")" && pwd -P)
REPO_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd -P)
fail() {
echo "HATA: $*" >&2
exit 1
}
run_validator() {
(
cd "$REPO_ROOT"
cargo run --quiet --locked --offline -p aselsan_microkernel_simulation \
--example verify_rpi5_g8h_physical_raw -- "$@"
)
}
stat_identity() {
/usr/bin/stat -f '%d:%i:%z:%m:%c:%Lp:%l' "$1"
}
stat_mode() {
/usr/bin/stat -f '%Lp' "$1"
}
stat_links() {
/usr/bin/stat -f '%l' "$1"
}
raw_sha256() {
/usr/bin/shasum -a 256 "$1" | /usr/bin/cut -d ' ' -f 1
}
validate_operational_identity() {
[ ! -L "$RAW_PATH" ] || fail "raw must be a non-symlink regular file"
[ -f "$RAW_PATH" ] || fail "raw must be a non-symlink regular file"
RAW_MODE=$(stat_mode "$RAW_PATH") || fail "could not stat raw mode"
[ "$RAW_MODE" = 444 ] || fail "raw mode must be exactly 0444"
RAW_LINKS=$(stat_links "$RAW_PATH") || fail "could not stat raw link count"
[ "$RAW_LINKS" = 1 ] || fail "raw link count must be exactly one"
}
if [ "$#" -eq 1 ] && [ "$1" = "--verify-source-only" ]; then
run_validator --canonical
echo "G8H_PHYSICAL_RAW_SOURCE=PASS validators=12 milestones=60 hardware=UNTOUCHED device=0 uart=0 power=0"
exit 0
fi
[ "$#" -eq 5 ] || \
fail "operational mode requires RAW_PATH EXPECTED_BYTES EXPECTED_SHA256 EXPECTED_DEVICE EXPECTED_INODE"
RAW_PATH=$1
EXPECTED_BYTES=$2
EXPECTED_SHA256=$3
EXPECTED_DEVICE=$4
EXPECTED_INODE=$5
case "$EXPECTED_BYTES" in
''|0|0*|*[!0-9]*) fail "EXPECTED_BYTES must be a positive canonical decimal" ;;
esac
[ "$EXPECTED_BYTES" -le 67108864 ] 2>/dev/null || \
fail "EXPECTED_BYTES exceeds the 64 MiB physical capture limit"
[ "${#EXPECTED_SHA256}" -eq 64 ] || \
fail "EXPECTED_SHA256 must be exactly 64 lowercase hex characters"
case "$EXPECTED_SHA256" in
*[!0-9a-f]*) fail "EXPECTED_SHA256 must be exactly 64 lowercase hex characters" ;;
esac
case "$EXPECTED_DEVICE" in
''|0|0*|*[!0-9]*) fail "EXPECTED_DEVICE must be a positive canonical decimal from capture_armed evidence" ;;
esac
case "$EXPECTED_INODE" in
''|0|0*|*[!0-9]*) fail "EXPECTED_INODE must be a positive canonical decimal from capture_armed evidence" ;;
esac
case "$RAW_PATH" in
/*) ;;
*) fail "RAW_PATH must be an absolute canonical path" ;;
esac
RAW_PARENT=$(/usr/bin/dirname -- "$RAW_PATH")
RAW_BASENAME=$(/usr/bin/basename -- "$RAW_PATH")
[ "$RAW_BASENAME" != . ] && [ "$RAW_BASENAME" != .. ] || \
fail "RAW_PATH must be an absolute canonical path"
CANONICAL_PARENT=$(CDPATH= cd -- "$RAW_PARENT" 2>/dev/null && pwd -P) || \
fail "RAW_PATH parent does not exist"
CANONICAL_PATH="$CANONICAL_PARENT/$RAW_BASENAME"
[ "$RAW_PATH" = "$CANONICAL_PATH" ] || \
fail "RAW_PATH must be an absolute canonical path"
validate_operational_identity
PRE_IDENTITY=$(stat_identity "$RAW_PATH") || fail "could not stat raw identity"
SAVED_IFS=$IFS
IFS=:
set -- $PRE_IDENTITY
IFS=$SAVED_IFS
[ "$#" -eq 7 ] || fail "could not parse atomic pre-validation raw identity"
PRE_DEVICE=$1
PRE_INODE=$2
PRE_BYTES=$3
PRE_MODE=$6
PRE_LINKS=$7
EXPECTED_FILE_ID="$EXPECTED_DEVICE:$EXPECTED_INODE"
[ "$PRE_DEVICE:$PRE_INODE" = "$EXPECTED_FILE_ID" ] || \
fail "raw pre-validation file identity does not match capture_armed evidence"
[ "$PRE_MODE" = 444 ] || fail "raw pre-validation mode must be exactly 0444"
[ "$PRE_LINKS" = 1 ] || fail "raw pre-validation link count must be exactly one"
PRE_SHA256=$(raw_sha256 "$RAW_PATH") || fail "could not hash raw"
[ "$PRE_BYTES" = "$EXPECTED_BYTES" ] || \
fail "raw size does not match EXPECTED_BYTES"
[ "$PRE_SHA256" = "$EXPECTED_SHA256" ] || \
fail "raw hash does not match EXPECTED_SHA256"
run_validator --raw "$RAW_PATH" \
--expected-bytes "$EXPECTED_BYTES" \
--expected-sha256 "$EXPECTED_SHA256" \
--expected-device "$EXPECTED_DEVICE" \
--expected-inode "$EXPECTED_INODE"
validate_operational_identity
POST_IDENTITY=$(stat_identity "$RAW_PATH") || fail "could not stat raw identity after validation"
IFS=:
set -- $POST_IDENTITY
IFS=$SAVED_IFS
[ "$#" -eq 7 ] || fail "could not parse atomic post-validation raw identity"
POST_DEVICE=$1
POST_INODE=$2
POST_BYTES=$3
POST_MODE=$6
POST_LINKS=$7
[ "$POST_DEVICE:$POST_INODE" = "$EXPECTED_FILE_ID" ] || \
fail "raw post-validation file identity does not match capture_armed evidence"
[ "$POST_MODE" = 444 ] || fail "raw post-validation mode must be exactly 0444"
[ "$POST_LINKS" = 1 ] || fail "raw post-validation link count must be exactly one"
POST_SHA256=$(raw_sha256 "$RAW_PATH") || fail "could not hash raw after validation"
[ "$POST_IDENTITY" = "$PRE_IDENTITY" ] || fail "raw identity changed during validation"
[ "$POST_BYTES" = "$PRE_BYTES" ] || fail "raw identity changed during validation"
[ "$POST_SHA256" = "$PRE_SHA256" ] || fail "raw hash changed during validation"
[ "$POST_BYTES" = "$EXPECTED_BYTES" ] || fail "raw identity changed during validation"
[ "$POST_SHA256" = "$EXPECTED_SHA256" ] || fail "raw hash changed during validation"
echo "G8H_PHYSICAL_RAW_VALIDATION=PASS exact_bytes=$POST_BYTES sha256=$POST_SHA256 device=$EXPECTED_DEVICE inode=$EXPECTED_INODE validators=12 milestones=60"
snippet sha256: 945363d7c2cf…file sha256: 945363d7c2cf…
02 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL26971–L27074
website/src/lib/operations.ts::rpi5-g8h-s123-leading-nul-physical-raw-rejected
{
id: "rpi5-g8h-s123-leading-nul-physical-raw-rejected",
date: "2026-08-23",
sequence: 123,
status: "passed",
closure: {
status: "passed",
sequence: 124,
operation_id: "rpi5-g8h-s124-physical-boot8h-pass",
summary:
"S124 yeni aday paketle BOOT8H strict physical raw, 12/12 validator, 60/60 milestone ve ARCHIVE/PROMOTION kapılarını PASS ederek S123'ün açık fiziksel kabulünü kapattı.",
},
title:
"S123 BOOT8H capture kapandı; 23 leading NUL strict physical raw'ı reddetti",
summary:
"S122'de arm edilen aynı PID 4516 / serial FD 3 / raw FD 4 üzerinde final pre-power continuity PASS verdikten sonra yalnız bir yetkili power-on yapıldı. Helper exact BOOT8H marker'ını gördü, üç saniyelik grace'i tamamladı ve aynı raw'ı durable 0444 olarak başarıyla kapattı. Ancak identity-pinned aggregate/direct strict wrapper tek çalıştırmada exit 1 verdi: raw başındaki 23 NUL, frozen maksimum 5 sınırını aştı. Bu nedenle helper/capture katmanı başarılı olsa da S123 fiziksel BOOT8H PASS değildir; immutable rejected raw değiştirilmeden korundu ve S124 archive/promotion açılmadı. Capture transaction snapshot'ında power_on=1 ve power_off_at_validator_close=0 korunur. Ayrı closeout amendment'ında kullanıcı 2026-08-23T09:56:56Z / 12:56:56+03:00 anında Pi gücünü bir kez kestiğini bildirdi: post_S123_closeout_power_off=1, lifecycle power_on/off=1/1, güncel durum USER-REPORTED POWERED OFF ve independently_observed=false.",
evidence: [
"Final pre-power kapı 2026-08-23T09:21:33Z'de PASS: PID 4516, FD 3/4, raw 16777231:22679159, 1 B `00`, mode 0600/nlink1, aynı USB/IOSerial identity, tek holder ve power=0.",
"Tek power-on sonrasında helper stdout'u exact `terminal_marker_seen=ASELSAN/BOOT8H start_offset=21229 end_offset=21244`, `terminal_grace_complete=true seconds=3` ve `capture_closed=true terminal_seen=true grace_complete=true exact_bytes=22512 mode=0444 durable=true success=true` verdi; retained exec session helper exit `0`, stderr `0 B` kaydetti.",
"Immutable raw: 22512 B / `0076cd00e895f49a779777eaa91478946fa87a0381ed469990abb88cd46a0f85`; device 16777231, inode 22679159, exact mode 0444, nlink1 ve holder0. Helper stdout 751 B / `d1dae883ebba21cc0e9cf9debb039833ede80298dc63505133c78f10df845263`; stderr empty SHA-256 `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`.",
"Beş positional identity-pinned operational wrapper tam bir kez çalıştı ve exit 1 verdi. Kök hata: `leading NUL prefix exceeds capture allowance: observed 23, maximum 5`; G7a–G8h 12-validator zincirindeki diğer kayıtlar bu prerequisite reddinin fail-closed yayılımıdır.",
"2026-08-23T09:27:31Z preservation audit'i raw stat/hashinin exact değişmediğini doğruladı: edit/copy/delete=0, validator retry=0, helper retry=0, archive=0, promotion=0. 09:29:58Z post-exit continuity'de helper absent, cu/tty holder0 ve USB kimliği stable kaldı.",
"S123 closeout amendment — post-rejection power-off (USER-REPORTED): event_id=`rpi5-g8h-s123-post-rejection-power-off-closeout`, parent_sequence=S123, event_kind=USER_REPORTED_POWER_STATE_CLOSEOUT, sequence_number_consumed=NO. Capture snapshot `power_off_at_validator_close=0`; ayrı delta `post_S123_closeout_power_off=1`. Event-local power_on/UART/helper/disk/raw_access/validator/archive/promotion counters exact 0; raw reread/reverify yapılmadı.",
"Kalıcı kayıt raw'ın kendisini kopyalamaz: `evidence/rpi5/g8h/sequence-123-power-capture-validator-rejected/README.md`.",
],
commands: [
"<S123 final live identity/FD/raw continuity gate>",
"<single user-authorized Pi power-on; existing helper only>",
"sh scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 22512 0076cd00e895f49a779777eaa91478946fa87a0381ed469990abb88cd46a0f85 16777231 22679159",
"<read-only preservation + post-exit continuity audit>",
],
terminalSessions: [
{
id: "s123-helper-terminal-close",
title: "Tek power-on, BOOT8H marker ve durable helper close",
commandLines: ["<existing S122 helper; no reopen or retry>"],
outputLines: [
"terminal_marker_seen=ASELSAN/BOOT8H start_offset=21229 end_offset=21244",
"terminal_grace_complete=true seconds=3",
"capture_closed=true terminal_seen=true grace_complete=true exact_bytes=22512 mode=0444 durable=true success=true",
"helper_exit=0 stderr_bytes=0",
],
exitCode: 0,
outputMode: "selected",
},
{
id: "s123-identity-pinned-strict-validator",
title: "Immutable aggregate + direct G8h strict physical karar",
commandLines: [
"sh scripts/verify-rpi5-g8h-physical-raw.sh <retained-raw> 22512 0076cd00e895f49a779777eaa91478946fa87a0381ed469990abb88cd46a0f85 16777231 22679159",
],
outputLines: [
"G8h physical raw validation failed",
"leading NUL prefix exceeds capture allowance: observed 23, maximum 5",
"validator_chain=G7a..G8h validators=12 decision=REJECTED",
],
exitCode: 1,
outputMode: "selected",
outputNote:
"Tek kök neden 23 leading NUL'dır; raw trim/normalize edilmedi ve validator yeniden çalıştırılmadı.",
},
],
terminalSessionsNote:
"Helper success ile strict physical acceptance ayrıdır. S123 capture dosyası immutable kapandı, fakat frozen semantic limit nedeniyle reddedildi ve physical PASS/promotion oluşmadı. Sonraki power-off terminal gözlemi değil, timestamp'li kullanıcı closeout bildirimidir.",
limitations: [
"Son boot/runtime fiziksel PASS değişmeden S92 BOOT8G ve CPU1_PER_CPU_TIMER_ONLY kapsamıdır.",
"S123 raw immutable fakat REJECTED'dır; kabul evidence'ına kopyalanmaz, kırpılmaz, birleştirilmez, yeniden doğrulanmaz veya promote edilmez.",
"Capture transaction power_on=1 / power_off_at_validator_close=0 olarak değişmez; ayrı post_S123_closeout_power_off=1 ile lifecycle power_on/off=1/1'dir. Current power state USER-REPORTED POWERED OFF ve independently observed=false.",
"Closeout event-local POWER_ON=0, UART=0, HELPER=0, DISK=0, RAW_ACCESS=0, VALIDATOR=0, ARCHIVE=0 ve PROMOTION=0; raw yeniden okunmadı/doğrulanmadı. Bu amendment yeni sequence veya fiziksel PASS değildir.",
"S124 permanent archive/promotion STOP'tur; başarısız S123 bunu açmaz.",
],
amendments: [
{
id: "rpi5-g8h-s123-post-rejection-power-off-closeout",
label:
"S123 closeout amendment — post-rejection power-off (USER-REPORTED)",
parent_sequence: "S123",
event_kind: "USER_REPORTED_POWER_STATE_CLOSEOUT",
sequence_number_consumed: false,
recorded_at_utc: "2026-08-23T09:56:56Z",
recorded_at_local: "2026-08-23T12:56:56+03:00",
capture_transaction_snapshot: {
power_on: 1,
power_off_at_validator_close: 0,
},
closeout_delta: {
post_S123_closeout_power_off: 1,
},
current_power_state: "USER-REPORTED POWERED OFF",
independently_observed: false,
event_local_access_counters: {
power_on: 0,
uart: 0,
helper: 0,
disk: 0,
raw_access: 0,
validator: 0,
archive: 0,
promotion: 0,
},
raw_reread_or_reverify: false,
},
],
},snippet sha256: 529ddac280c3…file sha256: 9726dbf00f84…
Kayıtlı yürütme/kanıt komutu
<S123 final live identity/FD/raw continuity gate>Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06