ASELSANMicrokernel
S366 · SOURCE-BOUND GATE EVIDENCE

S366 · Primary endpoint wake production writer guard integration

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

S366Production writer guardOperations id exactsource SHA exacttest target exact

operation: g8l-s366-primary-endpoint-wake-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 öğesiL3153–L3266kapı odağı L3205–L3218
kernel/src/ui/capability.rs::teardown_endpoint_object_under_ipc_transaction
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S366 exact production writer üyeliği sınırıdır. Komşu kod, guard kapsamı iddiası değildir.

/// Commit one already-preflighted normal endpoint removal. This function has
/// no fallible allocation; invariant failures are fail-stop because returning
/// after the registry linearization point would expose a partial teardown.
fn teardown_endpoint_object_under_ipc_transaction(
    id: CapId,
    expected_owner: u64,
    revoker: Option<u64>,
) -> Option<EndpointTeardown> {
    let holder_preflight = {
        #[cfg(feature = "board-rpi5")]
        let _s251_scheduler_read_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s250_endpoint_commit_read_access_guard_expansion::acquire_s251_production_scheduler_read_access()
            .unwrap_or_else(|error| panic!("S251 endpoint-commit holder-preflight scheduler read guard failed closed: {:?}", error));
        unsafe { (&*core::ptr::addr_of!(crate::task::scheduler::SCHEDULER)) }
            .preflight_endpoint_holder_purge(id, expected_owner)
            .expect("endpoint holder graph was not preflighted before commit")
    };
    let mut removed = {
        let mut registry = ENDPOINT_REGISTRY.lock();
        let position = registry
            .iter()
            .position(|endpoint| endpoint.id == id && !endpoint.is_reply_cap)?;
        registry.remove(position)
    };
    assert_eq!(
        removed.owner, expected_owner,
        "endpoint object owner changed after typed teardown preflight"
    );
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s365_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s365_endpoint_holder_purge_writer_guard_integration::acquire_s365_production_scheduler_writer_access()
        .unwrap_or_else(|error| {
            panic!(
                "S365 endpoint-holder purge scheduler writer guard failed closed: {:?}",
                error
            )
        });
    let purged_holders = unsafe {
        (&mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER))
            .purge_endpoint_holders_exact(id, expected_owner)
    };
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s365_writer_access);
    assert_eq!(
        purged_holders, holder_preflight,
        "endpoint holder purge did not match teardown preflight"
    );
    assert_eq!(
        get_capability_store().revoke_endpoint_provenance(id, revoker),
        1,
        "normal endpoint object must have exactly one provenance record"
    );

    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s366_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s366_primary_endpoint_wake_writer_guard_integration::acquire_s366_production_scheduler_writer_access()
        .unwrap_or_else(|error| {
            panic!(
                "S366 primary endpoint wake scheduler writer guard failed closed: {:?}",
                error
            )
        });
    unsafe {
        let scheduler = &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER);
        scheduler.wake_tasks_on_revoked_endpoint(id);
    }
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s366_writer_access);

    let rendezvous_summary = removed.rendezvous.revoke();
    let mut drained = rendezvous_summary.cancelled_calls;
    while let Some((caller_task, reply_cap_id)) = removed.rendezvous.take_cancelled_wake() {
        let retire_witness = removed
            .rendezvous
            .retire(caller_task, reply_cap_id)
            .expect("revoked parked CALL must retire after cancellation notification");
        assert!(
            discard_retired_reply_endpoint_under_ipc_transaction(id, retire_witness, revoker,),
            "revoked CALL lost its linked reply object"
        );
        #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
        let s367_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s367_linked_reply_endpoint_wake_writer_guard_integration::acquire_s367_production_scheduler_writer_access()
            .unwrap_or_else(|error| {
                panic!(
                    "S367 linked reply-endpoint wake scheduler writer guard failed closed: {:?}",
                    error
                )
            });
        unsafe {
            let scheduler = &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER);
            scheduler.wake_tasks_on_revoked_endpoint(reply_cap_id);
        }
        #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
        drop(s367_writer_access);
    }
    assert_eq!(
        removed.rendezvous.reply_len(),
        0,
        "preflighted endpoint teardown left a reply record behind"
    );

    // Drain the pre-rendezvous kernel-demo queue as well. EL0 syscalls never
    // publish into this legacy queue after K2 P0 integration.
    while let Some(envelope) = removed.pending_messages.pop_front() {
        drained += 1;
        assert_eq!(
            envelope.reply_cap_id, 0,
            "legacy queue carried a reply authority without rendezvous state"
        );
    }

    Some(EndpointTeardown {
        owner: removed.owner,
        drained,
    })
}
snippet sha256: 2b8e092409e5file sha256: 304e1227daf9focus sha256: 562781766109
02 · Ortak exclusion üyeliği

S247 production writer guard

tam Rust öğesiL175–L187
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s366_primary_endpoint_wake_writer_guard_integration.rs::acquire_s366_production_scheduler_writer_access

#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s366_production_scheduler_writer_access(
) -> Result<G8lS366ProductionSchedulerWriterAccess, 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(G8lS366ProductionSchedulerWriterAccess { _access: access })
}
snippet sha256: c662e4cac146file sha256: 8221c4ad8c9d
03 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL375–L386
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s366_primary_endpoint_wake_writer_guard_integration.rs::helper_has_exactly_one_s366_acquire_and_one_release

#[test]
fn helper_has_exactly_one_s366_acquire_and_one_release() {
    let boundary = endpoint_teardown_commit_boundary();
    assert_eq!(
        boundary
            .matches("acquire_s366_production_scheduler_writer_access")
            .count(),
        1
    );
    assert_eq!(boundary.matches("drop(s366_writer_access)").count(), 1);
}
snippet sha256: 5f9ffd2a1562file sha256: 571cee6fd403
04 · Kapı kimlik kaydı

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

tam Operations kaydıL11048–L11201
website/src/lib/operations.ts::g8l-s366-primary-endpoint-wake-writer-guard-integration-partial
  {
    id: "g8l-s366-primary-endpoint-wake-writer-guard-integration-partial",
    date: "2026-08-28",
    sequence: 366,
    status: "passed",
    umbrella_status: "partial",
    title: "S366 · Primary endpoint wake production writer guard integration",
    summary:
      "S366, teardown_endpoint_object_under_ipc_transaction içindeki exact wake_tasks_on_revoked_endpoint(id) primary-endpoint scheduler mutation'ını S365 ve 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. S365 holder purge release'i, holder snapshot equality ve exact endpoint-provenance revoke writer'dan önce kapanır. Gerçek per-CPU kimliğinden yalnız CPU0 için S366 exclusive writer alınır; exact tek mutable SCHEDULER aliası primary wake method çağrısını bütünüyle kapsar ve rendezvous revoke başlamadan explicit bırakılır. Linked reply_cap_id wake'i S367 için ayrı açık kapıdır. Guarded writer 39/69, açık writer 30, provider authority 0 ve whole-scheduler exclusion false'dur. İki direct production caller path vardır; supported-profile runtime observation=0'dır.",
    evidence: [
      "Focused S366 primary-endpoint wake kapısının production helper ve CPU1 coverage service bağlanmadan önceki TDD koşusu 40/51 PASS ve 11 RED verdi. RED yüzeyi exact acquisition/drop/order, guarded primary-wake dilimi ve service wiring'inin kaynakta gerçekten bulunmadığını gösterdi.",
      "Production helper ve CPU1 service bağlandıktan sonra aynı focused hedef 1 grup / 51 passed / 0 failed verdi. Product, coverage, open-writer veya downstream S367 assertion'ı gevşetilmedi.",
      "Final envanter 44 guarded reader + 39/69 guarded writer + 30 open writer olarak module constant, pending-request outcome ve production source assertion katmanlarında birlikte doğrulanır.",
      "Exact kaynak sırası S251 holder snapshot → endpoint registry linearization → S365 holder purge writer/drop → holder snapshot equality → exact provenance revoke → S366 CPU0-only shared-gate writer → tek mutable SCHEDULER aliası → wake_tasks_on_revoked_endpoint(id) → writer drop → rendezvous revoke → reply retirement → S367 reply_cap_id wake sınırıdır.",
      "S365 writer owned purge summary alındıktan hemen sonra explicit bırakılır. Snapshot equality ve provenance retirement S365 lease'i dışında, S366 acquisition'ından önce çalışır; S365→S366 nested exclusive membership oluşmaz.",
      "get_capability_store().revoke_endpoint_provenance(id, revoker) sonucu exact 1 olmak zorundadır. Provenance kaydı drift ederse S366 scheduler mutation'ı başlamadan fail-stop olur.",
      "Production wrapper exact target_arch=aarch64, target_os=none ve feature=board-rpi5 cfg kesişimindedir. try_current_cpu_id gerçek CPU kimliğini türetir ve yalnız CPU0 kabul edilir.",
      "Wrapper exact S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu kullanır. Ayrı state word, caller-supplied CPU taklidi veya model-only authority production'a taşınmaz.",
      "teardown_endpoint_object_under_ipc_transaction içinde exact bir acquire_s366 occurrence'ı, exact bir primary-wake mutable scheduler aliası ve exact bir drop(s366_writer_access) vardır.",
      "S366 lease altında yalnız primary id için wake_tasks_on_revoked_endpoint(id) yürütülür. Prior S251/S365/provenance işleri ve downstream rendezvous/reply işleri guarded dilime taşınmaz.",
      "Owned id ve normal endpoint object kimliği writer'dan önce sabittir. S366 üyeliği registry lock'u yeniden edinmez ve removed object referansını shared gate dışına scheduler borrow olarak sızdırmaz.",
      "Scheduler::wake_tasks_on_revoked_endpoint önce IPC deadline registry lock'unu, sonra ipc_blocked_tasks lock'unu alır; lock sırası focused kaynak assertion'ıyla korunur.",
      "Wake method CALL ve RECEIVE blocked kayıtlarında endpoint id, reply target ve deadline identity bağlarını yeniden doğrular; yalnız exact revoked peer ile ilişkili kayıtlar seçilir.",
      "Her deadline için complete_peer_closed exact task/token/kind/endpoint/reply tuple'ı task state değişmeden önce yürür. Deadline uyuşmazlığı sessizce başarılı kabul edilmez.",
      "Selected CALL continuation result'i exact InvalidCapability olur. Message label, badge ve bütün data tail'i sıfırlanır; stale IPC payload kullanıcı continuation'ına taşınmaz.",
      "Selected RECEIVE continuation result'i de exact InvalidCapability olarak kaydedilir ve saved user GPR dönüş yüzeyi temizlenir. CALL/RECEIVE ayrımı deadline identity ile korunur.",
      "Her seçili task Blocked IPC state'inden Ready durumuna taşınır ve ready_queue'ya exact bir kez yayınlanır. Aynı task için duplicate enqueue kabul edilmez.",
      "Task ASID sıfır değilse invalidate_asid yalnız exact selected task için Ready publication'dan önce yürür. ASID0 için gereksiz invalidation üretilmez.",
      "ipc_blocked_tasks lock'u task commit'i sırasında bırakılır; owned task güncellenip ready queue'ya konduktan sonra kalan kayıt taraması için yeniden alınır. Scheduler iç lock düzeni genişletilmez.",
      "S366 writer method'in bütün iç kilit ve task mutation akışını kapsar; yöntem tamamlanmadan lease bırakılmaz. Buna rağmen writer scope'u rendezvous object teardown'una doğru genişletilmez.",
      "drop(s366_writer_access) let rendezvous_summary = removed.rendezvous.revoke() satırından önce exact kaynak sırasındadır. Rendezvous cancellation S366 sayımına katılmaz.",
      "Cancelled CALL retire döngüsündeki wake_tasks_on_revoked_endpoint(reply_cap_id) S366 release'inden sonra çalışır. reply_cap_id kimliği S366 exact production excerpt'inde bulunmaz.",
      "Production source'ta acquire_s367_production_scheduler_writer_access yoktur. Linked reply-endpoint wake, bir sonraki S367 kapısının açık production writer'ı olarak korunur.",
      "Helper'da tarihsel olarak üç ayrı mutable scheduler aliası vardır: S365 holder purge, S366 primary wake ve açık S367 reply wake. S366 yalnız ortadaki aliası sahiplenir.",
      "İki distinct direct caller path vardır: S364 admission üzerinden gelen task-owned/kernel-shared endpoint destroy yolu ve teardown_task_ipc_lifecycle task-exit yolu. Bu wiring envanteri runtime invocation sayısı değildir.",
      "Task-lifecycle caller outer IrqGuard, IPC_TRANSACTION_LOCK ve checked wake capacity discipline'ini taşır. S366 helper yeni outer IRQ/IPC transaction edinmez.",
      "Admission caller exact capacity reservation'ından sonra S364 writer'ı bırakıp teardown helper'a girer. S364, S365 ve S366 üç ayrı exclusive transaction olarak kalır.",
      "Host-testable execute_s366_guarded_primary_endpoint_wake_commit yalnız CPU0 callback'ini çalıştırır. Non-CPU0, active reader veya active writer callback'ten önce fail-closed olur.",
      "Host callback error exclusive membership'i exact-once bırakır ve gate yeniden alınabilir. Success receipt nonzero token ile owned output taşır; lease veya mutable scheduler referansı dışarı sızmaz.",
      "S365→S366 token monotonluğu ve iki kapının ayrı exclusive transaction olması modelde doğrulandı. Bir kapının lease'i diğerinin callback'ine geçirilemez.",
      "S366 preflight S365'in 44 reader / 38 guarded writer / 31 open snapshot'ını exact doğrular ve yalnız doğru zincir 39/69 guarded, 30 open sonucu üretir. Inventory drift fail-closed error'dır.",
      "Pending S245 request yalnız non-consuming view ile incelenir. Request id korunur, request take edilmez, S244 admission yayınlanmaz ve provider authority oluşturulmaz.",
      "CPU1 coverage service S365 service'inden sonra ve tarihsel S242 consumer'dan önce bağlıdır. Service S247 writer edinmez ve production primary wake runtime'ını çalıştırmaz.",
      "Tarihsel S289 endpoint-object wake audit'i model-level lease/order kanıtı olarak ayrı kalır. S366 gerçek board-rpi5 static wrapper ve exact production acquisition/drop sınırını ekler.",
      "S366 wiring sonrası S365 focused testi yalnız iki obsolete global absence assertion'ında 46/48 RED oldu. Assertion'lar S365 guarded diliminde S366 yokluğu ile ayrı downstream exact-one S366 membership'ini birlikte doğrulayacak biçimde daraltıldı; S365 38/69 semantiği korunarak 48/48 PASS oldu.",
      "Aynı yeni kaynak sonrasında S364 focused testi iki obsolete global absence assertion'ında 39/41 RED oldu. S364 admission boundary'sinde S365/S366 yokluğu ile ayrı teardown helper'daki exact-one üyelikler birlikte sabitlendi; S364 37/69 semantiği korunarak 41/41 PASS oldu.",
      "Final seçili regresyon 9 ayrı grup / 223/223 PASS'tir: S366 51/51, S365 48/48, S364 41/41, S288–S290 45/45, S250 11/11, capability_mint_source 9/9 ve ipc_queue_source 18/18.",
      "Seçili regresyon summary'si 1872 B / d94f731b492cd3ff2d2fd6eb6c5383923f7f7ea614dde9acb24d8d2bade68d57 olarak /tmp/aselsanos-s366-selected.9kHhAf altında ölçüldü.",
      "Fresh izole AArch64 profilleri 4/4 exit 0 verdi. Build logları board-qemu 112254 B / ecad1883c707e45410fb0c9cc704636270507441b3dfd099d72324fcd8d09f93 / 293 warning header; board-rpi4 150936 B / 58abf082d13b9008a8df7504bb7c9a689263db6a8273ef875ce59e8c3e82b328 / 391; board-rpi5 595890 B / c622cbf3e8b0cfe33f32e426a1a11d193e81955e27de8e8ad71738283f26c896 / 1348 ve board-rpi5+smp 595728 B / 9bb58046b93ace1f9a82339631be950782b86772e98626cbc00e142d597e6478 / 1348'dir. Zero-warning iddiası yoktur.",
      "Fresh ELF'ler qemu 17280544 B / c6762a608dbc3ecaea1637cd8f815af3704ffa8bc3a6928e77767c231d0d2ab2; rpi4 12329720 B / f74b4a757d230a6882dcc1092e9a2fbb0e7c341e81768df866558c15db935e2b; rpi5 18398040 B / df1420791410ad12444a7960c304f4b5a424f941a4671c9876c887ad5453e16c ve rpi5+smp 18406816 B / 86c6fbba2da17e06ea1137e5553cbe3a58c34a0335621a46f32bec32c4033ad0 olarak loglardan ayrı ölçüldü.",
      "S238–S366 dependency matrisi 130 gruptur ve iki bağımsız seri koşunun her biri 2661/2661 PASS verdi. 12349 B raw özetler 625c44e92206d431d1918167486fb05660751dc1735ab11df6cb01eed4b9fe3d / a87f3b6097087f3352e1f8283340bfd5db599ee8648119509c5546b329652230; 38 timing-result farkı vardır. 12609 B normalize özetler 608f431e93e648439cc898d6adf3fc8af1aabc85a34430088aa2abfcdb87a55c ile byte-eşittir.",
      "Exact yedi frozen G8h assertion dışındaki seri workspace 329 sonuç grubu / 4518 PASS / 0 fail / 7 filtered verdi; 31137 B summary SHA-256 ce9817517a4c56bbdfa07fd911446496ea558035dcd4d5ce637c2f1c6d6fefe7'dir.",
      "Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 282 sonuç grubunda 4263 PASS / 1 fail, 26718 B summary SHA-256 ecf590c0bed5955fb07a619c6c75d535a0530060712a4f7bf93ecd7f4c2fbb84'tür. Global workspace GREEN iddia edilmez.",
      "make verify-qemu 116354 B / 668d4765fafdc63b0adf4d6c2044834051339a83cff1f917cf694b1442b9bacc ile strict ELF W^X 31/31, S130–S154+S271, RuntimePmm, EL0x4096, IPC reply 20/20, scheduler SEC5 ve kernel fault/panic marker 0 PASS verdi. Board-qemu sonucu S366 RPi5 runtime invocation kanıtı değildir.",
      "S366 modülü/focused testi ile güncellenen S365/S364 tarihsel boundary testleri scoped rustfmt check'inde boş çıktılı PASS'tir. Seçili tracked git diff check de boş çıktı verdi; empty SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'tir.",
      "Global cargo fmt 112506 B / 1193386f849adcefa50558e42085bc692f2af855d56cbe0e8550e3c19d7d064a ile miras farklarda RED'dir; scoped format sonucu global GREEN diye sunulmaz.",
      "Fresh build, dependency, workspace, QEMU ve format artifact dizinleri sırasıyla /tmp/aselsanos-s366-builds.AL7KWF, /tmp/aselsanos-s366-dependency.UQaKXe, /tmp/aselsanos-s366-workspace.XAo9T0, /tmp/aselsanos-s366-qemu.Z74Mbl ve /tmp/aselsanos-s366-format.CTZwkq olarak kaydedildi. Geçici path'ler kalıcı proof/status yerine geçmez.",
      "Güncel Kod generator ortak teardown Rust fonksiyonunu S365 ve S366 kartlarında kesmeden gösterir; her kart acquisition'dan explicit release'e kadar kendi exact production writer focus'unu ve focus SHA-256 bağını taşır. Böylece görünür komşu bağlam ilgili kapı tarafından sahiplenilmez.",
      "S1–S327 tarihsel Kod kataloğu 327/327 ayrı kimlik olarak korunur. Eksik sıra 0, duplicate 0'dır; kalıcı yürütme kodu olmayan tarihsel olaylar yalnız exact Operations record biçiminde gösterilir ve başka kapının koduna uydurma bağ kurulmaz.",
      "Project-status JSON, renderer ve manifest S366'nın ayrı status kapısında fail-closed tutulur. İlk website publication öncesi source-bound registry S1–S366 aralığında 366/366 kapı, 1027 exact excerpt, pre-S328 327/327, missing=none ve registry payload SHA-256 19ff61bc9f5f5f0cbd5d3b09773ebb30a67de7fa4fffa651f59667eaabcc3b03 verdi.",
      "Production/main deployment ddd9787c-7cfd-4fbb-b18b-b278578dccf9 ile https://ddd9787c.aselsan-microkernel.pages.dev adresine 116 upload + 84 existing = 200 asset olarak tamamlandı. Yayın öncesi website 625/625, lint PASS, boş çıktılı TypeScript ve 24/24 static route build PASS verdi.",
      "Cache-busted custom-domain /code/, /operations/, /timeline/ ve /yol-haritasi/ HTTP 200 ve deployment out'u ile raw byte-exact PASS verdi. İlk publication ölçüleri sırasıyla 20472912 B / 5bccaea1309c41240e0d4ae42a94d37d05cdc2143e92f828363caff9af5c8a7c, 12323898 B / 6cf23dc60297358f8078500757ccbf23728a638c011ee181aef96bd99755277a, 4376422 B / 8d63c9b470a0f92cbdf819abbbec0adfc10322a3dac2e0f6778b31c120ddee39 ve 4376170 B / c5b4a0fbb940a4f145591eb56e055aacdfcfca8273b27f6f9152c4f481f74085'tir. /code no-transform header'ı vardır; literal gate labels 366/366, pre-S328 327/327, missing=0, duplicate=0 ve gerçek Cloudflare email rewrite=0'dır. Immutable ddd9787c hostname probe'u curl exit 28 / HTTP 000 verdi ve custom-domain PASS yerine geçirilmedi. Publication artifact dizini /tmp/aselsanos-s366-publication.gamoIP'tir.",
      "S366 sırasında güç, SD kart, Mac kart erişimi, UART capture, raw validation, archive veya promotion yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S366=NO.",
      "S366 bazlı bağlayıcı olmayan planlama görünümü R1 S366–S396, R2 S421–S471, R3 S550+, kaba S526–S576 ve risk paylı merkez yaklaşık S551'dir. Bu projeksiyon yeni sıra veya ürün taahhüdü değildir.",
    ],
    commands: [
      "cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s366_primary_endpoint_wake_writer_guard_integration -- --test-threads=1",
      "run S366, S365, S364, S288-S290, S250, capability_mint_source and ipc_queue_source serially",
      "run four fresh AArch64 profile builds; run S238-S366 dependency list twice; run filtered and unfiltered serial workspace audits; make verify-qemu",
      "python3 scripts/render-project-status.py --write && python3 scripts/render-project-status.py --check; cargo test -p aselsan_microkernel_simulation --test project_status_manifest -- --test-threads=1",
      "npm run code:generate; npm test; npm run lint; npx tsc --noEmit; npm run build; npm run deploy; cache-busted curl + cmp for four custom-domain routes",
    ],
    terminalSessions: [
      {
        id: "g8l-s366-focused-source-contract",
        title: "S366 focused primary-endpoint wake writer membership",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s366_primary_endpoint_wake_writer_guard_integration -- --test-threads=1",
        ],
        outputLines: [
          "initial test result: RED; S366 focused 40 passed; 11 failed; production boundary/service not yet wired",
          "final test result: ok; S366 focused 1 group / 51 passed; 0 failed",
          "shared S247 gate: 44 guarded readers + 39/69 guarded writers; 30 writers open",
          "S365 release/equality/provenance < S366 writer < primary wake method < writer release < rendezvous/S367 reply wake",
          "direct caller paths=2; supported-profile runtime observations=0; provider authority=0",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s366-selected-endpoint-regression",
        title: "S366 selected primary-endpoint wake regression",
        commandLines: [
          "run S366, S365, S364, S288-S290, S250, capability_mint_source and ipc_queue_source serially",
        ],
        outputLines: [
          "historical S365 assertions initially 46/48 RED on obsolete global S366 absence",
          "historical S364 assertions initially 39/41 RED on obsolete global S365-S366 absence",
          "preserved prior guarded slices and bound exact one downstream S365/S366 membership without weakening inventory assertions",
          "S367 linked reply wake remains a separate open writer",
          "final result: 9 groups / 223 passed / 0 failed",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s366-core-acceptance",
        title: "S366 four-profile, dependency, workspace and QEMU acceptance",
        commandLines: [
          "run four fresh AArch64 profile builds",
          "run S238-S366 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; zero-warning not claimed",
          "dependency 130 groups / 2661/2661 twice; normalized 12609-byte summaries are SHA-256 identical",
          "filtered workspace 329 groups / 4518 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 S366 runtime observation",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s366-live-publication",
        title: "S366 Operations/Timeline/Kod 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-S366: 366/366 gates; 1027 exact excerpts; pre-S328 327/327; missing=0; duplicate=0",
          "website 625/625 PASS; lint PASS; TypeScript empty-output PASS; static routes 24/24",
          "deployment ddd9787c-7cfd-4fbb-b18b-b278578dccf9; 116 upload + 84 existing = 200 assets",
          "four custom-domain routes HTTP 200 and raw byte-exact=true; code no-transform; Cloudflare email rewrites=0",
          "immutable hostname curl exit 28 / HTTP 000; not substituted for custom-domain evidence",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
    ],
    terminalSessionsNote:
      "Terminal kartları focused kaynak kabulünü, seçili endpoint regresyonunu, dört-profil/dependency/workspace/QEMU kabulünü ve ayrı publication adımını gösterir. S366 yalnız primary endpoint wake writer'ıdır; S365 holder purge ve S367 reply wake kodlarını kendi guard coverage'ına katmaz. Raw günlüklerin byte/hash kimlikleri kalıcı proof/status kaydında tutulur.",
    limitations: [
      "S366 otuz dokuzuncu production writer'ın dar kaynak entegrasyonudur. Yalnız exact primary endpoint wake mutation'ı guarded'dır.",
      "S367 linked reply-endpoint wake ayrı açık kapıdır; prior holder purge, provenance revoke ve downstream rendezvous teardown S366 lease'i dışında kalır.",
      "30 production writer shared S247 gate dışında kalır; provider authority ve whole-scheduler exclusion tamamlanmadı.",
      "İki static caller path wiring envanteridir; S366-specific supported-profile invocation/observation kanıtı yoktur.",
      "Global rustfmt ve frozen-S96 filtresiz workspace RED'dir; global repository GREEN iddia edilmez.",
      "Default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP ve fiziksel RPi kabulü açıktır.",
      "physical/device operations=0 · RUNBOOK_EXECUTED_IN_S366=NO.",
    ],
  },
snippet sha256: 2f02fe527bcdfile sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s366_primary_endpoint_wake_writer_guard_integration -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S366-Primary-Endpoint-Wake-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9