S358 · SOURCE-BOUND GATE EVIDENCE
S358 · Notification-grant revoke production writer guard integration
production acquire → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S358 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S358Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s358-notification-grant-revoke-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 öğesiL1819–L1908
kernel/src/ui/capability.rs::revoke_notification_grant
/// Revoke one exact derived notification authority. If that grant already
/// admitted a timed wait, object waiter, shared deadline and blocked task are
/// retired together before the task receives `InvalidCapability` exactly
/// once. The notification object and every unrelated holder remain live.
pub fn revoke_notification_grant(
grant: Capability,
actor: u64,
) -> Result<bool, NotificationAuthorityError> {
validate_notification_grant_shape(grant, actor)?;
let s358_irq_guard = crate::arch::aarch64::IrqGuard::new();
let s358_transaction = crate::task::scheduler::IPC_TRANSACTION_LOCK.lock();
let mut deadlines = crate::ipc::IPC_CALL_DEADLINES.lock();
let mut registry = NOTIFICATION_REGISTRY.lock();
if registry
.iter()
.filter(|object| object.id() == grant.id)
.count()
!= 1
{
return Err(if registry.iter().any(|object| object.id() == grant.id) {
NotificationAuthorityError::AuthorityGraphMismatch
} else {
NotificationAuthorityError::ObjectNotFound
});
}
let object_index = registry
.iter()
.position(|object| object.id() == grant.id)
.expect("counted notification object disappeared");
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s358_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s358_notification_grant_revoke_writer_guard_integration::acquire_s358_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S358 notification-grant revoke scheduler writer guard failed closed: {:?}",
error
)
});
let scheduler = unsafe { &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER) };
let commit_result =
(|| -> Result<Option<NotificationWaitGraph>, NotificationAuthorityError> {
let grant_revalidation =
if scheduler.capability_for_task(grant.owner, grant.id) != Some(grant) {
Err(NotificationAuthorityError::StaleAuthority)
} else {
Ok(())
};
grant_revalidation?;
let graph =
preflight_notification_wait_graph(®istry[object_index], &deadlines, scheduler)?;
let matching_wait = graph.filter(|graph| graph.waiter.task_id() == grant.owner);
if graph.is_some_and(|graph| {
graph.waiter.task_id() == grant.owner
&& graph.waiter.capability_generation() != grant.generation
}) {
Err(NotificationAuthorityError::AuthorityGraphMismatch)
} else if matching_wait.is_some() && !scheduler.try_reserve_ipc_wake_capacity(1) {
Err(NotificationAuthorityError::WakeCapacityUnavailable)
} else {
if let Some(wait) = matching_wait {
registry[object_index]
.cancel_waiter_exact(wait.waiter)
.expect("preflighted notification grant waiter changed before revoke");
deadlines
.cancel_exact(wait.deadline)
.expect("notification grant revoke lost exact deadline retirement");
}
if !scheduler.revoke_cap_for_task_exact(&grant) {
panic!("preflighted notification grant exact revoke failed");
}
Ok(matching_wait)
}
})();
drop(registry);
drop(deadlines);
let commit_result = match commit_result {
Ok(matching_wait) => {
if let Some(wait) = matching_wait {
scheduler.wake_revoked_notification_exact(wait.waiter.task_id(), grant.id);
}
Ok(matching_wait.is_some())
}
Err(error) => Err(error),
};
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s358_writer_access);
drop(s358_transaction);
drop(s358_irq_guard);
commit_result
}snippet sha256: 2abf934cd315…file sha256: 304e1227daf9…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL168–L180
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s358_notification_grant_revoke_writer_guard_integration.rs::acquire_s358_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s358_production_scheduler_writer_access(
) -> Result<G8lS358ProductionSchedulerWriterAccess, 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(G8lS358ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: 1b0d79483741…file sha256: a3f1ce91e3ab…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL377–L388
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s358_notification_grant_revoke_writer_guard_integration.rs::boundary_has_exactly_one_s358_acquire_and_one_shared_cleanup_release
#[test]
fn boundary_has_exactly_one_s358_acquire_and_one_shared_cleanup_release() {
let boundary = revoke_boundary();
assert_eq!(
boundary
.matches("acquire_s358_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(boundary.matches("drop(s358_writer_access)").count(), 1);
}snippet sha256: e74f84237431…file sha256: 925b02b1174f…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL12255–L12401
website/src/lib/operations.ts::g8l-s358-notification-grant-revoke-writer-guard-integration-partial
{
id: "g8l-s358-notification-grant-revoke-writer-guard-integration-partial",
date: "2026-08-28",
sequence: 358,
status: "passed",
umbrella_status: "partial",
title:
"S358 · Notification-grant revoke production writer guard integration",
summary:
"S358, revoke_notification_grant içindeki exact notification waiter/deadline/CNode/wake scheduler transaction'ını S357 ve 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. Grant shape ile unique notification-object doğrulaması writer'dan önce tamamlanır. Ardından local IRQ, IPC transaction, deadline ve notification registry guard'ları altında gerçek per-CPU kimliğinden yalnız CPU0 için S358 exclusive writer alınır; exact tek mutable SCHEDULER aliası writer acquisition'dan sonra kurulur. Grant authority, complete wait graph ve generation lease altında yeniden doğrulanır; matching waiter için wake kapasitesi destructive commit'ten önce reserve edilir. Exact waiter ile deadline iptali, direct exact CNode revoke ve optional InvalidCapability wake aynı writer transaction'ındadır. Registry/deadline guard'ları writer'dan; writer IPC transaction ve IRQ'dan; bütün guard'lar owned Result dönüşünden önce explicit bırakılır. Guarded writer 31/69, açık writer 38, provider authority 0 ve whole-scheduler exclusion false'dur. Capability method path'i ile altı QEMU fixture çağrısı toplam yedi static source path üretir; supported-profile runtime observation=0'dır. Notification-object destroy writer sınırı S359 için ayrı açık kalır.",
evidence: [
"Focused S358 notification-grant revoke writer-integration kapısının ilk koşusu 33/47 PASS ve 14 RED verdi. RED'ler gerçek production eksikleriydi: S358 acquire/release yoktu, mutable scheduler aliası shared exclusive membership'ten önce kuruluyordu, grant/graph/wake-capacity/CNode/wake transaction'ı writer kapsamına alınmamıştı ve CPU1 coverage service'i bağlı değildi. Kaynak entegrasyonu sonrasında taze focused koşu 47/47 PASS verdi.",
"Kaynak sınırı validate_notification_grant_shape → s358_irq_guard → s358_transaction → IPC_CALL_DEADLINES → NOTIFICATION_REGISTRY → unique object count/index → CPU0-only S358 writer → exact tek mutable SCHEDULER aliası → grant revalidation → complete wait-graph preflight → generation check → wake-capacity reserve → optional waiter/deadline cancel → exact CNode revoke → registry/deadline drop → optional revoked waiter wake → writer drop → transaction drop → IRQ drop → owned Result olarak kilitlidir.",
"Shape, actor, grant parent/rights ve notification object yokluğu/duplicate identity hataları writer acquisition'dan önce kapanır. Scheduler-bound stale authority, graph mismatch ve wake-capacity error'ları writer alındıktan sonra local commit_result içine owned olarak çıkarılır; post-writer doğrudan return Err yoktur ve bütün sonuçlar aynı cleanup kuyruğundan geçer.",
"Notification wait graph object waiter snapshot, exact tek deadline, exact tek blocked task, waiter task/object/generation/mask ve live NOTIFICATION_WAIT authority'sini writer altında yeniden doğrular. Graph yoksa deadline veya blocked residue kabul edilmez; graph varsa owner ve capability generation exact grant ile bağlanır.",
"Matching waiter varsa ready-queue kapasitesi cancel veya CNode mutation başlamadan reserve edilir. Ardından notification object'teki exact waiter ve shared deadline exact kayıtla iptal edilir; scheduler.revoke_cap_for_task_exact yalnız grant'in owner/id/generation/rights/kind/parent tuple'ını siler. Preflighted revoke kaybolursa fail-closed panic oluşur.",
"S358, revoke_cap_for_task_exact_under_ipc_transaction wrapper'ını çağırmaz; aksi halde ayrı S331 writer'ı S358 writer'ı altında iç içe alınmış olurdu. Direct Scheduler::revoke_cap_for_task_exact çağrısı mevcut S358 lease'i altında exact bir kez yürür ve nested shared-gate membership üretmez.",
"Registry ve deadline lock'ları optional scheduler wake'den önce explicit bırakılır. Matching waiter yalnız exact BlockedOnNotification task olarak InvalidCapability register sonucu ile Ready queue'ya taşınır. Wake tamamlanmadan writer bırakılmaz; matching waiter yoksa owned false sonucu aynı cleanup sırasıyla döner.",
"Host-testable execute_s358_guarded_notification_grant_revoke_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.",
"S357→S358 token monotonluğu ve iki ayrı exclusive transaction doğrulanır. Parked-CALL writer lease'i notification revoke transaction'ına taşınmaz. S358 preflight S357'nin 44 guarded reader / 30 guarded writer / 39 open snapshot'ını exact doğrular; yalnız doğru zincir 31/69 guarded ve 38 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 S357 service'inden sonra ve tarihsel S242 consumer'dan önce bağlıdır; service coverage/preflight observation'dır, S247 writer edinmez.",
"Static source inventory Capability::revoke içindeki bir forwarding path ile main.rs içindeki altı direct QEMU notification-lifecycle/race fixture çağrısını ayrı ayrı sayar: toplam yedi path. Bu çağrı envanteri supported RPi5 runtime telemetry veya invocation kanıtı değildir; S358-specific runtime observation=0 olarak kalır.",
"Focused 47-test sözleşmesi yalnız mutlu yolu saymaz: 31/69 envanter ve 38-open aritmetiği, idle/pending/wrong-CPU preflight, S245 non-consumption, CPU0 success, non-CPU0 callback suppression, live-reader/live-writer contention, writer-altında reader reddi, callback-error exact release, S357→S358 token monotonluğu ve transaction ayrılığı ayrı testlerdir. Production wrapper'ın exact shared static gate'i, gerçek CPU identity'si, AArch64-none+board-rpi5 cfg kapanışı ve provider/admission sembol yokluğu ayrıca kaynak-kilitlidir.",
"Production source sözleşmesi de tek bir contains kontrolü değildir: shape validation'ın IRQ ve bütün lock'lardan önce oluşu; IRQ→IPC transaction→deadline→registry sırası; unique object count/index'in writer öncesi owned olması; exact bir S358 acquire ve exact bir ortak release; writer'ın tek mutable scheduler aliasından önce gelmesi; grant revalidation, graph preflight, generation, capacity, cancel, CNode revoke ve wake sırası ayrı assertions ile doğrulanır. Her post-writer error'ın shared cleanup tail'ine gitmesi ve owned bool sonucun yalnız waiter revoke bilgisini taşıması ayrıca kapanır.",
"Waiter graph kabulü fail-closed'dur: object.waiter yoksa aynı object için deadline veya BlockedOnNotification residue bulunamaz; waiter varsa task id, notification id, generation, mask, deadline key ve CNode'daki exact live grant birbirini karşılamalıdır. Generation mismatch capacity reserve'den; reserve bütün cancel/revoke etkilerinden önce gelir. Böylece TableFull veya stale graph reddi CNode authority'sini, deadline kaydını, object waiter'ını ve scheduler state'ini yarım mutate etmez.",
"Guard yaşam süresi ters bırakma sırasıyla kaynakta ölçülür: NOTIFICATION_REGISTRY ile IPC_CALL_DEADLINES optional wake'den önce; S358 exclusive lease wake'den sonra; IPC_TRANSACTION_LOCK writer'dan sonra; IrqGuard transaction'dan sonra bırakılır ve ancak bundan sonra owned commit_result döner. Bu sıra callback modelinden çıkarım değildir; capability.rs sınırındaki kaynak index'leriyle exact karşılaştırılır. Aynı focused dosya historical S281 model-only audit'in distinct kalmasını ve S359 destroy_notification_object sembolünün henüz S358 acquire kullanmamasını da doğrular.",
"İlk seçili regresyonda S315 tarihsel source sözleşmesi semantik olarak eşdeğer == Some(grant) biçimini kabul etmedi ve exact `capability_for_task(grant.owner, grant.id) != Some(grant)` stale-authority ifadesini istedi. İfade korunurken S358 owned cleanup tasarımı değiştirilmedi; ürün, coverage veya exclusion assertion'ı zayıflatılmadı.",
"Final seçili regresyon 9 grup / 181/181 PASS'tir: S358 47/47, S357 46/46, S281 15/15, S293 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 111450 B / 16f579f9cafe19d6b7bb334c12e910d98e9a71dbc312dcafc27f2cfcacc834ca / 293 warning header; board-rpi4 150191 B / 0b3cfbc420782f61b3cb6b1de33d4911ee5c95dd1e50322368741ca6a8aeccfb / 391; board-rpi5 576432 B / 915902a04b6cc54301e72b8b7eab37517cf94dde0a167c5aa8c2e2bdba46b48e / 1300 ve board-rpi5+smp 576374 B / e6e5d121c5529584382c833eea293fa09c6dcf36767308b9568769c034c375cf / 1300. Zero-warning iddiası yoktur.",
"Build log ölçüsü ELF ölçüsü gibi sunulmaz. Fresh ELF artifact'leri ayrıca board-qemu 12611784 B / 677f40e62d258e5e308717aaf8ed3ec9e99938a0f660525799356c8dc2c70afa; board-rpi4 7724008 B / 52a9b653a55d479b5f32cd4beb8f57cec3b9ae7a564ac275c6514d1938cee0d4; board-rpi5 13416392 B / 2a3f5c17139a60ccf82f518a5ec3b357616822f53d0f17bbb34305b20f1fd166 ve board-rpi5+smp 13422504 B / 1fbe40014e45136edbea3a2b573fded10dd45a9cf78961b78a940675b2d0f5e9 olarak ölçüldü.",
"S238–S358 dependency matrisi S357'nin exact 121 hedeflik listesine yalnız S358 eklenerek iki bağımsız seri koşuda 122 grup / 2285/2285 PASS verdi. Ham özetler 28493 B ve 0622205ab2e4f14938852c7a09843276cae7d375bb21cad8bdeba0f34998dd12 / 3cfe81eb2922493913df309aefdcde12e8c154c2db847f6585f631b5d84b5627; timing alanları nedeniyle 63 diff satırı vardır. 28737 B normalize özetler 7238dba4b43b41abb85865411c95be664afa3e75ff119e2b6e43db9f016d3890 ile byte-eşittir.",
"Exact yedi tarihsel frozen assertion dışındaki seri workspace 320 sonuç grubu / 4131 PASS / 0 fail / 7 filtered verdi; 69669 B log SHA-256 73fe1286dea2ec318a6c7d2fcb8684894f6b652cb31178285c82d47b998202b9'dur.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 273 sonuç grubunda 3876 PASS / 1 fail, 64891 B log SHA-256 c6f4588713d8f87066565e21bd9400c7501f3c54ffb528fe0af2f4287ce2025d'dir ve global workspace GREEN iddia edilmez.",
"make verify-qemu 116354 B / 6ae158a52077395ebd08960d07a86be51990763c5bfb9f297dbb998d2dc96776 ile strict ELF W^X 31/31, S130–S154 Runtime-OOM/deadline zinciri, IPC reply 20/20, scheduler SEC5 ve kernel fault/panic marker 0 PASS verdi. Ortak board-qemu regresyonu S358 RPi5 production writer invocation kanıtı değildir.",
"İlk scoped rustfmt check 16614 B / a02a4e3c0d6023895578f945fdfb7cd8d4541ea0eb73be21d52fa492d00ac0c5 ile yalnız yeni modül/test farklarını gösterdi. Bu iki dosya formatlandı; final scoped check boş çıktılı PASS'tir. Global cargo fmt 75579 B / 86a058f997ce5923168211f90e2661b402aea7f999b19d2e79998ff822e3a1b6 ile miras farklarda RED'dir; global format GREEN iddia edilmez.",
"S358 web/publication kabulünün ilk içerik aşaması 575/575 website test, lint, boş çıktılı TypeScript ve 23/23 static route build PASS verdi. Export 195 dosyadır; Timeline ile yol-haritasi S358 dahil 197 ayrı data-gate-policy kartı taşır. S358 promotion policy yayın kanıtı eklenmeden önce 11776 karakter / 12267 UTF-8 byte ölçüldü; bu, S357'nin 11008 karakterlik yayın-öncesi yoğunluk tabanının üstündedir ve S358 kısa özet olarak yayımlanmaz.",
"İlk Cloudflare Pages production/main içerik yayını a2723e97-9a28-4275-a3c8-ffd05f388dcc kimliğiyle 111 upload + 84 existing = 195 dosya olarak tamamlandı. Cache-busted custom-domain doğrulamasında Operations HTTP 200 / 11418969 B / 5757351675aa07075b454c946760c6fc3181072a302bbd60b64a11092dc1ed05, Timeline HTTP 200 / 3497145 B / 167e9cc2a72040e6c0c59a2d620efc3a2ed96ff3727c5f081684accf01d28706 ve yol-haritasi HTTP 200 / 3496893 B / a2781e0be7ec0e2c789cf9b83a179bdae47e1c401e50d9aafe5393f7e439aa7a ile ilgili yerel out dosyasına byte-exact PASS verdi. Immutable a2723e97 hostname probe'u connection reset nedeniyle curl exit 35 / HTTP 000 verdi; custom-domain PASS bu erişim sınırını gizlemez.",
"S358 publication amendment'ı terminal özetinin hangi kodu doğruladığını görünür kılmak için ortak navigasyona İşlemler ile Misyon arasında Kod menüsünü ve /code/ rotasını ekledi. Deterministik registry S328–S358 arasındaki 31 kapının her biri için üç gerçek Rust katmanı taşır: production acquire/mutable sınır kesiti, S247 exclusive guard wrapper kesiti ve acquire/source-order sözleşmesini doğrulayan focused #[test] fonksiyonu. Toplam 93 kesit path, symbol, exact satır aralığı, snippet SHA-256 ve tam dosya SHA-256 ile render edilir. operations.ts güncel sırası ile registry aralığı ayrışırsa, bir kesit kaynak satırlarıyla birebir değilse veya generated JSON stale kalırsa test/build/deploy fail-closed durur.",
"Kod yüzeyinin ilk focused kabulü 6/7 PASS ve 1 RED verdi: S358 production penceresi guard/mutable aliası gösteriyor fakat validate_notification_grant_shape satırı pencerenin iki satır dışında kalıyordu. Assertion kaldırılmadı; production kesiti preflight→guard→mutation→release akışını gösterecek biçimde genişletildi. Final code-registry 7/7, bütün website 582/582, lint, boş çıktılı TypeScript ve 24/24 static route PASS verdi. Registry 31 kapı / 93 gerçek kesit / SHA-256 e5a29b69971ca6835fe7640baef9599e4c917620eb3093c18b0735e459b65253; export 200 dosyadır ve /code/ HTML 31 ayrı data-code-gate kartı taşır.",
"İlk /code/ Cloudflare Pages production/main yayını f3e1ad72-0c82-45bd-a708-4f709cb0667c kimliğiyle 117 upload + 83 existing = 200 dosya olarak tamamlandı. Cache-busted custom-domain karşılaştırması /code/ için HTTP 200 / 941420 B / 55d7bf88982723e66a94e51680a53836cc3033ccd9b9e064b35677fc55c217dc; /operations/ 11429896 B / 576173a3b5b0abb3e4cb855a9817d55b4141e1c3414394e12aa1b7196c781c34; /timeline/ 3506201 B / cff9ea56642980eb55d853037c3d949c7fcbcaa54c9a7dc1cf12c82994fdef09 ve /yol-haritasi/ 3505949 B / 4ea3bf8250fa62bb53882484a398af67b5ef6d0cf887070f2e88511e47785243 ile ilgili yerel out dosyasına byte-exact PASS verdi. Canlı /code/ içinde 31 gate kartı ve ortak Kod navigasyon marker'ı exact sayıldı.",
"S358 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_S358=NO.",
"S358 bazlı bağlayıcı olmayan planlama görünümü R1 S358–S388, R2 S413–S463, R3 S542+, kaba S518–S568 ve risk paylı merkez ≈S543'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_s358_notification_grant_revoke_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 test && npm run lint && npx tsc --noEmit && npm run build && npm run deploy",
],
terminalSessions: [
{
id: "g8l-s358-focused-notification-grant-revoke-writer-guard",
title: "S358 focused notification-grant revoke writer membership",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s358_notification_grant_revoke_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial test result: RED; S358 focused 33 passed; 14 failed; production boundary/service not yet wired",
"final test result: ok; S358 focused 1 group / 47 passed; 0 failed",
"shared S247 gate: 44 guarded readers + 31/69 guarded writers; 38 writers open",
"shape/object preflight < S358 writer < grant/graph/capacity revalidation < waiter/deadline/CNode/wake commit < nested locks/writer/transaction/IRQ release",
"static source paths=7; supported-profile runtime observations=0; provider authority=0",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s358-selected-notification-regression",
title: "S358 selected notification revoke/lifecycle regression",
commandLines: [
"run S358, S357, S281, S293, S314, S315 and three notification runtime groups serially",
],
outputLines: [
"initial historical source assertion: S315 14/15 RED; exact stale-authority spelling drift",
"preserved exact != Some(grant) source contract without changing S358 owned cleanup",
"final result: 9 groups / 181 passed / 0 failed",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s358-core-acceptance",
title: "S358 four-profile, dependency, workspace and QEMU acceptance",
commandLines: [
"run four fresh AArch64 profile builds",
"run S238-S358 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 122 groups / 2285/2285 twice; normalized 28737-byte summaries are SHA-256 identical",
"filtered workspace 320 groups / 4131 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
"QEMU W^X 31/31 + S130-S154 + IPC 20/20 + SEC5 PASS; not an S358 runtime observation",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s358-production-publication",
title: "S358 Operations/Timeline/phone production publication",
commandLines: [
"npm test && npm run lint && npx tsc --noEmit && npm run build",
"npm run deploy",
"cache-busted curl + cmp for /operations/, /timeline/ and /yol-haritasi/",
],
outputLines: [
"website tests 575/575 PASS; lint PASS; TypeScript exit 0 with empty output; static routes 23/23",
"export files=195; Timeline/yol-haritasi gate cards=197; pre-publication S358 policy=11776 chars / 12267 bytes",
"deployment a2723e97-9a28-4275-a3c8-ffd05f388dcc; 111 upload + 84 existing",
"custom-domain routes HTTP 200 and byte-exact=true; immutable hostname curl exit 35 / HTTP 000",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s358-source-bound-code-registry-publication",
title: "S328–S358 source-bound Code registry production publication",
commandLines: [
"npm run code:generate && node --test src/lib/code-gates-content.test.mjs",
"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: [
"initial code evidence result: 6/7 PASS; S358 preflight line outside the first production excerpt window",
"final code evidence 7/7 PASS; full website 582/582 PASS; lint PASS; TypeScript empty; static routes 24/24",
"registry S328-S358: 31 gates / 93 exact source excerpts / sha256=e5a29b69971ca6835fe7640baef9599e4c917620eb3093c18b0735e459b65253",
"export files=200; /code/ HTML=941420 bytes; live data-code-gate cards=31; shared Kod nav marker=1",
"deployment f3e1ad72-0c82-45bd-a708-4f709cb0667c; 117 upload + 83 existing",
"four custom-domain routes HTTP 200 and byte-exact=true",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"S358 otuz birinci production writer'ın dar kaynak entegrasyonudur. Yalnız exact notification grant revoke graph/CNode/optional wake transaction'ı guarded'dır; S359 notification-object destroy ayrı kalır ve supported-profile runtime invocation uydurulmaz. S328–S358 code registry'si test edilen kodu görünür kılan publication kanıtıdır; yeni scheduler runtime veya fiziksel kabul üretmez.",
limitations: [
"38 production writer aynı shared gate dışında kaldığı için whole-scheduler exclusion ve provider authority açık kalır.",
"Yedi static source path wiring envanteridir; S358-specific supported-profile invocation/observation kanıtı yoktur.",
"destroy_notification_object writer sınırı sıradaki ayrı S359 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: 7e3400024a75…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s358_notification_grant_revoke_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S358-Notification-Grant-Revoke-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9