ASELSANMicrokernel
S388 · SOURCE-BOUND GATE EVIDENCE

S388 · QEMU S142 fault-cancelled CALL production writer guard integration

tam production Rust öğesi + exact acquire→release odağı → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S388 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S388Production writer guardOperations id exactsource SHA exacttest target exact

operation: g8l-s388-qemu-s142-fault-cancelled-call-writer-guard-integration-partial

production · S247 guard · focused test · Operations · 4 exact excerpt

sequence-bound=true · implementation-bound=true
01 · Test edilen uygulama/model kodu

Kapının yürüttüğü gerçek kaynak

tam Rust öğesiL10568–L10958kapı odağı L10703–L10719
kernel/src/main.rs::run_qemu_s142_lower_el_fault_recovery
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S388 exact production writer üyeliği sınırıdır. Komşu kod, guard kapsamı iddiası değildir.

/// S142 runtime acceptance: a task-bound strict EL0 supervisor receives the
/// real production CALL, then performs an unmapped load at 0x6000_0000. The
/// lower-EL synchronous vector attributes EC=0x24 to that live task and enters
/// the ordinary fatal lifecycle. IPC teardown cancels the CALL first; the
/// production task-exit hook then atomically requeues its broker lease. A fresh
/// strict EL0 task/session consumes the retry through an ordinary one-shot
/// reply. Kernel faults remain outside this recoverable policy and are still
/// fatal to the smoke gate.
#[cfg(feature = "board-qemu")]
unsafe fn run_qemu_s142_lower_el_fault_recovery(
    source_event: crate::mm::RuntimeOomEvent,
    baseline_free_frames: u64,
    baseline_active_allocations: usize,
) {
    use crate::elf::load_and_spawn_user_elf_from_boot_runtime_with_arg;
    use crate::elf_plan::{AddressRange, ElfLoadPolicy};
    use crate::mm::{RuntimeOomTransportError, RuntimeOomTransportEvent};
    use crate::ui::capability::{CapabilityRights, IpcMessage};
    use crate::userspace_binaries::{
        OOM_FAULT_RECOVERY_SUPERVISOR_BINARY, OOM_FAULT_SUPERVISOR_BINARY,
    };

    const S142_EVENT_LABEL: u64 = 0x5331_3432;
    const S142_EXACT_ACK_LABEL: u64 = 0x4143_4b42;
    const S142_TIMEOUT_TICKS: u64 = 1 << 20;
    const S142_FAULT_VA: u64 = 0x0000_0000_6000_0000;

    assert_eq!(source_event.id, 1);
    assert_eq!(source_event.oom_epoch, 1);
    let controller_task = crate::task::current_task_id().expect("S142 controller task");
    let (fault_domain, replacement_domain) = crate::mm::with_boot_runtime_memory(|memory| {
        Ok::<_, crate::mm::RuntimeAllocationError>((
            memory.register_domain(QEMU_FAULT_OOM_SUPERVISOR_RUNTIME_DOMAIN_ID)?,
            memory.register_domain(QEMU_FAULT_RECOVERY_OOM_SUPERVISOR_RUNTIME_DOMAIN_ID)?,
        ))
    })
    .expect("S142 RuntimeMemory authority")
    .expect("S142 supervisor domain registration");

    let endpoint_authority =
        crate::ui::capability::mint_endpoint(controller_task, S142_EVENT_LABEL)
            .expect("S142 controller endpoint authority");
    let no_forbidden_ranges: [AddressRange; 0] = [];
    let fault_publication_guard = crate::arch::aarch64::IrqGuard::new();
    let faulting_supervisor = load_and_spawn_user_elf_from_boot_runtime_with_arg(
        "oom-fault-strict-el0-supervisor-elf",
        OOM_FAULT_SUPERVISOR_BINARY,
        ElfLoadPolicy::new(
            AddressRange::new(0x0380_0000, 0x0381_0000),
            &no_forbidden_ranges,
            16,
        ),
        0x80c5_1000,
        4,
        0,
        8,
        fault_domain,
        endpoint_authority.id,
    )
    .expect("S142 strict lower-EL fault supervisor spawn");
    crate::ui::capability::grant_task_endpoint_to_task(
        endpoint_authority,
        controller_task,
        faulting_supervisor.task_id,
        CapabilityRights::ENDPOINT_RECV,
    )
    .expect("S142 faulting supervisor RECV grant");

    let event =
        RuntimeOomTransportEvent::try_new(2, source_event.id, source_event.oom_epoch, 0x5c02)
            .expect("S142 immutable event projection");
    let (fault_session, old_lease) = crate::mm::with_runtime_oom_supervisor_transport(|broker| {
        let initial = broker.snapshot();
        assert_eq!(
            initial.instance_id,
            crate::mm::RUNTIME_OOM_PRODUCTION_TRANSPORT_INSTANCE_ID
        );
        assert_eq!(initial.queued, 0);
        assert_eq!(initial.pending, 0);
        assert_eq!(initial.in_flight, 0);
        assert_eq!(initial.acknowledged, 1);
        assert_eq!(initial.supervisor_sessions_started, 2);
        assert_eq!(initial.supervisor_crashes, 1);
        assert_eq!(initial.recovered_inflight, 1);
        assert_eq!(initial.active_supervisor_session, None);
        assert_eq!(initial.active_supervisor_task_id, None);
        broker.enqueue(event).expect("S142 event enqueue");
        let session = broker
            .begin_supervisor_session_for_task(faulting_supervisor.task_id)
            .expect("S142 task-bound fault session");
        let lease = broker
            .claim_next_for_session(
                session,
                crate::arch::aarch64::exceptions::TICKS.load(Ordering::Acquire),
                S142_TIMEOUT_TICKS,
            )
            .expect("S142 task-bound fault lease");
        (session, lease)
    });
    drop(fault_publication_guard);

    let fault_spawned = crate::mm::with_boot_runtime_memory(|memory| memory.audited_snapshot())
        .expect("S142 fault-spawn RuntimeMemory authority")
        .expect("S142 fault-spawn RuntimeMemory audit");
    assert_eq!(fault_spawned.pmm.free_frames, baseline_free_frames - 5);
    assert_eq!(
        fault_spawned.active_allocations,
        baseline_active_allocations + 5
    );
    kprintln!(
        "[K1-MEM2-S142] lower-EL fault lifecycle-bound supervisor strict spawn PASS id={} pages={} domain={} endpoint={} owner={} TASK_BOUND=YES FAULT_VA=0x{:016x} INITIAL_X0=YES W^X=YES",
        faulting_supervisor.task_id,
        faulting_supervisor.page_count,
        fault_domain.id(),
        endpoint_authority.id,
        controller_task,
        S142_FAULT_VA,
    );

    let message = IpcMessage {
        label: S142_EVENT_LABEL,
        badge: controller_task,
        data: [
            old_lease.event().sequence_id(),
            old_lease.event().source_event_id(),
            old_lease.event().oom_epoch(),
            old_lease.event().fingerprint(),
        ],
    };
    let cancelled_reply =
        crate::ui::capability::mint_reply_endpoint_for_call(controller_task, endpoint_authority.id)
            .expect("S142 cancelled reply mint");
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s388_irq_guard = crate::arch::aarch64::IrqGuard::new();
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s388_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s388_qemu_s142_fault_cancelled_call_writer_guard_integration::acquire_s388_production_scheduler_writer_access()
        .unwrap_or_else(|error| {
            panic!(
                "S388 QEMU S142 fault-cancelled CALL scheduler writer guard failed closed: {:?}",
                error
            )
        });
    let cancelled_call = (&mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER))
        .ipc_kernel_call_and_wait(
            endpoint_authority.id,
            endpoint_authority.generation,
            cancelled_reply.id,
            message,
        );
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s388_writer_access);
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s388_irq_guard);
    assert_eq!(cancelled_call, Err(crate::ipc::IpcError::InvalidCapability));
    assert!(!crate::ui::capability::ENDPOINT_REGISTRY
        .lock()
        .iter()
        .any(|endpoint| endpoint.id == cancelled_reply.id));

    let automatically_recovered = crate::mm::with_runtime_oom_supervisor_transport(|broker| {
        let recovered = broker.snapshot();
        assert_eq!(recovered.pending, 1);
        assert_eq!(recovered.in_flight, 0);
        assert_eq!(recovered.acknowledged, 1);
        assert_eq!(recovered.supervisor_sessions_started, 3);
        assert_eq!(recovered.supervisor_crashes, 2);
        assert_eq!(recovered.recovered_inflight, 2);
        assert_eq!(recovered.active_supervisor_session, None);
        assert_eq!(recovered.active_supervisor_task_id, None);
        assert_eq!(
            broker.acknowledge_exact(old_lease, old_lease.deadline_tick()),
            Err(RuntimeOomTransportError::StaleLease)
        );
        assert_eq!(broker.snapshot(), recovered);
        recovered
    });
    assert_eq!(automatically_recovered.recovered_inflight, 2);

    let mut fault_reclaimed = false;
    for _ in 0..256 {
        let quota =
            crate::mm::with_boot_runtime_memory(|memory| memory.audited_domain_quota(fault_domain))
                .expect("S142 fault supervisor quota authority")
                .expect("S142 fault supervisor quota audit");
        if quota.allocated_frames == 0 {
            fault_reclaimed = true;
            break;
        }
        crate::task::yield_now();
    }
    assert!(
        fault_reclaimed,
        "S142 lower-EL fault supervisor did not reach exact reclaim"
    );
    let _ = crate::task::service_deferred_current_runtime_oom()
        .expect("S142 fault-supervisor later-stack reap");
    let post_fault = crate::mm::with_boot_runtime_memory(|memory| memory.audited_snapshot())
        .expect("S142 post-fault RuntimeMemory authority")
        .expect("S142 post-fault RuntimeMemory audit");
    assert_eq!(post_fault.pmm.free_frames, baseline_free_frames);
    assert_eq!(post_fault.active_allocations, baseline_active_allocations);

    let recovery_publication_guard = crate::arch::aarch64::IrqGuard::new();
    let replacement_supervisor = load_and_spawn_user_elf_from_boot_runtime_with_arg(
        "oom-fault-recovery-strict-el0-supervisor-elf",
        OOM_FAULT_RECOVERY_SUPERVISOR_BINARY,
        ElfLoadPolicy::new(
            AddressRange::new(0x03a0_0000, 0x03a1_0000),
            &no_forbidden_ranges,
            16,
        ),
        0x80c6_1000,
        4,
        0,
        8,
        replacement_domain,
        endpoint_authority.id,
    )
    .expect("S142 strict lower-EL fault recovery supervisor spawn");
    crate::ui::capability::grant_task_endpoint_to_task(
        endpoint_authority,
        controller_task,
        replacement_supervisor.task_id,
        CapabilityRights::ENDPOINT_RECV,
    )
    .expect("S142 replacement supervisor RECV grant");
    let (replacement_session, retry_lease) =
        crate::mm::with_runtime_oom_supervisor_transport(|broker| {
            let session = broker
                .begin_supervisor_session_for_task(replacement_supervisor.task_id)
                .expect("S142 task-bound replacement session");
            assert!(session.epoch() > fault_session.epoch());
            let lease = broker
                .claim_next_for_session(
                    session,
                    crate::arch::aarch64::exceptions::TICKS.load(Ordering::Acquire),
                    S142_TIMEOUT_TICKS,
                )
                .expect("S142 automatically recovered retry lease");
            assert!(lease.delivery_epoch() > old_lease.delivery_epoch());
            assert_eq!(lease.event(), old_lease.event());
            (session, lease)
        });
    drop(recovery_publication_guard);

    let recovery_spawned = crate::mm::with_boot_runtime_memory(|memory| memory.audited_snapshot())
        .expect("S142 recovery-spawn RuntimeMemory authority")
        .expect("S142 recovery-spawn RuntimeMemory audit");
    assert_eq!(recovery_spawned.pmm.free_frames, baseline_free_frames - 5);
    assert_eq!(
        recovery_spawned.active_allocations,
        baseline_active_allocations + 5
    );
    kprintln!(
        "[K1-MEM2-S142] replacement lifecycle-bound supervisor strict spawn PASS id={} pages={} domain={} endpoint={} owner={} TASK_BOUND=YES HANDOFF=ENDPOINT_CLOSE INITIAL_X0=YES W^X=YES",
        replacement_supervisor.task_id,
        replacement_supervisor.page_count,
        replacement_domain.id(),
        endpoint_authority.id,
        controller_task,
    );

    let retry_message = IpcMessage {
        label: S142_EVENT_LABEL,
        badge: controller_task,
        data: [
            retry_lease.event().sequence_id(),
            retry_lease.event().source_event_id(),
            retry_lease.event().oom_epoch(),
            retry_lease.event().fingerprint(),
        ],
    };
    let exact_reply =
        crate::ui::capability::mint_reply_endpoint_for_call(controller_task, endpoint_authority.id)
            .expect("S142 exact reply mint");
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s387_irq_guard = crate::arch::aarch64::IrqGuard::new();
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s387_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s387_qemu_s142_replacement_exact_ack_writer_guard_integration::acquire_s387_production_scheduler_writer_access()
        .unwrap_or_else(|error| {
            panic!(
                "S387 QEMU S142 replacement exact-ACK scheduler writer guard failed closed: {:?}",
                error
            )
        });
    let exact_ack = (&mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER))
        .ipc_kernel_call_and_wait(
            endpoint_authority.id,
            endpoint_authority.generation,
            exact_reply.id,
            retry_message,
        )
        .expect("S142 replacement strict EL0 exact ACK");
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s387_writer_access);
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s387_irq_guard);
    assert_eq!(exact_ack.label, S142_EXACT_ACK_LABEL);
    assert_eq!(exact_ack.badge, replacement_supervisor.task_id);
    assert_eq!(exact_ack.data, retry_message.data);
    crate::mm::with_runtime_oom_supervisor_transport(|broker| {
        assert_eq!(
            broker.acknowledge_exact(
                retry_lease,
                crate::arch::aarch64::exceptions::TICKS.load(Ordering::Acquire),
            ),
            Ok(event)
        );
        broker
            .close_supervisor_session(replacement_session)
            .expect("S142 replacement session close");
    });

    let endpoint_cleanup = crate::ui::capability::teardown_task_ipc_lifecycle(controller_task)
        .expect("S142 controller endpoint cleanup");
    assert_eq!(endpoint_cleanup.owned_endpoints, 1);
    assert_eq!(endpoint_cleanup.drained_calls, 0);
    assert_eq!(endpoint_cleanup.cancelled_responder_calls, 0);

    let mut replacement_reclaimed = false;
    for _ in 0..256 {
        let quota = crate::mm::with_boot_runtime_memory(|memory| {
            memory.audited_domain_quota(replacement_domain)
        })
        .expect("S142 replacement supervisor quota authority")
        .expect("S142 replacement supervisor quota audit");
        if quota.allocated_frames == 0 {
            replacement_reclaimed = true;
            break;
        }
        crate::task::yield_now();
    }
    assert!(
        replacement_reclaimed,
        "S142 replacement supervisor did not reach exact reclaim"
    );
    let _ = crate::task::service_deferred_current_runtime_oom()
        .expect("S142 replacement-supervisor later-stack reap");

    let final_snapshot = crate::mm::with_boot_runtime_memory(|memory| memory.audited_snapshot())
        .expect("S142 final RuntimeMemory authority")
        .expect("S142 final RuntimeMemory audit");
    assert_eq!(final_snapshot.pmm.free_frames, baseline_free_frames);
    assert_eq!(
        final_snapshot.active_allocations,
        baseline_active_allocations
    );
    let final_broker = crate::mm::with_runtime_oom_supervisor_transport(|broker| broker.snapshot());
    assert_eq!(final_broker.queued, 0);
    assert_eq!(final_broker.pending, 0);
    assert_eq!(final_broker.in_flight, 0);
    assert_eq!(final_broker.acknowledged, 2);
    assert_eq!(final_broker.supervisor_sessions_started, 4);
    assert_eq!(final_broker.supervisor_crashes, 2);
    assert_eq!(final_broker.recovered_inflight, 2);
    assert_eq!(final_broker.active_supervisor_session, None);
    assert_eq!(final_broker.active_supervisor_task_id, None);
    assert!(!crate::ui::capability::ENDPOINT_REGISTRY
        .lock()
        .iter()
        .any(|endpoint| endpoint.id == endpoint_authority.id
            || endpoint.id == exact_reply.id
            || endpoint.id == cancelled_reply.id));

    kprintln!(
        "[K1-MEM2-S142] source_event={} endpoint={} faulting_supervisor={} replacement_supervisor={} fault_domain={} replacement_domain={} SESSION=3->4 TASK_BOUND=YES LOWER_EL_SYNC_VECTOR=YES FAULT=EL0_DATA_ABORT_EC24 FAULT_VA=0x{:016x} AUTOMATIC_LIFECYCLE_RECOVERY=YES RECOVERY_CALLER=FATAL_TASK_EXIT CONTROLLER_RECOVERY_CALLS=0 PRE_ACK_FAULT=INVALID_CAPABILITY FAULT_IPC_CANCEL=1 RECOVERED_INFLIGHT_DELTA=1 OLD_LEASE_ACK=STALE RETRY_ACK=EXACT RESTARTED_EL0_ACK=YES REPLACEMENT_HANDOFF=ENDPOINT_CLOSE NORMAL_EXIT_RECOVERY=NONE REPLY_ONESHOT=1/1 BROKER_DRAINED=YES SESSIONS=4 CRASHES=2 ACKNOWLEDGED=2 FAULT_RECLAIM=5 RESTART_RECLAIM=5 OWNER_EP_CLEANUP=1 free={}->{}->{}->{}->{} active={}->{}->{}->{}->{} KERNEL_FAULTS=0 KERNEL_DIRECT_ACK=NO EXECUTOR=PASS",
        source_event.id,
        endpoint_authority.id,
        faulting_supervisor.task_id,
        replacement_supervisor.task_id,
        fault_domain.id(),
        replacement_domain.id(),
        S142_FAULT_VA,
        baseline_free_frames,
        fault_spawned.pmm.free_frames,
        post_fault.pmm.free_frames,
        recovery_spawned.pmm.free_frames,
        final_snapshot.pmm.free_frames,
        baseline_active_allocations,
        fault_spawned.active_allocations,
        post_fault.active_allocations,
        recovery_spawned.active_allocations,
        final_snapshot.active_allocations,
    );
    run_qemu_s143_reply_derived_broker_commit(
        source_event,
        final_snapshot.pmm.free_frames,
        final_snapshot.active_allocations,
    );
}
snippet sha256: 885774e174dbfile sha256: 3348a0639f2cfocus sha256: c960375ae5fb
02 · Ortak exclusion üyeliği

S247 production writer guard

tam Rust öğesiL233–L245
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s388_qemu_s142_fault_cancelled_call_writer_guard_integration.rs::acquire_s388_production_scheduler_writer_access

#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s388_production_scheduler_writer_access(
) -> Result<G8lS388ProductionSchedulerWriterAccess, G8lS247WholeSchedulerAccessError> {
    let caller_cpu =
        crate::percpu::try_current_cpu_id().ok_or(G8lS247WholeSchedulerAccessError::InvalidCpu)?;
    if caller_cpu != crate::g8l_runtime_contract::CPU0 {
        return Err(G8lS247WholeSchedulerAccessError::InvalidCpu);
    }
    let access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s246_whole_scheduler_read_access_guard::S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE
        .try_acquire_exclusive_for_valid_cpu(caller_cpu)?;
    Ok(G8lS388ProductionSchedulerWriterAccess { _access: access })
}
snippet sha256: a410f86d8eaefile sha256: 8ad8b6bf300d
03 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL544–L556
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s388_qemu_s142_fault_cancelled_call_writer_guard_integration.rs::boundary_has_exactly_one_s388_acquire_and_success_release_pair

#[test]
fn boundary_has_exactly_one_s388_acquire_and_success_release_pair() {
    let boundary = s142_boundary();
    assert_eq!(
        boundary
            .matches("acquire_s388_production_scheduler_writer_access")
            .count(),
        1
    );
    assert_eq!(boundary.matches("drop(s388_writer_access)").count(), 1);
    assert_eq!(boundary.matches("drop(s388_irq_guard)").count(), 1);
}
snippet sha256: 83982f96103dfile sha256: e8593fef071b
04 · Kapı kimlik kaydı

Operations sıra, kimlik ve başlık bağı

tam Operations kaydıL7226–L7471
website/src/lib/operations.ts::g8l-s388-qemu-s142-fault-cancelled-call-writer-guard-integration-partial
  {
    id: "g8l-s388-qemu-s142-fault-cancelled-call-writer-guard-integration-partial",
    date: "2026-08-29",
    sequence: 388,
    status: "passed",
    umbrella_status: "partial",
    title:
      "S388 · QEMU S142 fault-cancelled CALL production writer guard integration",
    summary:
      "S388, run_qemu_s142_lower_el_fault_recovery içindeki iki explicit mutable scheduler aliasından source-order önce gelen fault-cancelled CALL sınırını tek başına production guard'a bağlar. Nonzero controller identity, controller-owned normal Endpoint SEND authority, strict lower-EL faulting-supervisor RECV grant'i, immutable transport event, task-bound fault session/old lease, fault-publication IRQ release, immutable original message ve linked one-shot cancelled reply writer'dan önce tamamlanır. Dedicated S388 IRQ guard ardından gerçek per-CPU kimliğiyle CPU0-only exclusive writer S387 ve 44 production reader'ın kullandığı aynı statik S247 state word üzerinde alınır. Exact tek mutable SCHEDULER aliası yalnız endpoint id/generation, cancelled-reply id ve immutable message ile ilk ipc_kernel_call_and_wait çağrısını kapsar. Owned terminal sonuç önce writer, sonra IRQ release sınırını geçer; exact InvalidCapability doğrulaması ve cancelled-reply retirement ancak iki release sonrasında yapılır. Automatic fatal lifecycle recovery, old-lease StaleLease reddi, faulting-supervisor reclaim, RuntimePmm baseline ve complete S387 replacement exact-ACK path downstream'da kalır. Tarihsel S317/S318 model-only authority audit'leri production membership değildir; sıradaki S389 QEMU S141 replacement exact-ACK CALL ayrı kalır. Guarded writer 61/69, açık writer 8, provider authority 0 ve whole-scheduler exclusion false'dur. S142 fixture board-qemu, production wrapper RPi5-only olduğundan supported-profile runtime observation=0 açıkça korunur.",
    evidence: [
      "İlk canonical focused komut ayrı S388 module/source registration, CPU1 coverage service ve production S142 fault-cancelled membership'i yokken compile RED verdi; tarihsel S318 authority audit'i production entegrasyonu yerine geçirilmedi.",
      "İlk RED exit 101 verdi; /tmp/aselsanos-s388-initial-red.log 1321 B / 7f4a817cffcec8cb671ecc3ec531a2e19fd3b62597abbbad29199edbfe4fa45b SHA-256'dır.",
      "İlk production-wired focused koşu 41 PASS / 7 RED verdi; yedi reddin tamamı test source slicer, rustfmt/doc whitespace veya helper marker varsayımıydı. Ürün davranışı, exact first-alias ownership ve InvalidCapability sözleşmesi gevşetilmedi.",
      "İlk wired artifact /tmp/aselsanos-s388-focused-first.log 7563 B / a6f24ed1f541984f387897bc2d6b348c42255e57f5ee586431b19744cd3e36c4 SHA-256'dır ve nihai kabul diye etiketlenmez.",
      "Final focused koşu 48/48 PASS verdi; /tmp/aselsanos-s388-focused-green.log 3995 B / 1da8a4e85f6f7270b85cb0eb44f745936e8f57cce0428f5fe5c22058df37a9ed SHA-256'dır.",
      "S388 modülü typed S387 preflight outcome'unu yeniden doğrular; inherited 44 reader + 60 guarded writer + 9 open writer snapshot'ı saparsa InventoryDrift ile fail-closed kapanır.",
      "S388 başarı outcome'u SixtyFirstWriterGuardedAwaitingRemaining'dir ve exact 44 guarded reader + 61/69 guarded writer + 8 open writer envanterini sabitler.",
      "Production wrapper exact target_arch=aarch64, target_os=none, feature=board-rpi5 cfg kesişimindedir; host executor veya board-qemu fixture production lease runtime observation diye sunulmaz.",
      "acquire_s388_production_scheduler_writer_access gerçek try_current_cpu_id sonucunu kullanır; caller-supplied production CPU parametresi yoktur ve CPU0 dışı InvalidCpu ile mutation callback'inden önce kapanır.",
      "Writer lease S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu ile alınır; S388 yeni static, ikinci state word veya ayrı exclusion domain yaratmaz.",
      "Host executor callback'i exact bir kez çağırır; canlı reader writer'ı, canlı writer ikinci writer'ı ve yeni reader'ı aynı state word üzerinde reddeder; callback error RAII lease'ini exact bırakır.",
      "S387 ve S388 token'ları aynı shared gate üzerinde monoton ve ayrıdır; iki kapı tek transaction, range dispatcher veya toplu S335–S400 facade membership'i değildir.",
      "Production main.rs envanterinde S142 fault-cancelled CALL source-order positions[8], yani 17 explicit main aliasının dokuzuncusudur; S388 yalnız bu aliası sahiplenir.",
      "Aynı run_qemu_s142_lower_el_fault_recovery öğesinde iki mutable scheduler aliası korunur: source-order first fault-cancelled CALL S388 guarded, source-order second replacement exact-ACK CALL S387 guarded fakat ayrı transaction'dır.",
      "Controller current_task_id üzerinden nonzero alınır ve normal endpoint controller adına mint edilir; endpoint authority id/generation writer'a owned scalar girdiler olarak taşınır.",
      "Faulting supervisor ayrı RuntimeMemory domain'inde strict lower-EL ELF olarak spawn edilir ve yalnız ENDPOINT_RECV hakkı controller endpoint'i için writer'dan önce grant edilir.",
      "Immutable RuntimeOomTransportEvent sequence/source-event/epoch/fingerprint tuple'ı broker'a enqueue edilir; task-bound fault session ve old lease exact faulting-supervisor identity'sine bağlıdır.",
      "Fault publication IRQ guard ilk supervisor spawn/session/lease publication'ını kapsar ve S388 dedicated IRQ guard kurulmadan önce explicit bırakılır; iki guard nested tutulmaz.",
      "Original message S142_EVENT_LABEL, controller badge ve old_lease event tuple'ından immutable olarak kurulur; linked cancelled reply exact controller/endpoint bağıyla writer'dan önce mint edilir.",
      "Dedicated s388_irq_guard writer acquire'dan önce kurulur; acquire_s388_production_scheduler_writer_access, drop(s388_writer_access) ve drop(s388_irq_guard) exact birer kez görünür.",
      "Exact mutable alias ipc_kernel_call_and_wait(endpoint_authority.id, endpoint_authority.generation, cancelled_reply.id, message) çağrısını bir kez yapar ve sonucu owned cancelled_call değerine taşır.",
      "drop(s388_writer_access) drop(s388_irq_guard)'dan önce gelir; exact Err(crate::ipc::IpcError::InvalidCapability) assertion'ı ikisinden de sonra yürür.",
      "Scheduler referansı veya borrowed result writer lease dışına taşınmaz; release sonrasında yalnız owned Result değeri doğrulanır.",
      "Cancelled reply endpoint registry'den writer/IRQ release sonrasında emekli edilmiş olmak zorundadır; reply id writer'ın scope'una yeniden sokulmaz.",
      "Automatic lifecycle recovery sonucu pending=1, in_flight=0, acknowledged=1, sessions=3, crashes=2 ve recovered_inflight=2 snapshot'ını writer sonrasında doğrular.",
      "old_lease exact deadline tick ile acknowledge edilmeye çalışıldığında yalnız StaleLease kabul edilir ve broker snapshot'ı unchanged kalır; bu fail-closed sonuç S388 release'ten sonradır.",
      "Faulting supervisor domain quota 256 bounded yield içinde allocated_frames=0'a dönmelidir; deferred later-stack service sonrası RuntimePmm free frames ve active allocation baseline exact geri gelir.",
      "Fresh replacement supervisor, strict RECV grant, newer task-bound session/retry lease, retry message ve exact reply S388 release'ten sonra kurulur; bunlar S387'nin ayrı upstream context'idir.",
      "S387 replacement exact-ACK writer acquisition S388 release, automatic recovery, stale-lease rejection ve fault reclaim'den sonra gelir; S388 outcome sayacına eklenmez.",
      "S387 owned exact_ack kendi writer ve IRQ release sonrasında label, replacement task badge ve retry data ile doğrulanır; S388 bu ikinci sonuç üzerinde authority iddiası kurmaz.",
      "Broker retry acknowledge/session close, controller endpoint teardown, replacement reclaim ve final RuntimeMemory/broker drain iki writer transaction'ının da downstream'ında kalır.",
      "Final endpoint registry controller endpoint, exact reply ve cancelled reply kimliklerinin üçünü de içermemelidir; S388 release/check sınırı bu cleanup invariant'ından önce biter.",
      "S142 terminal runtime marker LOWER_EL_SYNC_VECTOR=YES, FAULT=EL0_DATA_ABORT_EC24, PRE_ACK_FAULT=INVALID_CAPABILITY, OLD_LEASE_ACK=STALE, RETRY_ACK=EXACT, REPLY_ONESHOT=1/1 ve BROKER_DRAINED=YES alanlarını korur.",
      "Scheduler helper aynı IRQ/IPC transaction altında caller SEND authority, normal Endpoint object, linked one-shot reply, optional receiver authority/deadline ve ready/blocked/reply/endpoint kapasitesini commit'ten önce yeniden doğrular.",
      "CALL envelope publish, caller context park ve optional immediate receiver delivery aynı helper transaction'ındadır; continuation aynı controller'ı yalnız valid linked reply veya exact cancellation sonucu ile resume eder.",
      "Focused source testi complete run_qemu_s142_lower_el_fault_recovery Rust öğesini, exact acquire→single mutable alias→first CALL→writer drop→IRQ drop focus'unu ve downstream cancellation/recovery/replacement sırasını birlikte doğrular.",
      "Focused test source-order second S387 aliasının S388 release'ten sonra kaldığını ve her iki acquire'ın tam bir kez göründüğünü doğrular; iki membership yanlışlıkla birleştirilemez.",
      "Focused test tarihsel S317 replacement audit'i ile S318 fault-cancelled audit'ini production membership'ten ayrı tutar; model exclusive lease kanıtı gerçek static wrapper yerine geçirilmez.",
      "Focused grup request yokken Idle, exact pending request ile SixtyFirstWriterGuardedAwaitingRemaining, yanlış CPU'da inherited S387 hatası ve preflight sonrasında S245 pending_view değerinin değişmeden kalmasını ayrı test eder.",
      "Envanter zinciri compile-time sabitlerle bağlandı: S388_GUARDED_READ_SITES == S387_GUARDED_READ_SITES == 44, S388 guarded writer == S387 + 1 == 61, toplam writer 69 ve açık writer 8'dir.",
      "Model executor CPU0'ın shared state word'e katılabildiğini, commit callback'inin tam bir kez çalıştığını ve CPU1 isteğinin callback'e hiç girmeden InvalidCpu ürettiğini ayrı sayaçlarla doğrular.",
      "Reader-vs-writer exclusion testi canlı immutable lease tutulurken S388 callback çağrı sayısını sıfırda tutar; writer-vs-writer testi canlı exclusive lease altında ikinci callback'i sıfırda tutar.",
      "Nested membership testi S388 exclusive callback'i çalışırken hem ikinci writer acquire'ı hem reader acquire'ını kapalı görür; callback Error döndürme testi sonraki acquire'ın yeniden mümkün olduğunu kanıtlar.",
      "Token testi S387 ve S388 executor'larını ardışık aynı gate üzerinde çalıştırır; receipt'ler kendi kapılarında kalırken S388 token'ı S387 token'ından ileridir.",
      "Production wrapper kaynak sözleşmesi exact S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE sembolünü, try_current_cpu_id() çağrısını, CPU0 karşılaştırmasını ve try_acquire_exclusive_for_valid_cpu yolunu birlikte arar.",
      'Production-only sembollerin tamamı aynı all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5") cfg\'sine bağlıdır; hostta sahte yarım production yoluna izin verilmez.',
      "S388 modül kaynak testi construct/provider/publish/admission mutator adlarını reddeder; yalnız pending request inspection ve coverage preflight'ına izin verir.",
      "Kernel ve simulation registration'ları exact uzun S388 module adıyla ayrı ayrı doğrulanır; S335–S400 toplu completion dosyasındaki sequence listesi production membership kanıtı sayılmaz.",
      "CPU1 coverage hook exceptions.rs içinde S387 service çağrısından sonra ve tarihsel S242 consumer'dan önce çalışır; service mutable SCHEDULER veya acquire_s388 çağırmaz.",
      "Runtime gözlem matrisi cfg kesişimini açık tutar: S142 acceptance fixture yalnız board-qemu altında çağrılırken production wrapper yalnız board-rpi5 altında derlenir; direct supported-profile runtime observation=0'dır.",
      "S388 coverage outcome tek bir toplam sayı vermekle yetinmez: request_id ile birlikte guarded_read_sites, guarded_writer_sites, open_writer_sites, transaction, mutable alias, upstream authority nesneleri, IRQ, forwarded CALL, downstream cancellation/recovery sınırları, direct caller ve runtime observation alanlarını typed olarak taşır. Böylece karttaki 61/69 sonucu kaynak kapsamından kopuk bir sayaç değildir.",
      "Outcome içindeki qemu_s142_fault_cancelled_call_transaction_sites ve mutable_scheduler_alias_sites alanları ayrı ayrı 1'dir. Birincisi iş mantığı transaction'ını, ikincisi unsafe mutable scheduler erişimini sayar; tek CALL görülmesi iki farklı aliasın veya bütün S142 fonksiyonunun guarded sayılması anlamına gelmez.",
      "Upstream controller_identity, endpoint_root, fault_supervisor_spawn, strict RECV grant, immutable event, fault_session, old_lease, publication_guard_release, fault_message ve cancelled_reply_mint alanlarının her biri 1 olarak raporlanır. Bu alanlar writer lease'in sahip olduğu mutation değil, writer'a gelmeden tamamlanması gereken sıra kanıtlarıdır.",
      "Downstream InvalidCapability validation, cancelled reply retirement, automatic recovery, stale lease rejection, fault reclaim ve S387 replacement CALL alanlarının her biri 1 olarak raporlanır. Bu alanların outcome'da görünmesi onların lease içine alındığı anlamına gelmez; tersine focused source testleri her birini S388 release sonrasında konumlandırır.",
      "S388 preflight None request'i Idle olarak döndürür ve hiçbir inventory advance uydurmaz. Exact pending S245 view ise request_id=1'i koruyarak typed sixty-first outcome üretir; preflight yalnız view okur, request state üzerinde take, publish, consume veya authority promotion yapmaz.",
      "Pending request tüketilmezliği state.pending_request_id()==Some(1) ile preflight çağrısından sonra tekrar ölçülür. Bu kontrol CPU1 coverage hook'unun gelecekteki provider tarafından tüketilmesi gereken S245 request'i yanlışlıkla sahiplenmesini engeller.",
      "Yanlış preflight CPU'su doğrudan yeni bir yerel hata yoluyla geçiştirilmez; S387 dependency zincirinin exact fail-closed CPU kontrolü üzerinden G8lS388WriterGuardIntegrationError::S387 olarak yükselir. Böylece S388 önceki kapının authority sözleşmesini atlayan bağımsız bir kabul noktası kurmaz.",
      "InventoryDrift hatası ölçülen guarded reader, guarded writer ve open writer değerlerini birlikte taşır. S387 outcome'undaki 44/60/9 snapshot'tan herhangi biri değişirse S388 61/8 sonucunu üretmeden durur; aritmetik sabitler source inventory değişimini maskeleyemez.",
      "Host executor receipt'i yalnız token ve owned output taşır; G8lS247WholeSchedulerExclusiveLease receipt'e veya callback dışına sızmaz. Commit callback Error döndürürse hata Commit(E) olarak korunur, RAII lease bırakılır ve ikinci doğrulama acquisition'ı yeniden başarıyla çalışabilir.",
      "Host executor lease release sonucunu acquisition token'ı ile debug_assert_eq üzerinden eşler. Token testi yalnız büyüklük karşılaştırması yapmaz; S387 receipt'inin S387 output'unu ve S388 receipt'inin S388 output'unu koruduğunu da doğrulayarak kapı kimliklerinin aynı gate üzerinde karışmadığını gösterir.",
      "Production access tipi lease alanını private tutar ve yalnız token() gözlemine izin verir. Çağıran kod state word'ü doğrudan değiştiremez, lease'i kopyalayamaz veya başka CPU kimliği adına inşa edemez; access nesnesinin Drop yaşam süresi exact guarded lexical scope'tur.",
      "Production acquire fonksiyonu parametresizdir; sequence=388, caller_cpu=0 veya dışarıdan hazırlanmış token kabul etmez. Runtime CPU kimliği percpu::try_current_cpu_id ile okunamadığında ve CPU0 olmadığında aynı InvalidCpu sonucu callback/mutable alias öncesinde oluşur.",
      "CPU1 service gerçek CPU1 dışında çağrılırsa CPU1+1 ile preflight'ın fail-closed kolunu kullanır. Gerçek CPU1'de yalnız inspect_s245_exclusion_admission_request_on_cpu1 çağrısı ve immutable view preflight'ı vardır; service kaynak parçasında SCHEDULER aliası ve S388 writer acquire sembolü bulunmaz.",
      "Exception service source sırası S387 coverage service < S388 coverage service < S242 sender runtime request consumer olarak test edilir. Bu sıralama yalnız coverage dependency'sidir; CPU1 timer zinciri CPU0 production writer lease'i almaz ve provider-authority constructor yayımlamaz.",
      "S388 modülü ayrı bir source unit olarak #![allow(unexpected_cfgs)] ile başlar; S335_TO_S396_WRITER_STAGES ve writer_stage(388) içermez. Ayrı dosya, ayrı typed outcome, ayrı executor ve ayrı production wrapper kullanımı toplu S335–S400 listesinde bir satır bulunmasının gerçek entegrasyon yerine geçirilmesini önler.",
      "Modül dokümantasyonu exact 'Eight production writers remain' ve yalnız 'S389 QEMU S141 replacement exact-ACK CALL is next' sınırını taşır. S390 crashed CALL'i next diye öne çekmez ve acquire_s389 sembolünü S388 kaynak birimine katmaz.",
      "Focused testin s142_boundary slicer'ı run_qemu_s142_lower_el_fault_recovery başlangıcından bir sonraki QEMU fonksiyon sınırına kadar complete Rust item'ı alır. Böylece yalnız grep eşleşmesi değil, iki CALL'in upstream/downstream bağlamı ve final broker/memory cleanup sırası aynı source öğesinde denetlenir.",
      "guarded_cancelled_call_boundary slicer'ı complete S142 öğesi içinde let s388_irq_guard başlangıcından drop(s388_writer_access) sonuna kadar exact nested focus çıkarır. Bu focus içinde bir mutable SCHEDULER aliası, bir ipc_kernel_call_and_wait, cancelled_reply.id ve original message vardır; exact_reply.id ile retry_message yoktur.",
      "Kernel helper slicer'ı scheduler.rs içindeki pub fn ipc_kernel_call_and_wait öğesini bir sonraki helper sınırına kadar alır. S388 kartı bu complete helper'ı test edilen uygulama kodundan ayrı bir excerpt olarak yayımlayarak CALL'in yalnız main.rs callsite görünümüne indirgenmesini önler.",
      "Source-order inventory testi tüm main.rs içinde 17 explicit mutable scheduler aliası sayar ve cancelled_call tanımından önce tam 8 alias bulunduğunu doğrular. Bu nedenle S388 membership main.rs envanterindeki dokuzuncu writer'dır; isim benzerliğine veya eski S318 sequence sırasına göre seçilmez.",
      "İki-alias testi complete S142 sınırında exact iki &mut *core::ptr::addr_of_mut!(...SCHEDULER) kullanımını korur. S388 focus'unda bunlardan yalnız ilki bulunurken sonraki replacement path kendi S387 acquire/release çiftiyle kalır; test hem s388 hem s387 acquisition sayısını exact 1 ölçer.",
      "S388 argument-forwarding testi endpoint_authority.id, endpoint_authority.generation, cancelled_reply.id ve message değerlerinin ilk ipc_kernel_call_and_wait çağrısına eksiksiz aktarıldığını doğrular. Replacement path'in exact_reply.id veya retry_message değerlerinin bu ilk çağrıya yanlış taşınması focus testi tarafından reddedilir.",
      "Source ordering assertion'ı cancelled_call owned sonucunun önce oluşturulduğunu, ardından s388_writer_access ve s388_irq_guard'ın bu sırayla bırakıldığını ölçer. InvalidCapability match'i ancak iki drop sonrasında aranır; borrowed scheduler sonucu release dışına taşınarak sonradan okunmaz.",
      "Cancelled reply retirement kontrolü yalnız metinde cancelled_reply sözcüğü aramaz: S388 IRQ release konumundan sonraki ENDPOINT_REGISTRY gözlemini, ardından cancelled_reply.id yokluk doğrulamasını source indeksleriyle sıralar. Böylece registry lock writer lease içine yanlışlıkla çekilirse test RED olur.",
      "Automatic recovery ve StaleLease testi S388 IRQ release < automatically_recovered < exact RuntimeOomTransportError::StaleLease sırasını ölçer. Old lease reddi recovery'den önceye veya guarded CALL içine taşınamaz; broker state'in immutable snapshot sözleşmesi bu sırayla korunur.",
      "Fault reclaim ve memory baseline testi S388 release < fault_reclaimed bounded-yield loop < post_fault RuntimePmm snapshot sırasını ölçer. Reclaim ürün kabulünün önemli bir parçasıdır ancak mutable CALL membership'i değildir; bu ayrım hem Operations anlatımında hem Code kartının nested focus etiketinde görünür.",
      "Replacement supervisor testi S388 release < replacement_supervisor spawn < S387 writer acquire sırasını exact source indeksleriyle doğrular. Bu, S387'nin önceki sequence numarasına rağmen runtime kaynak sırasının S388 cancellation sonrasında devam edebileceğini ve sequence günlüğünün kronolojik kanıt/red günlüğü olduğunu açıkça gösterir.",
      "Panic sözleşmesi generic 'writer guard failed' metnine bırakılmaz; production acquisition başarısızlığında exact 'S388 QEMU S142 fault-cancelled CALL scheduler writer guard failed closed' sınırı aranır. Operatör logu böylece replacement exact-ACK S387 hatasıyla karıştırılamaz.",
      "IPC helper authority testi IRQ guard < IPC_TRANSACTION_LOCK < current caller lookup < SEND authority revalidation < endpoint registry lock < linked reply validation sırasını korur. S388 dış wrapper'ı bu iç transaction doğrulamalarını kaldırmaz, öne almaz veya daha zayıf bir call helper ile değiştirmez.",
      "IPC helper kapasite testi waiting receiver discovery, ready queue reserve, blocked queue reserve, receiver authority validation, exact receive deadline validation ve endpoint.call commit sırasını korur. Her reserve/authority/deadline kontrolü mutation öncesindedir; allocation failure yarım publish/park durumuna dönüşmez.",
      "IPC helper atomicity testi endpoint.call < finish_call_park < current_task.take < blocked.push < optional CallOutcome::Deliver < transaction release sırasını denetler. Publish, park ve olası immediate delivery tek IPC transaction içindedir; S388 yalnız dış scheduler exclusion membership'i ekler.",
      "Helper continuation testi IPC transaction release < switch_after_ipc_park < resumed caller reconstruction < terminal IpcMessage result sırasını doğrular. Böylece S388 outer writer release sonrasında kontrol edilen owned InvalidCapability'nin iç transaction kilidi veya stale caller borrow'u üzerinde çalışmadığı kanıtlanır.",
      "Historical S318 test source'u fault-cancelled authority audit adını korur fakat acquire_s388_production_scheduler_writer_access içermez. S318'in model-level exclusive lease sonucu S388'in static S247 production membership'i olarak yeniden etiketlenmez.",
      "Historical S317 replacement audit'i ve production S387 replacement module'ü ayrı okunur; S387 kaynağında S388 acquire bulunmadığı ayrıca doğrulanır. Böylece üç katman — S317 model audit, S387 second-call production guard, S388 first-call production guard — Code kartlarında bağımsız kalır.",
      "Focused test source contract'ı generic execute_s335_to_s396_guarded_writer_commit çağrısını ve parametreli acquire_s388(...388) biçimini reddeder. Production callsite yalnız dedicated zero-argument wrapper kullanır; sequence table'dan dinamik dispatch veya yanlış sıra numarası ile membership seçilemez.",
      "S388 test hedefindeki 48 assertion tek başına bir pass sayısı değildir: 1 inventory, 4 request/preflight, 8 shared-gate/executor, 7 module/registration/cfg, 14 source-boundary/lifecycle, 4 IPC helper, 4 historical/adjacent service ve kalan runtime-scope/next-gate ayrımlarını kapsayan bağımsız failure yüzeyleridir.",
      "Focused acceptance'ta ilk yedi source-test reddi yeni üretim kodunun eksik membership'ini değil, testlerin bütün fonksiyon yerine yanlış substring almasını görünür kıldı. Slicer'lar complete item ve exact nested focus ayrımına taşındı; assertion'lar silinmedi, count azaltılmadı ve iki CALL tek scope altında kabul edilmedi.",
      "S387 historical source assertion düzeltmesi tüm S142 işlevini S387 membership saymak yerine yalnız replacement acquire→release focus'unu seçti. S318 assertion düzeltmesi ise inline match yerine writer/IRQ release sonrasına taşınmış owned cancelled_call match'ini kabul etti; her iki değişiklik mevcut production semantics'e uyum güncellemesidir.",
      "Selected regression'deki altı grup S388'in yanında hem adjacent S387 üretim kapısını, hem S317/S318 tarihsel audit'lerini, hem de gerçek lower-EL fault ve automatic lifecycle recovery runtime senaryolarını seri çalıştırır. Böylece yalnız yeni test target'ının kendi fixture'ı üzerinden kendini doğrulamasıyla yetinilmez.",
      "İki-geçişli dependency acceptance S238'den S388'e kadar her gate test target'ını ayrı süreç sırasıyla yürütür ve yalnız timing alanlarını normalize eder. Canonical özetlerin byte-exact SHA eşitliği test isimleri, pass/fail adetleri veya kapı sırası farklıyken gizlenemez.",
      "Filtered workspace kabulü yedi tarihsel frozen assertion'ı explicit filtre listesiyle ayırır; 351 result group ve 5641 PASS sayısı global unfiltered GREEN diye sunulmaz. Filtresiz koşunun frozen S96'daki tek RED'i ayrıca exit 101 ve ayrı raw/summary hash ile saklanır.",
      "Fresh profil kanıtı dört cargo invocation'ın ortak incremental cache'e dayanmasını önlemek için CARGO_INCREMENTAL=0 ve ayrı target dizinleri kullanır. Build log byte/hash ile ELF byte/hash ayrı ölçülür; warning header adetleri gizlenmez ve bir profil ELF'i diğer profil için kanıt sayılmaz.",
      "QEMU acceptance bütün test marker'larını geçen gerçek board-qemu guest logudur; S142 lower-EL fault, broker recovery ve exact retry davranışını kapsar. Buna rağmen S388 wrapper cfg'si board-rpi5 olduğu için rapor runtime observation=0 değerini değiştirmez; compile presence ile invocation evidence birbirinden ayrılır.",
      "Code registry üreticisi her published sequence için tek Operation kaydına güvenmez: writer-guard kapılarında exact production path/symbol focus override'ı, focused-test kapılarında kaynak/test ilişkisi, command-contract kapılarında Makefile veya script hedefi ve kalanlarda operation-record fallback'i kullanır.",
      "S388 registry override'ı kernel/src/main.rs içindeki complete run_qemu_s142_lower_el_fault_recovery öğesini seçer ve nested focus'u drop(s388_writer_access) iğnesinde bitirir. Bu override S387'nin aynı complete item içindeki drop(s387_writer_access) odağından ayrıdır; iki Code kartı aynı bağlamı gösterse de guarded satırları farklıdır.",
      "Kullanıcının istediği S328 öncesi kapsam yalnız başlık listesi değildir: registry S1'den S327'ye kadar bütün sequence değerlerinin tam birer kaydını, monoton sıra dizisini, boş missingSequences listesini, duplicate=0 sonucunu ve her excerpt için repository-relative source path + line span + SHA-256 kimliğini üretir.",
      "Pre-S328 uyumluluk testi temsili erken/orta/geç kapıları exact tür ve kaynakla doğrular: S1 Makefile command-contract, S33 frame_allocator focused-test, S92 physical raw script command-contract, S109 Makefile command-contract, S120 Operations record, S142 main.rs focused-test, S163 simulation migration ve S198 kernel exclusion kaynağıdır.",
      "Pre-S328 sınır testi S327'yi exact writer inventory reconciliation Rust modülüne bağlar; S328 ayrı historical next gate olarak bir kez kalır. Böylece eski kapılar geriye dönük olarak S335–S396 writer table satırlarına veya güncel S388 production dosyasına topluca bağlanmaz.",
      "Registry kabulü S1, S327, S328, S387 ve S388 kartlarını exact birer kez sayar, S389'u yayımdan önce reddeder ve missingSequences=[] bekler. Arayüzde görünen S listesi ile generated JSON içeriği aynı current/total değerlerinden beslendiği için kartı olmayan bir menü satırı kabul edilmez.",
      "Her Code kartı mappingStrategy, kind, sourcePath, complete excerpt ve varsa nested production focus alanını birlikte taşır. Test komutu ile test edilen kod ayrı panellerde yayımlanır; yalnız cargo komutu veya Operations sonucu gösterilerek asıl Rust/Make/script kaynağı gizlenmez.",
      "Code sayfası source disclosure'ları varsayılan açık sunar, max-height/overflow kırpması kullanmaz ve complete Rust item ile exact kapı focus'unu ayrı etiketler. Uzun S388 kartının görünür olması içerik yoğunluğunu azaltarak değil, disclosure içindeki bütün excerpt'leri erişilebilir tutarak çözülür.",
      "Shared navigation sözleşmesi İşlemler < Kod < Misyon sırasını test eder. /code rotası Cloudflare için Cache-Control public, max-age=0, must-revalidate, no-transform taşır; canlı readback'te generated HTML'nin edge minification nedeniyle yerel out byte'larından sapmaması hedeflenir.",
      "Operations, Timeline ve Yol Haritası S388 current sequence'ını aynı generated registry currentSequence=388 değeriyle çapraz doğrular. Forecast metni bağlayıcı olmayan plan olarak kalır; S388 teknik completion, R1/R2/R3 ürün tahmini veya fiziksel kabul diye yeniden adlandırılmaz.",
      "Selected regression ilk olarak S387'nin whole-S142 source assertion drift'ini, sonra S318'in eski inline InvalidCapability spelling'ini RED yakaladı; ikisi exact S387/S388 ayrımına taşındı ve ürün akışı değiştirilmedi.",
      "Final selected regression S388, S387, tarihsel S318, tarihsel S317, runtime_oom_lower_el_fault_recovery ve runtime_oom_lifecycle_recovery gruplarında 6 grup / 138/138 PASS verdi.",
      "Selected log /tmp/aselsanos-s388-selected.log 13925 B / 700b3c906ed59796251e0eb48b127676a8e4f126bbf9db831ab8187aceb4a6a9 SHA-256'dır.",
      "S238–S388 dependency matrisi iki bağımsız seri koşuda 152 grup / 3763/3763 PASS verdi; süre-normalize 32756 B özetler 22133d95c3158a99289a088c77d0ef67eb1fe2319001ae08c19423ece2e7dd33 ile byte-exact eşittir.",
      "Dependency artifact root /tmp/aselsanos-s388-dependency.eWSfKi'dir. Ham run1 376314 B / 7eb668e8f79862c40960b8c0e8468ff2e4cc305ed43e6dfe42c4a439695e4722 ve run2 361070 B / 0a759248393102693a82ae11fbd63e337ca459b3fb6450ee829514b811ca77ae'dir.",
      "Exact yedi tarihsel frozen assertion dışındaki serial workspace 351 result group / 5641 PASS / 0 fail / 7 filtered verdi; raw log 74751 B / 724810022cfad7a576207773b36d51237453b0ffce456c073f4e06eb4ca041e3 SHA-256'dır.",
      "Filtered workspace normalize summary 26556 B / a38d5c013461e7c0130ecd1befcf353b0ce1354f36697348d681cbfe76c6a785 SHA-256 ve artifact root /tmp/aselsanos-s388-workspace.2wPG6S'dir.",
      "Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope assertion'ında durdu; 304 result group / 5386 PASS / 1 fail ve global workspace GREEN claimed=false'dur.",
      "Filtresiz raw log 69973 B / 962b2adabd4073287a3d06f04adfe636be44963eeb97f0c7fe1ef17da877970e ve summary 23030 B / 681a3518bd3476f94b2e53a295f95252705566f43271074da094627cef7da98f'dir.",
      "Dört fresh canonical AArch64 profil kernel çalışma dizininden, CARGO_INCREMENTAL=0 ve birbirinden ayrı target dizinleriyle 4/4 exit 0 verdi; zero-warning iddiası yoktur.",
      "Fresh board-qemu logu 111882 B / 80b3d53b66236e9d23f48b774782d920a8edf3ac9f8edac8a6707c4b9a383e3b ve 293 warning header; ELF 16814096 B / 6612a5db3d142dcc9082912c6ae23f3c276b9ff55fc568873247348b960089d8'dir.",
      "Fresh board-rpi4 logu 150623 B / ae14d5939d2294ecd82e94cf8be49649c27c0199a3889816f036eebb0d84c737 ve 391 warning header; ELF 11925488 B / 6b20e77e29e727f36d5067735b4136e2dede590d8ca6cc6ed7d4da92b315e2bc'dir.",
      "Fresh board-rpi5 logu 654731 B / 072297b69208ac1bf5d9a69826709a33787c4d2c1547e0fb02a8697798f3b429 ve 1498 warning header; ELF 15317008 B / 38d294eb131b3be3706b51b064d24c4c1b818a972b66629e8a4d758d30bc3acf'dir. Wrapper compile olur fakat board-qemu-only caller olmadığı için runtime invocation=0'dır.",
      "Fresh board-rpi5+smp logu 654673 B / e05244fdbe52c2b9b33199a057d85e22229dd46409ed99249d418fddf4901569 ve 1498 warning header; ELF 15305472 B / e4f7b8f1c9f83c573b1a3b22c1a9b1eb76fabc20e2a9f28dfbb106fc5fbc7317'dir. Compile success Generic SMP arbitration kanıtı değildir.",
      "Dört profil /tmp/aselsanos-s388-profiles.EysbrY altında tutulur; build log ve ELF byte/hash ölçüleri birbirine karıştırılmaz ve release artifact'i profil kanıtı sayılmaz.",
      "CARGO_INCREMENTAL=0 make verify-qemu 116354 B / 46926fb10b2ea92d6b6a71a1c6d9096815e5e7080a603521e61b899ee531d073 SHA-256 ile strict ELF W^X 31/31, S130–S154 + S271, RuntimePmm, EL0 return x4096, IPC 20/20 ve scheduler SEC5 PASS verdi.",
      "QEMU logunda exact S142 actual lower-EL Data Abort, fatal lifecycle recovery, stale old lease ve replacement exact retry senaryosu gözlendi; board-qemu guest RPi5-only S388 lease'ini compile etmediği için bu supported-profile writer runtime observation değildir.",
      "İlk cargo fmt --all -- --check tek S318 assertion satır-kırımı farkını RED gösterdi; exact rustfmt yerleşimi uygulandı, ardından S318 15/15 ve S388 48/48 tekrar PASS verdi.",
      "Final cargo fmt --all -- --check exit 0 ve boş çıktı verdi; 0 B / e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 SHA-256 ile global format kabulü GREEN'dir.",
      "S388 proof dosyası owned boundary, kapsam, TDD, selected regression, iki-geçişli dependency, filtreli/filtresiz workspace, dört profil, QEMU/format ve code publication contract bölümlerini ayrı taşır.",
      "Code yayın hedefi S1–S388 388/388 ayrı source-bound kapıdır; özellikle kullanıcının istediği S328 öncesi S1–S327 aralığı 327/327 tekil kalmalı, missing=none ve duplicate=0 olmalıdır.",
      "S388 Code kartı complete run_qemu_s142_lower_el_fault_recovery Rust öğesini, yalnız first fault-cancelled CALL'e ait nested acquire→release focus'unu, complete S388 module'ünü, complete 48-test target'ını, proof'u ve complete Operations object'ini yayımlar.",
      "Complete production excerpt iki S142 CALL'i bağlamıyla gösterirken nested focus yalnız s388_writer_access acquisition'dan drop(s388_writer_access)'e kadar kesilir; okuyucu S388 first cancellation ile S387 replacement membership'ini ayırt eder.",
      "S1, S327, S328, S387 ve S388 kartlarının exact birer kez görünmesi ve S389'un pre-publish edilmemesi website kabulünde sayılacaktır.",
      "İlk website kabulü source registry freshness kontrolüyle birlikte 700/700 test PASS, ESLint PASS, TypeScript exit 0/boş çıktı ve 24/24 static route verdi. Export 200 dosyadır; Timeline ile Yol Haritası ayrı ayrı 227 data-gate-policy kartı taşır.",
      "İlk production payload source registry'si S1–S388 388/388, pre-S328 S1–S327 327/327, 1120 exact excerpt, missing=none ve duplicate=0 sonucunu verdi. Mapping 61 writer-guard + 225 focused-test + 94 command-contract + 8 operation-record = 388'dir.",
      "İlk registry JSON 8698049 B / 0a252b0ffe7088b1b3ce185ba547b7fa003590eddd137efc4fbc5bef66e77d2e dosya SHA-256 ve eb2679254162e3e4bbae004c7a2d4b3e3c958378a93cdd864a5c5a501a7409fd registry payload SHA-256 taşır.",
      "İlk production/main deployment handle b6f20ef8, immutable URL https://b6f20ef8.aselsan-microkernel.pages.dev ve 115 upload + 84 existing asset sonucu verdi. Immutable hostname doğrudan probe'u 30 saniyede curl exit 28 / HTTP 000 ile zaman aşımına uğradı; doğrulandı iddiası kurulmadı.",
      "İlk cache-busted custom-domain /code/ readback'i HTTP 200, 24431738 B / 668e30282431dccbc3e5ace9ecc729f898be17287e65d5e7093732a71e130783 SHA-256 ve yerel out ile raw-byte exact PASS verdi; response no-transform, must-revalidate ve nosniff başlıklarını korudu.",
      "İlk cache-busted /operations/ readback'i HTTP 200, 14754930 B / a9a72fab4c675e5bba09b367ae859559f9f4d3c7f9d69a3d338184d3f5ba6359 SHA-256 ve yerel out ile raw-byte exact PASS verdi.",
      "İlk cache-busted /timeline/ readback'i HTTP 200, 6111973 B / 1fc079374e5c9de4c6592497501c8a46cd238528f81aa9f5b9dcaf03cb09d2b5 SHA-256; /yol-haritasi/ ise HTTP 200, 6111721 B / 5f16e1fb250a43e95fda0a733c385a2a98dca947ea0edc47c627944c8b9497ec SHA-256 verdi. İkisi de kendi yerel out dosyasıyla raw-byte exact PASS'tir.",
      "İlk yayın öncesi S388 çekirdek policy ölçümü 33478 karakter / 34978 UTF-8 byte, S387 ise 25953 karakter / 26949 byte'dır. S388'in uzunluğu kısa özetle değil source/test/publication ayrımlarının eklenmesiyle artmıştır ve yoğunluk ilişkisi website testinde korunur.",
      "S388 için güç, SD kart, Mac kart erişimi, UART capture, raw validation, archive veya promotion işlemi yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S388=NO.",
      "Bağlayıcı olmayan S388 projeksiyonu R1 S388–S418, R2 S443–S493, R3 S572+, risk aralığı S548–S598 ve merkez yaklaşık S573'tür; sıra veya ürün taahhüdü değildir.",
    ],
    commands: [
      "CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s388_qemu_s142_fault_cancelled_call_writer_guard_integration -- --test-threads=1",
      "run S388, S387, S318, S317, runtime_oom_lower_el_fault_recovery and runtime_oom_lifecycle_recovery groups serially",
      "run S238-S388 dependency list twice and normalize timing fields",
      "run filtered and unfiltered serial workspace audits",
      "run four fresh isolated AArch64 profiles",
      "CARGO_INCREMENTAL=0 make verify-qemu",
      "cargo fmt --all -- --check",
      "npm test && npm run lint && npx tsc --noEmit && npm run build",
      "npm run deploy",
      "cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
    ],
    terminalSessions: [
      {
        id: "g8l-s388-focused-source-contract",
        title: "S388 focused S142 fault-cancelled CALL writer membership",
        commandLines: [
          "CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s388_qemu_s142_fault_cancelled_call_writer_guard_integration -- --test-threads=1",
        ],
        outputLines: [
          "initial result: compile RED; S388 module/source/service and production S142 first-call boundary missing",
          "first wired result: 41 PASS / 7 RED; source slicer, rustfmt/doc whitespace and helper marker assumptions",
          "final result: 48/48 PASS; exact first alias and owned InvalidCapability release order",
          "shared S247 gate: 44 guarded readers + 61/69 guarded writers; 8 writers open",
          "board-qemu fixture / board-rpi5 wrapper supported-profile intersection=0; provider authority=0",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s388-selected-regression",
        title:
          "S388 selected S142 cancellation and historical authority regression",
        commandLines: [
          "run S388, S387, S318, S317, runtime_oom_lower_el_fault_recovery and runtime_oom_lifecycle_recovery serially",
        ],
        outputLines: [
          "initial historical source assertion: S387 RED; whole-S142 membership assumption replaced by exact replacement focus",
          "second historical source assertion: S318 RED; inline InvalidCapability spelling updated to owned-result post-release contract",
          "final result: 6 groups / 138 passed / 0 failed",
          "S317/S318 remain model-level audits; S387 and S388 are two separate production memberships",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
      {
        id: "g8l-s388-full-acceptance",
        title:
          "S388 dependency, workspace, profiles, QEMU and format acceptance",
        commandLines: [
          "run S238-S388 dependency list twice and normalize timing fields",
          "run filtered and unfiltered serial workspace audits",
          "run four fresh isolated AArch64 profile builds",
          "CARGO_INCREMENTAL=0 make verify-qemu",
          "cargo fmt --all -- --check",
        ],
        outputLines: [
          "dependency 152 groups / 3763/3763 twice; canonical summaries 32756 bytes and byte-exact SHA-256 identical",
          "filtered workspace 351 groups / 5641 PASS / 7 filtered; unfiltered frozen-S96 remains RED at 5386 PASS / 1 fail",
          "four fresh profiles 4/4 exit 0; build-log and ELF identities measured separately; zero-warning claim=false",
          "QEMU W^X 31/31 + S130-S154 + S271 + IPC 20/20 + SEC5 PASS; not an S388 writer runtime observation",
          "final global rustfmt check exit 0 with empty output; post-format S318 15/15 and S388 48/48",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s388-production-publication",
        title: "S388 Operations/Timeline/Code production publication",
        commandLines: [
          "npm test && npm run lint && npx tsc --noEmit && npm run build",
          "npm run deploy",
          "cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
        ],
        outputLines: [
          "website acceptance: 700/700 PASS; lint PASS; TypeScript exit 0 empty; static routes 24/24; export files=200; gate-policy cards=227 per route",
          "initial registry: S1-S388 388/388; pre-S328 S1-S327 327/327; 1120 exact excerpts; missing=none; duplicate=0",
          "initial production/main deployment b6f20ef8: 115 uploaded + 84 existing assets",
          "initial custom-domain /code/, /operations/, /timeline/ and /yol-haritasi/: HTTP 200 + local-out raw-byte exact; /code/ no-transform/nosniff",
          "immutable deployment hostname probe: curl exit 28 / HTTP 000 after 30-second timeout; not claimed verified",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
    ],
    terminalSessionsNote:
      "S388 altmış birinci production writer'ın dar kaynak entegrasyonudur. Yalnız S142 source-order first fault-cancelled CALL mutable scheduler aliası guarded'dır; upstream authority/publication ve downstream InvalidCapability/reply retirement/recovery/reclaim ile ayrı S387 replacement transaction'ı membership dışında kalır. Teknik kanıt GREEN, bütün scheduler exclusion ve ürün kabulü PARTIAL'dır.",
    limitations: [
      "Sekiz production writer aynı shared gate dışında kaldığı için whole-scheduler exclusion ve provider authority açık kalır.",
      "Board-qemu S142 fixture ile board-rpi5-only S388 wrapper aynı supported profilde kesişmez; production writer runtime invocation/observation kanıtı yoktur.",
      "QEMU S142 kabulü gerçek lower-EL fault/recovery ürün senaryosunu doğrular, fakat RPi5-only writer lease'in runtime'da alındığını doğrulamaz.",
      "S387 replacement exact-ACK ayrı prior membership'tir; S388 iki aliası tek range guard altında birleştirmez.",
      "run_qemu_s141_automatic_lifecycle_recovery replacement exact-ACK writer sınırı sıradaki ayrı S389 kapısıdır.",
      "Generic SMP arbitration, transient-contention liveness/soak ve fiziksel RPi kabulü açık kalır.",
      "S388 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S388=NO.",
    ],
  },
snippet sha256: 9e6601802d3bfile sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s388_qemu_s142_fault_cancelled_call_writer_guard_integration -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S388-QEMU-S142-Fault-Cancelled-Call-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06