S387 · SOURCE-BOUND GATE EVIDENCE
S387 · QEMU S142 replacement exact-ACK production writer guard integration
tam production Rust öğesi + exact acquire→release odağı → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S387 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S387Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s387-qemu-s142-replacement-exact-ack-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 öğesiL10631–L11021kapı odağı L10909–L10926
kernel/src/main.rs::run_qemu_s142_lower_el_fault_recovery
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S387 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: 885774e174db…file sha256: cc118c00d93c…focus sha256: f743d8f8b7e6…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL232–L244
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s387_qemu_s142_replacement_exact_ack_writer_guard_integration.rs::acquire_s387_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s387_production_scheduler_writer_access(
) -> Result<G8lS387ProductionSchedulerWriterAccess, 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(G8lS387ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: 5d9c66a580e0…file sha256: d0d32d90c97c…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL562–L574
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s387_qemu_s142_replacement_exact_ack_writer_guard_integration.rs::boundary_has_exactly_one_s387_acquire_and_success_release_pair
#[test]
fn boundary_has_exactly_one_s387_acquire_and_success_release_pair() {
let boundary = s142_boundary();
assert_eq!(
boundary
.matches("acquire_s387_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(boundary.matches("drop(s387_writer_access)").count(), 1);
assert_eq!(boundary.matches("drop(s387_irq_guard)").count(), 1);
}snippet sha256: 2df6cbca6d61…file sha256: f48954b93993…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL7472–L7689
website/src/lib/operations.ts::g8l-s387-qemu-s142-replacement-exact-ack-writer-guard-integration-partial
{
id: "g8l-s387-qemu-s142-replacement-exact-ack-writer-guard-integration-partial",
date: "2026-08-29",
sequence: 387,
status: "passed",
umbrella_status: "partial",
title:
"S387 · QEMU S142 replacement exact-ACK production writer guard integration",
summary:
"S387, run_qemu_s142_lower_el_fault_recovery içindeki iki explicit mutable scheduler aliasından source-order sonra gelen replacement-supervisor exact-ACK CALL sınırını tek başına production guard'a bağlar. Nonzero controller, controller-owned normal Endpoint SEND authority, ilk faulting supervisor'ın strict EL0 RECV grant'i, immutable event ve task-bound fault session/lease writer'dan önce kurulur. İlk fault-cancelled CALL exact InvalidCapability verir; cancelled reply retired olur, fatal lifecycle recovery broker event'ini yeniden pending yapar, old lease StaleLease ile reddedilir ve faulting supervisor exact reclaim edilir. Fresh replacement supervisor, strict RECV grant, daha yeni task-bound session/retry lease, immutable retry message, linked one-shot exact reply ve recovery publication guard release yine writer'dan önce tamamlanır. Dedicated IRQ guard ardından gerçek per-CPU kimliğiyle CPU0-only S387 exclusive writer S386 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, exact reply id ve immutable retry message ile ipc_kernel_call_and_wait çağrısını kapsar. Owned ACK önce writer, sonra IRQ release sınırını geçer; exact label, replacement task badge ve retry message data doğrulaması ancak release'ten sonra yapılır. Broker exact acknowledge/session close, controller endpoint cleanup, replacement reclaim, RuntimePmm baseline ve final broker drain downstream'da kalır. Tarihsel S317 replacement ve S318 fault-cancelled writer-authority audit'leri model-only'dir; source-order ilk fault-cancelled CALL S388 için açık kalır. Guarded writer 60/69, açık writer 9, 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ı S387 module/source registration, CPU1 coverage service ve production S142 replacement exact-ACK membership'i yokken compile RED verdi; tarihsel S317 veya S318 authority audit'i production entegrasyonu yerine kullanılmadı.",
"İlk RED exit 101 verdi; /tmp/aselsanos-s387-initial-red.log 2153 B / 31b92da4a5215bf1ab86fe2ce3b296fa5ab43d976026fe53e933f72f34cc1f67 SHA-256'dır.",
"İlk production-wired focused koşu 41 PASS / 5 RED verdi; beş reddin tamamı test source slicer'ının ilk broker closure ve önceki stale-lease ACK sınırını seçtiğini yakaladı, ürün kodu veya kabul assertion'ı gevşetilmedi.",
"Focused slicer exact S387 writer release sonrasından downstream broker closure'ını arayacak biçimde daraltıldı; ilk fault-cancelled CALL, stale-lease reddi ve replacement exact ACK ürün akışı değiştirilmedi.",
"İlk wired artifact /tmp/aselsanos-s387-focused-first.log 6575 B / 648d7ae85bfa0d4354a8adac8a293aed053b48abad4377b673951bbcc14b0e3a SHA-256'dır ve 41 PASS / 5 RED sonucu nihai kabul diye etiketlenmez.",
"Final focused koşu 46/46 PASS verdi; /tmp/aselsanos-s387-focused-green.log 3837 B / 14e677f11d0b2d2ccb905a90c054eeb72d05409f3d868f611cee10ff SHA-256'dır.",
"S387 modülü typed S386 preflight outcome'unu yeniden doğrular; inherited 44 reader + 59 guarded writer + 10 open writer snapshot'ı saparsa InventoryDrift ile fail-closed kapanır.",
"S387 başarı outcome'u SixtiethWriterGuardedAwaitingRemaining'dir ve exact 44 guarded reader + 60/69 guarded writer + 9 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_s387_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; S387 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.",
"S386 ve S387 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 replacement CALL source-order positions[9], yani 17 explicit main aliasının onuncusudur; S387 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 için açık, source-order second replacement exact-ACK CALL S387 guarded'dır.",
"Controller task 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 çok ö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 fault-cancelled scheduler CALL'den önce bırakılır; bu guard S387 dedicated IRQ guard'ı değildir.",
"İlk message old lease event tuple'ından kurulur ve linked cancelled reply exact controller/endpoint bağıyla mint edilir; bunlar S388'in açık source-order first writer sınırına aittir.",
"İlk ipc_kernel_call_and_wait exact InvalidCapability verir ve cancelled reply endpoint registry'den silinmiş olmak zorundadır; S387 bu önceki writer aliasını guarded diye saymaz.",
"Automatic lifecycle recovery snapshot'ı pending=1, in_flight=0, acknowledged=1, sessions=3, crashes=2 ve recovered_inflight=2 değerlerini 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ç replacement publication'dan öncedir.",
"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.",
"Recovery publication guard fresh replacement strict EL0 supervisor spawn'ını, controller endpoint RECV grant'ini, task-bound replacement session'ı ve retry lease claim'ini kapsar.",
"Replacement session epoch fault_session epoch'undan, retry delivery epoch old_lease delivery epoch'undan büyüktür; retry lease event'i old lease event'iyle exact eşittir.",
"drop(recovery_publication_guard) dedicated s387_irq_guard kurulmadan önce gelir; publication kilidi whole-scheduler writer lease'iyle nested tutulmaz.",
"Recovery-spawn RuntimeMemory snapshot'ı replacement domain için baseline'dan exact beş frame ve beş active allocation sapmasını doğrular; writer bu bellek publication etkilerini kapsamaz.",
"retry_message label S142_EVENT_LABEL, badge controller_task ve data alanı retry_lease event sequence/source/epoch/fingerprint değerlerinden immutable olarak writer'dan önce kurulur.",
"exact_reply controller task ile endpoint_authority.id arasındaki linked one-shot reply capability olarak writer'dan önce mint edilir; S387 reply mint veya publication mutation'ını guard kapsamına katmaz.",
"Dedicated s387_irq_guard writer acquire'dan önce kurulur; acquire_s387_production_scheduler_writer_access, drop(s387_writer_access) ve drop(s387_irq_guard) exact birer kez görünür.",
"Exact mutable alias ipc_kernel_call_and_wait(endpoint_authority.id, endpoint_authority.generation, exact_reply.id, retry_message) çağrısını bir kez yapar ve exact S142 replacement strict EL0 exact ACK expect sözleşmesini korur.",
"Owned exact_ack writer ve IRQ release'ten sonra S142_EXACT_ACK_LABEL, replacement_supervisor.task_id badge ve retry_message.data ile üç ayrı assertion üzerinden doğrulanır.",
"Scheduler referansı veya borrowed ACK writer lease dışına taşınmaz; release sonrasında yalnız owned IpcMessage alanları okunur.",
"Broker acknowledge_exact retry_lease ve gerçek TICKS değeriyle exact event döndürür; close_supervisor_session(replacement_session) bundan sonra yürür ve ikisi de S387 writer membership dışında kalır.",
"Controller teardown_task_ipc_lifecycle exact owned_endpoints=1, drained_calls=0 ve cancelled_responder_calls=0 sonuçlarını doğrular; cleanup writer release'ten sonradır.",
"Replacement supervisor domain quota bounded yield/reaper zincirinde allocated_frames=0'a döner; final RuntimeMemory free frames ve active allocations giriş baseline'ıyla exact eşittir.",
"Final broker queued/pending/in_flight=0/0/0, acknowledged=2, sessions=4, crashes=2, recovered_inflight=2 ve active session/task=None snapshot'ıyla drain edilir.",
"Final endpoint registry controller endpoint, exact reply ve cancelled reply kimliklerinin üçünü de içermemelidir; S387 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'ı resume eder ve replacement supervisor'ın ordinary strict EL0 reply'ını owned ACK olarak yeniden kurar.",
"Focused source testi complete run_qemu_s142_lower_el_fault_recovery Rust öğesini, exact acquire→single mutable alias→CALL→writer drop→IRQ drop focus'unu ve downstream ACK/broker/cleanup/reclaim sırasını birlikte doğrular.",
"Focused test source-order first aliasın S387 acquire öncesinde kaldığını ve tam bir kez göründüğünü doğrular; böylece henüz açık S388 fault-cancelled CALL yanlışlıkla S387'ye katlanamaz.",
"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 SixtiethWriterGuardedAwaitingRemaining, yanlış CPU'da inherited S386 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ı: S387_GUARDED_READ_SITES == S386_GUARDED_READ_SITES == 44, S387 guarded writer == S386 + 1 == 60, toplam writer 69 ve açık writer 9'dur.",
"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 S387 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 S387 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 S386 ve S387 executor'larını ardışık aynı gate üzerinde çalıştırır; receipt'ler kendi kapılarında kalırken S387 token'ı S386 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.',
"S387 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 S387 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 S386 service çağrısından sonra ve tarihsel S242 consumer'dan önce çalışır; service mutable SCHEDULER veya acquire_s387 ç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.",
"Selected regression S387, S386, tarihsel S317, tarihsel S318, runtime_oom_lower_el_fault_recovery ve runtime_oom_lifecycle_recovery gruplarında 6 grup / 136/136 PASS verdi.",
"Selected log /tmp/aselsanos-s387-selected.log 13156 B / f8efdf46a7450f6dc7a509cca84089f56fe2942703b80cfcd3497e09c09ad5e9 SHA-256'dır.",
"S238–S387 dependency matrisi iki bağımsız seri koşuda 151 grup / 3715/3715 PASS verdi; süre-normalize 32533 B özetler c05142559020d1f618c8c789b5f6e81778cafe209ef277a897f8037d9fdc4a2d ile byte-exact eşittir.",
"Dependency artifact root /tmp/aselsanos-s387-dependency.wrYBAq'dır. Ham run1 350050 B / 8f6da07fb3c2b7f817ec91832cf6d42d7de9722736bcb8f0531c266bf22f3ad7 ve run2 334909 B / 7a4a97b0d646735870a0ec45f9c78f11a89db10a2b7920697fbb2859cfd70f09'dur.",
"Exact yedi tarihsel frozen assertion dışındaki serial workspace 350 result group / 5593 PASS / 0 fail / 7 filtered verdi; raw log 74588 B / fec895bb891a86c6b1acbd5da233ffebbb16b3cea251ecb61055d922bf37d3ed SHA-256'dır.",
"Filtered workspace normalize summary 26480 B / 03540d1e112dcb74f85bd748c085772e9f00e3b39f41f218a1f4f5486e5accdc SHA-256 ve artifact root /tmp/aselsanos-s387-workspace.ary2oE'dir.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope assertion'ında durdu; 303 result group / 5338 PASS / 1 fail ve global workspace GREEN claimed=false'dur.",
"Filtresiz raw log 69810 B / d37e24f8a4a984f0a9671b5a20d39a9f98a87bde46c5eb01b82c5010b93c1b49 ve summary 22954 B / 4fa09b083252392038492a34ccd1d55488b9579a80ff6819cc16a318a8da2c4a'dır.",
"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 112201 B / 06b7355bfc4f4113d2a93771a81db154d0038c4bed7c7210708d1df3bcd8dbcc ve 293 warning header; ELF 16813752 B / 405489dd99dcab9eedd07cc550d8861acd1abdf54a68c43f03e4ec2d9012477f'dir.",
"Fresh board-rpi4 logu 150935 B / 47138ee6115d1685612c02c96ec44dc3571be75b9ba00cd24582c07f3b80fb28 ve 391 warning header; ELF 11925408 B / 1c35b55b75326d9a7548112c2214558f958a8cbb38fcdab53fc9ba6d8b2533c1'dir.",
"Fresh board-rpi5 logu 651915 B / 03395d42a0460223f0c4965825f1bf172983c9f356c192de8eaacdfccab0c740 ve 1490 warning header; ELF 15300304 B / bcf54027ddd7cbd61b2a42046ee15d210c9e7626154d86d61b73de17fc170d6f'dir. Wrapper compile olur fakat board-qemu-only caller olmadığı için runtime invocation=0'dır.",
"Fresh board-rpi5+smp logu 651798 B / 5ad50ed46d8940989014ad453734dc7bfabde5fab6243d94670b833f3ea098b4 ve 1490 warning header; ELF 15304592 B / 6c4307bfa38c4e5656471d0d8a44203b8b8ed1af492d79f1331108330e80bb94'dür. Compile success Generic SMP arbitration kanıtı değildir.",
"Dört profil /tmp/aselsanos-s387-profiles.RdCYMb 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 / f8b26b775c71917ebff1aacf3defb2ba8a1d7a8032688c23c0a0331733914301 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 S387 lease'ini compile etmediği için bu supported-profile writer runtime observation değildir.",
"cargo fmt --all -- --check exit 0 ve boş çıktı verdi; 0 B / e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 SHA-256 ile global format kabulü GREEN'dir.",
"Status manifest hedefi S387'yi S386'dan önce ayrı verification entry ve gate string'i olarak taşımaktır; 44 reader, 60/69 guarded writer, 9 open writer, 151/3715 dependency, 350/5593 workspace, dört profil, provider=0, exclusion=false ve physical=0 alanları exact olacaktır.",
"Code yayın hedefi S1–S387 387/387 unique source-bound gate'tir. Kullanıcının özellikle istediği S328 öncesi S1–S327 aralığı 327 ayrı Code kartı olarak korunacak; missing=none, duplicate=0 ve S1/S327/S328/S386/S387 exact birer kart olacaktır.",
"S387 Code kartı tam run_qemu_s142_lower_el_fault_recovery Rust öğesini production excerpt, exact acquire→release üyeliğini focus, S387 guard modülünü guard, 46-test hedefini test, proof'u ve complete Operations object'ini operation excerpt olarak yayımlar.",
"İlk source-bound Code registry S1–S387 için 387/387 unique kapı ve 1116 exact excerpt üretti; pre-S328 S1–S327 bağımsız 327/327 karttır, missing=none ve duplicate=0'dır. Mapping 60 writer-guard + 225 focused-test + 94 command-contract + 8 operation-record = 387'dir; JSON 8627718 B / 98566737d2b931e795ea8e19af0319e5edc6a165c15ce193dcbe9ae0486981be SHA-256 ve 55ccf93fdf94bcdbe32959a105b6a1139cd9a59e6462e4d94ec7358f411891f6 registry SHA-256 taşır.",
"İlk production payload registry'si S1–S387 387/387 kart, 1116 excerpt ve pre-S328 327/327 verdi; JSON 8628194 B / f1db7c467bac7a00a33bdac61f9bd105dc01a7867bf2e3abd829cb9b5a7287e9 dosya SHA-256 ve 02c5d4a2547a7ba5da1b8727be92cc2c45fbe0b29cd90344e089ae2a0c5f34cd registry SHA-256'dır.",
"İlk website kabulü 697/697 test, lint PASS, boş TypeScript çıktısı ve 24/24 static route ile GREEN'dir; export 200 dosya ve Timeline/yol-haritasi S387 dahil 226 ayrı gate-policy kartı taşır.",
"S387 ilk-yayın çekirdek policy'si 24011 karakter / 24952 UTF-8 byte'tır; S386'nın 22071 karakter / 22966 byte policy'sinden uzundur ve non-regression testi bu ilişkiyi zorunlu tutar.",
"İlk production/main deployment b7d1f66a-c6e9-4594-9572-a6bdf7f29940 kimliği ve https://b7d1f66a.aselsan-microkernel.pages.dev adresiyle 115 yeni upload + 84 existing = 199 asset yayımladı.",
"Cache-busted custom-domain ilk readback'te /code/ 24267544 B / 2ade389294d245a94e802bd50e0a013ab9ab2f57b8d6c125f433b63844199d4c, /operations/ 14548333 B / c0c94193a37d0e24b87a7ff1b600ee7490c324d92658c7888ed1fbad3c8cef8b, /timeline/ 5988053 B / 10b967c8fed2d31a9fa2d8254fc8f15dc78801832b6d994c28ff16d26d68422e ve /yol-haritasi/ 5987801 B / 51c7a3dc83652166bc7eae02bfd8610bf86cbfbdb88c85ca4558a3a1ff8ebc24 ile HTTP 200 ve deployment yerel out'una raw byte-exact PASS verdi.",
"Canlı /code/ cache-control public,max-age=0,must-revalidate,no-transform, x-content-type-options=nosniff ve cf-cache-status=DYNAMIC başlıklarını taşıdı; 387 data-code-gate, pre-S328 327 ve S1/S327/S328/S386/S387 exact birer kart yeniden sayıldı.",
"İlk deployment readback artifact root /tmp/aselsanos-s387-web-initial.4mnupF'dir; dört route body ve response header'ları birbirinden ayrı dosyalarda korunur.",
"İlk gerçek yayın ölçülerini içeren evidence-sync payload ayrı production/main transaction'ında yayımlanacaktır; dönen immutable kimlik status/proof kapanışına yazılır ve self-referential sonsuz deploy zinciri kurulmaz.",
"Complete production excerpt iki CALL'i de bağlamıyla gösterirken nested focus yalnız s387_writer_access acquisition'dan drop(s387_writer_access)'e kadar kesilir; okuyucu hem önceki açık aliası hem gerçek guarded sınırı aynı kartta ayırt edebilir.",
"Focus digest tam Rust öğesinin digest'inden ayrıdır: full excerpt ürün akışının bütünlüğünü, focus digest ise S387'nin sahip olduğu exact membership'i doğrular; yarım Rust öğesi complete excerpt diye etiketlenmez.",
"Source-order writer inventory yalnız string sayımı değildir: tüm yedi production source unit taranır, main.rs içindeki 17 explicit mutable aliasın sıra konumu hesaplanır ve replacement aliasın onuncu olması beklenir.",
"S387 source contract cancelled_reply çağrısının writer acquisition'dan önce kalmasını, exact_reply çağrısının writer sonrasında kalmasını ve full S142 öğesinde toplam iki ipc_kernel_call_and_wait görülmesini birlikte zorunlu tutar.",
"Upstream broker testi old lease ACK reddini yalnız StaleLease spelling'iyle kabul eder; farklı bir generic error, snapshot mutation veya automatic recovery sayaç drift'i S387 focused grubunu RED yapar.",
"Replacement authority testi fresh supervisor task identity'sini RECV grant, replacement session ve retry lease ile bağlar; yalnız değişken adlarının varlığı değil, hepsinin writer acquisition'dan önceki exact source order'ı sınanır.",
"Retry message testi dört data slotunun retry lease event'inden geldiğini korur; replacement CALL için first message veya old lease verisinin yanlışlıkla yeniden kullanılmasına izin vermez.",
"Reply-cap testi exact_reply'nin controller_task ve endpoint_authority.id bağıyla writer'dan önce mint edilmesini arar; cancelled_reply kimliğinin replacement focus'a sızmasını reddeder.",
"Release testi transport success değerinin önce oluşmasını, ardından writer drop ve IRQ drop yapılmasını, label/badge/data doğrulamalarının ise iki release'ten sonra başlamasını exact pozisyonlarla karşılaştırır.",
"Downstream testi broker acknowledge_exact ile close_supervisor_session sırasını, sonra controller lifecycle cleanup'ını ve en son replacement reclaim döngüsünü arar; bu işlemlerden hiçbiri writer focus'una taşınamaz.",
"Final baseline testi RuntimeMemory snapshot'ında hem free_frames hem active_allocations alanlarını başlangıç değerlerine bağlar; yalnız broker drain veya endpoint absence tek başına ürün regresyon kabulü değildir.",
"Final registry absence testi endpoint_authority.id, exact_reply.id ve cancelled_reply.id değerlerinin üçünü birlikte reddeder; böylece first/second CALL ayrımı cleanup sonunda da korunur.",
"Helper preflight testi caller SEND grant'ini current CNode'da exact generation ve rights ile, endpoint'i normal non-reply object olarak ve reply'ı endpoint'e linked one-shot capability olarak aynı transaction altında yeniden doğrular.",
"Helper capacity testi ready queue, blocked call table, reply endpoint table, endpoint rendezvous ve optional receiver deadline kapasitesini mutation'dan önce arar; QEMU fixture hazırlığı helper içi revalidation yerine sayılmaz.",
"Helper commit testi envelope publication, caller park ve optional delivery'nin transaction release'ten önce kalmasını; context switch ve exact reply reconstruction'ın transaction release'ten sonra kalmasını zorunlu tutar.",
"S387 CPU1 service yalnız pending request view alır ve typed preflight outcome üretir. Source assertion service gövdesinde mutable SCHEDULER, acquire_s387 veya provider constructor görülürse reddeder.",
"Adjacent-gate testi S386 S143 reply-derived ACK modülünün önceki dependency olarak kaldığını, S388 adının yalnız next-open boundary olarak belgelendiğini ve generic sequence dispatcher kullanılmadığını doğrular.",
"Historical-audit ayrımı S317'nin replacement authority ve S318'in fault-cancelled authority kanıtlarını kaynakta ayrı dosya/test kimlikleriyle arar; bunların 15/15 sonuçları S387'nin 46/46 üretim üyeliğine eklenmez.",
"Profile kabulünde her target directory fresh ve ayrıdır; log byte/hash ile ELF byte/hash çapraz kullanılmaz. qemu/rpi4 RPi5 wrapper invocation iddiası üretmez, rpi5+smp compile sonucu da liveness veya arbitration kanıtı değildir.",
"Workspace kabulü exact yedi historical filter adını sabit tutar; yeni bir filtre eklemek, S387 focused hedefini filtrelemek veya filtresiz S96 reddini saklamak kabul sayılmaz.",
"Dependency tekrar üretimi ölçülen elapsed alanlarını normalize eder ama test adlarını, PASS/FAIL sonuçlarını, sıra listesini veya assertion metinlerini normalize etmez; canonical equality semantik sonuç yüzeyine bağlıdır.",
"QEMU S142 marker'ı gerçek lower-EL EC24 fault ve exact retry ürün senaryosunu doğrular; cfg kesişimi olmadığı için bu güçlü ürün regresyonu yine de S387 production wrapper runtime invocation diye yanlış etiketlenmez.",
"S387 kanıt yoğunluğu S386'nın tam policy uzunluğunun altına düşmemelidir; bu ilişki website testinde dinamik olarak ölçülür ve sonraki kapının kısa bir özetle önceki ayrıntıyı kaybetmesini engeller.",
"S245 request yalnız non-consuming pending_view ile incelenir; request take edilmez, S244 whole-scheduler admission yayınlanmaz, provider authority oluşturulmaz ve whole-scheduler exclusion uydurulmaz.",
"S387 sırasında fiziksel/device işlem yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S387=NO.",
"Bağlayıcı olmayan S387 projeksiyonu R1 S387–S417, R2 S442–S492, R3 S571+, risk aralığı S547–S597 ve merkez yaklaşık S572'dir.",
],
commands: [
"CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s387_qemu_s142_replacement_exact_ack_writer_guard_integration -- --test-threads=1",
"run S387, S386, S317, S318, runtime_oom_lower_el_fault_recovery and runtime_oom_lifecycle_recovery groups serially",
"run S238-S387 dependency list twice and normalize timing fields",
"run filtered and unfiltered serial workspace audits",
"run four fresh isolated dev AArch64 profile builds",
"CARGO_INCREMENTAL=0 make verify-qemu",
"cargo fmt --all -- --check",
"npm run code:generate && 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-s387-focused-source-contract",
title: "S387 focused S142 replacement exact-ACK writer membership",
commandLines: [
"CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s387_qemu_s142_replacement_exact_ack_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial result: compile RED; S387 module/source/service and production S142 replacement boundary missing",
"first production result: 41 passed / 5 failed; source slicer selected the earlier broker closure and stale-lease ACK",
"final result: 46/46 PASS after anchoring downstream assertions after the S387 writer release",
"shared S247 gate: 44 guarded readers + 60/69 guarded writers; 9 writers open",
"fault CALL/recovery/stale/reclaim/replacement/grant/session/lease/message/reply < IRQ/writer < exact CALL < writer/IRQ release < ACK/broker/cleanup/reclaim",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s387-selected-regression",
title: "S387 selected S142 and historical authority regression",
commandLines: [
"run S387, S386, S317, S318, runtime_oom_lower_el_fault_recovery and runtime_oom_lifecycle_recovery serially",
],
outputLines: [
"6 groups / 136/136 PASS / 0 failed",
"S317/S318 remain model-level authority audits; S387 is the separate replacement production membership",
"actual lower-EL fault, automatic lifecycle recovery, stale lease, exact retry, cleanup and baseline remain exact",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s387-full-acceptance",
title:
"S387 dependency, workspace, profiles, QEMU and format acceptance",
commandLines: [
"run S238-S387 dependency list twice and normalize timing fields",
"run filtered and unfiltered serial workspace audits",
"run four fresh isolated dev AArch64 profile builds",
"CARGO_INCREMENTAL=0 make verify-qemu",
"cargo fmt --all -- --check",
],
outputLines: [
"dependency 151 groups / 3715/3715 twice; normalized 32533-byte summaries are SHA-256 identical",
"filtered workspace 350 groups / 5593 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
"four profiles 4/4 exit 0; log and ELF byte/hash plus warning headers recorded separately",
"QEMU W^X 31/31 + S130-S154 + S271 + IPC 20/20 + SEC5 PASS; not an S387 writer runtime observation",
"global cargo fmt check exit 0 with empty output",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s387-production-publication",
title: "S387 Operations/Timeline/Code production publication",
commandLines: [
"npm run code:generate && 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: [
"registry S1-S387 387/387 / 1116 exact excerpt; pre-S328 S1-S327 327/327; missing=none; duplicate=0",
"website 697/697 PASS; lint PASS; TypeScript empty; static routes 24/24; export files=200; Timeline cards=226",
"S387 policy=24011 chars / 24952 UTF-8 bytes and is longer than S386 by enforced test",
"initial deployment b7d1f66a-c6e9-4594-9572-a6bdf7f29940; 115 upload + 84 existing = 199 assets",
"custom-domain four routes HTTP 200 and local-out raw-byte exact; /code/ no-transform; live Code=387 and pre-S328=327",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"S387 altmışıncı production writer'ın dar kaynak entegrasyonudur. Yalnız S142 replacement exact-ACK CALL mutable scheduler aliası guarded'dır; source-order ilk fault-cancelled CALL S388 için açık, upstream fault/recovery ve downstream ACK/broker/cleanup/reclaim ayrı sınırlar olarak kalır. Teknik kanıt GREEN, bütün scheduler exclusion ve ürün kabulü PARTIAL'dır.",
limitations: [
"9 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 S387 wrapper aynı supported profilde kesişmez; production writer runtime invocation/observation kanıtı yoktur.",
"İlk fault-cancelled ipc_kernel_call_and_wait source-order önce gelir ve S388'e açıktır; S387 bu aliası guarded saymaz.",
"Fault/recovery publication ve reclaim writer'dan önce; ACK validation, broker acknowledge/session close, endpoint cleanup, replacement reclaim ve baseline writer'dan sonradır.",
"Tarihsel S317/S318 yalnız source/model authority audit'leridir; S386 ve sıradaki S388 ayrı production membership'leridir.",
"Default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP, CPU2/CPU3/hotplug ve fiziksel RPi kabulü açık kalır.",
"S387 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S387=NO.",
],
},snippet sha256: 5786c68e6841…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s387_qemu_s142_replacement_exact_ack_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S387-QEMU-S142-Replacement-Exact-ACK-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9