S359 · SOURCE-BOUND GATE EVIDENCE
S359 · Notification-object destroy production writer guard integration
production acquire → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S359 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S359Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s359-notification-object-destroy-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 öğesiL1909–L1987
kernel/src/ui/capability.rs::destroy_notification_object
pub fn destroy_notification_object(
authority: Capability,
actor: u64,
) -> Result<usize, NotificationAuthorityError> {
if authority.kind != CapabilityKind::Notification {
return Err(NotificationAuthorityError::NotNotificationCapability);
}
if authority.owner == 0 || authority.generation == 0 || authority.parent.is_some() {
return Err(NotificationAuthorityError::InvalidOwner);
}
if actor == 0 || actor != authority.owner {
return Err(NotificationAuthorityError::UnauthorizedActor);
}
if authority.rights != CapabilityRights::FULL
|| !authority
.rights
.contains(CapabilityRights::NOTIFICATION_REVOKE)
{
return Err(NotificationAuthorityError::InvalidRights);
}
let s359_irq_guard = crate::arch::aarch64::IrqGuard::new();
let s359_transaction = crate::task::scheduler::IPC_TRANSACTION_LOCK.lock();
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s359_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s359_notification_object_destroy_writer_guard_integration::acquire_s359_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S359 notification-object destroy scheduler writer guard failed closed: {:?}",
error
)
});
let scheduler_ptr = core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER);
let commit_result =
(|| -> Result<NotificationObjectTeardownPreflight, NotificationAuthorityError> {
let authority_revalidation =
if unsafe { (&*scheduler_ptr).capability_for_task(authority.owner, authority.id) }
!= Some(authority)
{
Err(NotificationAuthorityError::StaleAuthority)
} else {
Ok(())
};
authority_revalidation?;
let preflight = unsafe {
preflight_notification_object_teardown_under_ipc_transaction_with_writer(
authority.id,
authority.owner,
&*scheduler_ptr,
)
}?;
if preflight.wait.is_some()
&& !unsafe { (&mut *scheduler_ptr).try_reserve_ipc_wake_capacity(1) }
{
Err(NotificationAuthorityError::WakeCapacityUnavailable)
} else {
Ok(preflight)
}
})();
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s359_writer_access);
let commit_result = match commit_result {
Ok(preflight) => {
let teardown = teardown_notification_object_under_ipc_transaction(
authority.id,
authority.owner,
Some(actor),
preflight,
true,
);
assert_eq!(teardown.woken_waiters, teardown.cancelled_waiters);
Ok::<usize, NotificationAuthorityError>(1)
}
Err(error) => Err(error),
};
drop(s359_transaction);
drop(s359_irq_guard);
commit_result
}snippet sha256: aa08121faa5b…file sha256: 304e1227daf9…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL173–L185
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s359_notification_object_destroy_writer_guard_integration.rs::acquire_s359_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s359_production_scheduler_writer_access(
) -> Result<G8lS359ProductionSchedulerWriterAccess, 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(G8lS359ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: 4a8db79c80e4…file sha256: c11f92093cb3…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL389–L400
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s359_notification_object_destroy_writer_guard_integration.rs::boundary_has_exactly_one_s359_acquire_and_one_shared_cleanup_release
#[test]
fn boundary_has_exactly_one_s359_acquire_and_one_shared_cleanup_release() {
let boundary = destroy_boundary();
assert_eq!(
boundary
.matches("acquire_s359_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(boundary.matches("drop(s359_writer_access)").count(), 1);
}snippet sha256: 0d742ee870f2…file sha256: 4f85680996db…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL12118–L12254
website/src/lib/operations.ts::g8l-s359-notification-object-destroy-writer-guard-integration-partial
{
id: "g8l-s359-notification-object-destroy-writer-guard-integration-partial",
date: "2026-08-28",
sequence: 359,
status: "passed",
umbrella_status: "partial",
title:
"S359 · Notification-object destroy production writer guard integration",
summary:
"S359, root destroy_notification_object orchestration'ını S358 ile 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. Root Notification capability shape, owner/generation, parent, actor ve full revoke rights IRQ/transaction/writer öncesinde kapanır. Ardından local IRQ ve IPC transaction altında gerçek per-CPU kimliğinden yalnız CPU0 için S359 exclusive writer alınır ve exact tek outer scheduler pointer'ı kurulur. Root CNode authority, unique object/provenance, holder purge özeti ile optional waiter/deadline/blocked graph writer altında yeniden doğrulanır; matching waiter kapasitesi destructive commit'ten önce reserve edilir. Object removal, exact waiter cancellation, PeerClosed deadline retirement, holder purge, provenance revoke ve optional wake aynı membership içindedir. Writer-aware preflight factored graph implementation'ını kullanır ve tarihsel S252 reader'ı nested etmez; S294 task-lifecycle helper yolu ayrı kalır. Writer, IPC transaction ve IRQ owned Result öncesinde explicit bırakılır. Guarded writer 32/69, açık writer 37, provider authority 0 ve whole-scheduler exclusion false'dur. Capability forwarding path'i ile üç QEMU fixture toplam dört static source path'tir; supported-profile runtime observation=0'dır. Endpoint-grant revoke writer sınırı S360 için ayrı açık kalır.",
evidence: [
"Focused S359 notification-object destroy writer-integration kapısının ilk koşusu 31/49 PASS ve 18 RED verdi. RED'ler gerçek production eksikleriydi: S359 modülü/registrasyonu ve CPU1 service'i yoktu; root destroy exact shared writer'ı almıyor, complete object/holder/wait teardown transaction'ını lease kapsamında tutmuyor ve S252 reader'ıyla nested membership riski taşıyordu. Kaynak entegrasyonu sonrasında taze focused koşu 49/49 PASS verdi.",
"Kaynak sınırı root shape/actor/rights validation → s359_irq_guard → s359_transaction → CPU0-only S359 writer → exact tek outer scheduler_ptr → root CNode revalidation → writer-aware object/holder/wait graph preflight → optional wake-capacity reserve → object remove/waiter cancel/deadline retire → exact holder purge → provenance revoke → optional wake → teardown count validation → writer/transaction/IRQ drop → owned Result olarak kilitlidir.",
"Root kind, nonzero owner/generation, parent=None, actor==owner ve exact FULL+NOTIFICATION_REVOKE rights hataları IRQ, IPC lock, writer callback ve mutable scheduler aliasından önce kapanır. Writer sonrası stale authority, graph veya capacity error'ları local commit_result içine owned alınır; ortak cleanup tail'ini atlayan doğrudan return Err yoktur.",
"Root authority exact task CNode kaydıyla object preflight'tan önce yeniden doğrulanır. Object registry'de kimlik exact bir adet olmalı; owner ve capability-store provenance root kaydı eşleşmeli; scheduler holder-purge preflight'i exact özet üretmelidir.",
"Optional wait graph object waiter, exact tek deadline, exact tek BlockedOnNotification task ve live NOTIFICATION_WAIT CNode authority'sini task/object/generation/mask/deadline-key tuple'ıyla birlikte doğrular. Waiter yoksa deadline veya blocked residue kabul edilmez.",
"Matching waiter varsa ready-queue kapasitesi object registry removal, waiter cancellation, deadline retirement, holder purge, provenance revoke veya wake başlamadan reserve edilir. Capacity reddi destructive state'e dokunmaz.",
"Teardown commit object'i registry'den exact owner/id ile kaldırır, waiter'ı exact snapshot'la iptal eder, deadline'ı PeerClosed olarak retire eder, preflighted holder sayısını purge sonucu ile karşılaştırır, root provenance'ı exact bir kez revoke eder ve optional waiter'ı aynı writer lease'i altında uyandırır.",
"S359 writer-aware preflight, ortak preflight_notification_object_teardown_with_scheduler implementasyonunu doğrudan mevcut immutable scheduler view ile kullanır. Tarihsel preflight_notification_object_teardown_under_ipc_transaction wrapper'ı S252 reader'ını ayrı yollarda korur; S359 içinde nested reader→writer veya writer→reader membership yoktur.",
"S294 teardown_notification_object_under_ipc_transaction helper'ının task-lifecycle call path'i bağımsızdır ve kendi tarihsel mutable scheduler aliasını korur. S359 root boundary helper'ı mevcut writer lease'i altında çağır; bu ayrı bir S359 acquisition/site değildir.",
"Host-testable execute_s359_guarded_notification_object_destroy_commit gerçek CPU0 sabitini şart koşar, access reddinde callback'i çalıştırmaz, callback error sonrasında exclusive membership'i exact bırakır ve success receipt'te token/output döndürür. Live reader writer'ı; live writer ikinci writer ile yeni reader'ı reddeder; release sonrasında gate yeniden alınabilir.",
"S358→S359 token monotonluğu ve iki ayrı exclusive transaction doğrulandı. Notification-grant revoke lease'i root destroy transaction'ına taşınmaz. S359 preflight S358'in 44 guarded reader / 31 guarded writer / 38 open snapshot'ını exact doğrular; yalnız doğru zincir 32/69 guarded ve 37 open üretir.",
"Pending S245 request yalnız non-consuming pending_view ile incelenir; request take edilmez, request id değişmez, S244 admission yayınlanmaz ve provider authority üretilmez. CPU1 service S358 service'inden sonra ve tarihsel S242 consumer'dan önce bağlıdır; yalnız coverage/preflight observation'dır, S247 writer edinmez.",
"Static source inventory Capability::revoke içindeki bir forwarding path ile main.rs içindeki üç direct QEMU acceptance fixture'ını ayrı sayar: toplam dört path. Bu envanter supported RPi5 runtime telemetry, invocation veya cihaz kabulü değildir; S359-specific runtime observation=0 kalır.",
"Focused 49-test sözleşmesi 32/69 envanter ve 37-open aritmetiği, idle/pending/wrong-CPU preflight, S245 non-consumption, contention, callback-error exact release, S358→S359 token/transaction ayrılığı, production cfg/static gate/CPU identity, source sırası, S252/S294 tarihsel ayrılık ve provider/admission yokluğunu ayrı ayrı doğrular.",
"İlk seçili regresyonda tarihsel S358 ve S252 source assertions yeni S359 boundary'sini obsolete absent beklentileriyle reddetti. Assertions zayıflatılmadı: S358'in 31/69 tarihsel snapshot'ı, S252'nin bağımsız reader wrapper'ı ve S359'un distinct writer-aware yolu birlikte kilitlendi.",
"Final seçili regresyon 11 grup / 210/210 PASS'tir: S359 49/49, S358 47/47, S252 11/11, S282 15/15, S293 15/15, S294 15/15, S314 15/15, S315 15/15, notification deadline 10/10, notification lifecycle 10/10 ve notification race 8/8.",
"Fresh izole AArch64 profilleri 4/4 exit 0 verdi. Build logları board-qemu 110778 B / b9e500bad19258c9a2b9610463bf531743b7d3f4b0c07e41d1a82b01ab730e59 / 292 warning header; board-rpi4 149519 B / b099fb4097d83815a83422f0ca086fc185dc31a148a9de7cda4bbed293a34739 / 390; board-rpi5 578154 B / 68ee709f4a1e93621dc0226520e639d37ad0c0d7124346dda0524d5c25bcd362 / 1305 ve board-rpi5+smp 578096 B / bae312eb3f6754fe409d6c0c8a8090481a380c6034d9824af177f914c8e74dea / 1305. Zero-warning iddiası yoktur.",
"Build log ölçüsü ELF ölçüsü gibi sunulmaz. Fresh ELF artifact'leri board-qemu 12619736 B / 218c53bab8b62b74b1ee779fbc92ed812c1d4f925d26b5f6271253f5284bfd11; board-rpi4 7728128 B / 1e67c7d22e4f1c6e4dc219b9b7763e10b76db37efd4766700ab9a1889a802907; board-rpi5 13516824 B / a70306a588007dbee73382c9c6a8f23b48a11413b3001f256da2080656f3da8f ve board-rpi5+smp 13497416 B / b8529be94be7e24b46b551c62122eed15f72d737013d816ec20b44251203e7e0 olarak ayrı ölçüldü.",
"S238–S359 dependency matrisi 123 gruptur ve iki bağımsız seri koşunun her biri 2334/2334 PASS verdi. 28732 B ham özetler b05e4819fe5d7ffcfef76857cf3ee842496824d6d765a77ffd6904a79ca5898b / 90c8c9cbb57dd5aac282aa2680a5ee872c537a5f5078e2725f2cba7465f6d305; 79 diff satırı timing alanıdır. 28855 B normalize özetler f0d195eb81782efe20e2aa1f5c5ec97ae53ecb900ec6fd6483c9be17f0e7ad2d ile byte-eşittir.",
"Exact yedi tarihsel frozen assertion dışındaki seri workspace 322 sonuç grubu / 4184 PASS / 0 fail / 7 filtered verdi; 69950 B log SHA-256 51d37343a197f6bd9c91841695e84191410690ebe796a5c1b6b23149aef1cb15'tir.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 275 sonuç grubunda 3929 PASS / 1 fail, 65172 B log SHA-256 796ad084059a0ca7ee1ea4117ff33211889f5ac8cf7bfd56677468f26cef7e8d'dir ve global workspace GREEN iddia edilmez.",
"make verify-qemu 116354 B / b631c0a97524ec5e3a4e1226912822568e11bf7616f46a1a77311941c7ab9dce ile strict ELF W^X 31/31, S130–S154, S271, RuntimePmm baseline, EL0x4096, IPC reply 20/20, scheduler SEC5 ve kernel fault/panic marker 0 PASS verdi. Ortak board-qemu regresyonu S359 RPi5 production writer invocation kanıtı değildir.",
"Scoped S359 modül/test rustfmt check'i boş çıktılı PASS'tir. Global cargo fmt 80280 B / 73bf4994b25e48cedde25b7b286416635ac24ac6e971e845ede6a88b979d288c ile miras farklarda RED'dir; global format GREEN iddia edilmez.",
"S359 kaynak envanteri outer root boundary ile teardown helper'ını birbirine karıştırmaz. destroy_notification_object içinde exact bir scheduler_ptr macro sitesi vardır; bu pointer root CNode read revalidation ve capacity reservation için kullanılır. teardown_notification_object_under_ipc_transaction içindeki tarihsel mutable Scheduler aliası object removal/deadline retirement sonrası holder purge ve optional wake için ayrı kaynak noktasıdır, fakat root helper mevcut S359 exclusive membership altında çağrıldığından ikinci acquisition değildir. Focused test outer boundary'de exact bir macro sitesi, S294 helper'da exact bir tarihsel alias ve S359 modülünde exact bir production writer sitesi sayarak bu ayrımı kilitler.",
"Writer scope'un complete olması yalnız acquire ile drop satırlarının bulunmasından çıkarılmaz. Focused source indices root shape kontrollerinin IrqGuard'dan; IrqGuard'ın IPC transaction'dan; transaction'ın S359 acquire'dan; acquire'ın scheduler_ptr'dan; CNode revalidation'ın graph preflight'tan; graph preflight'ın capacity'den; capacity'nin teardown call'ından; teardown ve exact result assertion'ın writer drop'tan; writer drop'ın transaction/IRQ drop ve public commit_result'tan önce olduğunu ayrı karşılaştırmalarla doğrular. Exact bir acquire ve ortak cleanup'ta exact bir explicit drop zorunludur.",
"Factored preflight iki farklı authority context'ini aynı semantik implementasyonda tutar. Tarihsel S252 yolu preflight_notification_object_teardown_under_ipc_transaction içinde production reader lease'i alır, immutable Scheduler view ile factored helper'ı çağır ve reader'ı bırakır. S359 yolu preflight_notification_object_teardown_under_ipc_transaction_with_writer içinde zaten canlı exclusive lease altındaki immutable view'i factored helper'a verir. İki wrapper ayrı kalır; S252 reader acquisition sembolü S359 writer-aware wrapper'unda yoktur ve factored implementation graph kontrolünü kopyalamaz.",
"Object teardown preflight'i notification registry'yi salt-okunur kilitleyerek id için identity_count=1 ister; object owner'ını expected_owner ile ve capability store'daki tek root provenance entry'sini id/owner/parent=None/kind=Notification tuple'ıyla eşleştirir. Scheduler preflight_notification_holder_purge exact holder özetini üretir. Ardından deadline registry snapshot'ıyla object waiter ve scheduler blocked graph birlikte denetlenir. Böylece root CNode canlı olup registry/provenance/holder/wait grafiği stale ise destroy commit'e geçilemez.",
"Commit sırası yarım teardown'ı fail-closed kılacak preflight varsayımlarına bağlıdır. Registry'den exact owner/id object remove edilemezse, preflighted waiter değişirse, exact deadline retirement kaybolursa, holder purge özeti değişirse veya root provenance exact bir adet değilse tarihsel expect/assert kapıları sessiz kısmi başarı yerine kernel'i kapatır. Optional wake yalnız preflight.wait mevcut ve wake_waiter=true ise çalışır; public root destroy sonucu cancelled_waiters ile woken_waiters eşitliğini assert eder ve success değerini exact Ok(1) olarak korur.",
"Production cfg sözleşmesi acquire type/function ve CPU1 coverage service için exact target_arch=aarch64, target_os=none, feature=board-rpi5 kapanışını ister. Wrapper try_current_cpu_id olmadan literal CPU0 kabul etmez; CPU0 dışı identity mutable pointer veya callback öncesi InvalidCpu alır. Exact shared static symbol S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE'tir ve try_acquire_exclusive_for_valid_cpu kullanılır. S359 modülü provider constructor, request take veya S244 publisher sembolü taşımaz.",
"Dört source path exact olarak Capability::revoke içindeki destroy_notification_object(self, actor) forwarding kolu ve main.rs içindeki üç direct destroy_notification_object acceptance fixture'ıdır. Focused test method prefix'inde bir, main.rs'de üç occurrence sayar ve ilk main occurrence'ın öncesindeki #[cfg(feature = board-qemu)] fixture sınırını doğrular. Bu statik yollar RPi5 production wrapper'ın çalıştığını kanıtlamaz; runtime observation sayacı bu nedenle exact sıfırdır.",
"Tarihsel kanıt bağları korunur: S282 notification-object destroy writer-authority audit model-only kayıt olarak ayrıdır ve S359 production acquisition yerine geçmez; S294 notification-object teardown commit audit'i helper'ın tek mutable scheduler yolunu sayar ve task lifecycle'dan çağrılmaya devam eder; S252 iki notification teardown reader snapshot'ının tarihsel coverage'ını korur; S358 grant revoke ayrı derived-authority transaction'ı olarak 31/69 kapanış snapshot'ında kalır. S359 yalnız root destroy site'ini 32. production writer yapar.",
"Dependency manifest'i dosya adındaki kronolojik sequence ile gerçek Cargo target adını ayrı tutar. S261 kaydının tarihsel target'ı `_s260_`, S273 kaydının target'ı `_s272_` prefix'ini taşır; harness bu iki bilinen mapping drift'ini explicit kabul eder ve geri kalan 116 `_sNNN_` hedefini S242–S359 aralığına göre source-order seçer. Altı S179 notification delivery/SGI grubu ile EL0 IPC return-witness stability ayrı eklenir. Portable report aşamasındaki macOS awk `match` third-argument uyumsuzluğu test koşuları değil yalnız rapor wrapper'ıdır; Perl ile aynı özetler yeniden hesaplandı.",
"Fresh build artifact dizinleri board-qemu /tmp/aselsanos-s359-qemu.dBn5ET, board-rpi4 /tmp/aselsanos-s359-rpi4.SXw9gK, board-rpi5 /tmp/aselsanos-s359-rpi5.jCo7fh ve board-rpi5+smp /tmp/aselsanos-s359-rpi5-smp.GnPBwc'tir. Dependency, workspace, QEMU ve format artifact dizinleri sırasıyla /tmp/aselsanos-s359-dependency.1ZTPKo, /tmp/aselsanos-s359-workspace.TSmS0c, /tmp/aselsanos-s359-qemu-verify.CzDx1s ve /tmp/aselsanos-s359-format.KQ4U9l olarak kaydedildi. Geçici artifact path'leri kalıcı source proof'un yerine geçmez; byte/hash ölçümleri proof/status kaydında tutulur.",
"Status manifest S359'u ayrı g8l_s359_notification_object_destroy_writer_guard_integration nesnesi ve ayrı gate marker'ıyla kaydeder. JSON parse, generated status README write/check ve 242/242 project-status testleri iki bağımsız koşuda PASS'tir. Physical operations_not_performed_s359 listesi exact yedi girdidir. Bu status kabulü publication, runtime invocation, provider authority veya fiziksel cihaz işlemi uydurmaz.",
"Source-bound Kod registry Operations'taki bütün yayımlanmış kapıları S1–S359 aralığında tarar; tarihsel Operations kaydı bulunmayan S109'u tek missing sequence olarak gösterir. S359 kartı production destroy boundary, S359 S247 guard wrapper, focused test ve Operations identity olmak üzere dört exact kaynak kesiti taşır. Bütün registry 358 yayımlanmış kapı / 997 exact excerpt'tir; canonical registry SHA-256 kendi `/code/` başlığında ve status kaydında üretilir. Satır veya tam dosya hash drift'i test/build/deploy'u durdurur; self-referential digest Operations metnine hard-code edilmez.",
"S1–S359 Kod kataloğunu ve ayrı S359 kartını taşıyan ilk Cloudflare Pages production/main yayını 9e0e19a9-b04d-4ac1-8b95-b08236a51727 kimliğiyle tamamlandı: 116 upload + 84 existing = 200 export dosyası. Website 593/593 PASS, lint PASS, TypeScript exit 0/boş çıktı ve 24/24 static route PASS verdi. Timeline ile yol-haritasi 198 ayrı data-gate-policy kartı, `/code/` ise S109 boşluğunu uydurmadan 358 data-code-gate kartı taşır. Yayın kanıtı eklenmeden önce S359 policy 16610 karakter / 17237 UTF-8 byte ölçüldü; S358'in yayın-öncesi yoğunluk tabanından kısa değildir.",
"Cache-busted custom-domain doğrulaması yerel production export ile byte-exact PASS verdi: `/code/` HTTP 200 / 9075374 B / d2255aa68f562fd44c1a276ba2405f64888d4a5153216c5230dcab7ad7e324eb; `/operations/` HTTP 200 / 11535448 B / 0979a4a9ada77053c68af083405d41ec5f7ba63b725af6619067c7abb6fb100d; `/timeline/` HTTP 200 / 3615503 B / 80d297a2b6b7f34fec885b2b64c5ad311625a08959fd58bb5929cd513bf3f3c5 ve `/yol-haritasi/` HTTP 200 / 3615251 B / 020ad4a981dfab58f15a307aa8689c241c439b1c48c7b786706b5678e7ab010e. Immutable 9e0e19a9 hostname probe'u connection reset nedeniyle curl exit 35 / HTTP 000 verdi; custom-domain PASS bu erişim sınırını gizlemez.",
"S359 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_S359=NO.",
"S359 bazlı bağlayıcı olmayan planlama görünümü R1 S359–S389, R2 S414–S464, R3 S543+, kaba S519–S569 ve risk paylı merkez ≈S544'tür. Bu projeksiyon yeni sıra veya ürün taahhüdü oluşturmaz.",
],
commands: [
"cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s359_notification_object_destroy_writer_guard_integration -- --test-threads=1",
"cargo build -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo build -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
"make verify-qemu",
"npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build && npm run deploy",
],
terminalSessions: [
{
id: "g8l-s359-focused-notification-object-destroy-writer-guard",
title: "S359 focused notification-object destroy writer membership",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s359_notification_object_destroy_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial test result: RED; S359 focused 31 passed; 18 failed; production boundary/module/service not yet wired",
"final test result: ok; S359 focused 1 group / 49 passed; 0 failed",
"shared S247 gate: 44 guarded readers + 32/69 guarded writers; 37 writers open",
"root shape < IRQ/IPC transaction < S359 writer < CNode/object/holder/wait/capacity revalidation < object/deadline/holder/provenance/wake commit < writer/transaction/IRQ release",
"static source paths=4; supported-profile runtime observations=0; provider authority=0",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s359-selected-notification-object-regression",
title: "S359 selected notification-object/lifecycle regression",
commandLines: [
"run S359, S358, S252, S282, S293, S294, S314, S315 and three notification runtime groups serially",
],
outputLines: [
"initial historical assertions: S358/S252 RED on obsolete S359-absent expectations",
"preserved S358 snapshot and independent S252 reader while binding distinct S359 writer-aware preflight",
"final result: 11 groups / 210 passed / 0 failed",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s359-core-acceptance",
title: "S359 four-profile, dependency, workspace and QEMU acceptance",
commandLines: [
"run four fresh AArch64 profile builds",
"run S238-S359 dependency list twice and normalize timing fields",
"run filtered and unfiltered serial workspace audits",
"make verify-qemu",
],
outputLines: [
"four profiles 4/4 exit 0; log and ELF byte/hash measurements recorded separately",
"dependency 123 groups / 2334/2334 twice; normalized 28855-byte summaries are SHA-256 identical",
"filtered workspace 322 groups / 4184 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
"QEMU W^X 31/31 + S130-S154 + S271 + RuntimePmm + EL0x4096 + IPC 20/20 + SEC5 PASS; not an S359 runtime observation",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s359-source-bound-code-registry-production-publication",
title: "S1–S359 source-bound Code registry ve S359 production yayını",
commandLines: [
"python3 ../scripts/render-project-status.py --write && python3 ../scripts/render-project-status.py --check",
"npm run code: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/",
],
outputLines: [
"code registry S1-S359: 358 published gates / 997 exact source excerpts / missing only S109",
"website 593/593 PASS; lint PASS; TypeScript empty; static routes 24/24; export files=200",
"Timeline/yol-haritasi gate cards=198; live /code data-code-gate cards=358",
"deployment 9e0e19a9-b04d-4ac1-8b95-b08236a51727; 116 upload + 84 existing",
"four custom-domain routes HTTP 200 and byte-exact=true; immutable hostname curl exit 35 / HTTP 000",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"S359 otuz ikinci production writer'ın dar kaynak entegrasyonudur. Yalnız root notification-object destroy graph/holder/provenance/optional-wake transaction'ı guarded'dır; S294 task-lifecycle helper ayrı kalır, S360 endpoint-grant revoke açıktır ve supported-profile runtime invocation uydurulmaz. S1–S359 source-bound Kod kataloğu S328 öncesi tarihsel kapıları da gerçek Operations/source bağlarıyla yayınlar; kayıt bulunmayan S109 için kod uydurmaz.",
limitations: [
"37 production writer aynı shared gate dışında kaldığı için whole-scheduler exclusion ve provider authority açık kalır.",
"Dört static source path wiring envanteridir; S359-specific supported-profile invocation/observation kanıtı yoktur.",
"revoke_endpoint_grant writer sınırı sıradaki ayrı S360 kapısıdır.",
"Global rustfmt ve unfiltered frozen-S96 workspace kontrolleri RED kalır.",
"Default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP ve fiziksel RPi kabulü açık kalır.",
],
},snippet sha256: 174c7ae80529…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s359_notification_object_destroy_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S359-Notification-Object-Destroy-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06