ASELSANMicrokernel
S365 · SOURCE-BOUND GATE EVIDENCE

S365 · Endpoint-holder purge production writer guard integration

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

S365Production writer guardOperations id exactsource SHA exacttest target exact

operation: g8l-s365-endpoint-holder-purge-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ğı L3181–L3194
kernel/src/ui/capability.rs::teardown_endpoint_object_under_ipc_transaction
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S365 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: 7111ad6bf089
02 · Ortak exclusion üyeliği

S247 production writer guard

tam Rust öğesiL178–L190
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s365_endpoint_holder_purge_writer_guard_integration.rs::acquire_s365_production_scheduler_writer_access

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

Operations komutuna bağlı focused test

tam Rust öğesiL395–L406
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s365_endpoint_holder_purge_writer_guard_integration.rs::helper_has_exactly_one_s365_acquire_and_one_release

#[test]
fn helper_has_exactly_one_s365_acquire_and_one_release() {
    let boundary = endpoint_teardown_commit_boundary();
    assert_eq!(
        boundary
            .matches("acquire_s365_production_scheduler_writer_access")
            .count(),
        1
    );
    assert_eq!(boundary.matches("drop(s365_writer_access)").count(), 1);
}
snippet sha256: 7698e957bc03file sha256: b1662e050e82
04 · Kapı kimlik kaydı

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

tam Operations kaydıL11202–L11349
website/src/lib/operations.ts::g8l-s365-endpoint-holder-purge-writer-guard-integration-partial
  {
    id: "g8l-s365-endpoint-holder-purge-writer-guard-integration-partial",
    date: "2026-08-28",
    sequence: 365,
    status: "passed",
    umbrella_status: "partial",
    title: "S365 · Endpoint-holder purge production writer guard integration",
    summary:
      "S365, teardown_endpoint_object_under_ipc_transaction içindeki exact purge_endpoint_holders_exact(id, expected_owner) scheduler mutation'ını S364 ve 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. S251 immutable holder snapshot'ı, endpoint-registry removal ve removed-owner eşitliği writer'dan önce kapanır. Gerçek per-CPU kimliğinden yalnız CPU0 için S365 exclusive writer alınır; exact tek mutable scheduler aliası holder purge commit'ini yürütür ve owned purge özeti alındıktan hemen sonra explicit bırakılır. Snapshot equality, provenance revoke, primary endpoint wake ve linked reply-endpoint wake writer dışında kalır; S366 ve S367 ayrı açık kapılardır. Guarded writer 38/69, açık writer 31, 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 S365 endpoint-holder purge kapısının production wiring ve CPU1 service öncesindeki ilk koşusu 38/48 PASS ve 10 RED verdi. RED'ler exact production acquisition/drop/order, holder-purge membership ve coverage-service kaynakta henüz bulunmadığı için gerçek entegrasyon eksikleriydi.",
      "Production helper ve CPU1 service bağlandıktan sonra final focused sonuç 1 grup / 48 passed / 0 failed oldu. Product, coverage veya açık-kapı assertion'ı gevşetilmedi.",
      "Final envanter 44 guarded reader + 38/69 guarded writer + 31 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 exact normal-object removal → removed-owner equality → S365 CPU0-only shared-gate writer → exact tek mutable SCHEDULER aliası → purge_endpoint_holders_exact → owned purge summary → writer drop → snapshot equality → provenance revoke → S366/S367 wake sınırlarıdır.",
      "S251 acquire_s251_production_scheduler_read_access ile holder summary owned değere alınır ve reader scope'u S365 writer'dan önce biter; reader-to-writer upgrade veya nested S247 lease yoktur.",
      "ENDPOINT_REGISTRY lock'u exact id ve !is_reply_cap şartıyla object'i linearize edip kaldırır. Registry lock blok sonunda bırakılır ve S365 writer altında yeniden edinilmez.",
      "removed.owner == expected_owner eşitliği exclusive writer ediniminden önce fail-stop doğrulanır. Yanlış owner ile scheduler mutation başlatılmaz.",
      "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 veya caller-supplied sahte CPU girişi yoktur.",
      "teardown_endpoint_object_under_ipc_transaction boundary'sinde exact bir acquire_s365 occurrence'ı, exact bir addr_of_mut!(SCHEDULER) aliası ve exact bir drop(s365_writer_access) vardır.",
      "S365 lease altında yalnız purge_endpoint_holders_exact(id, expected_owner) yürütülür. Holder snapshot reader'ı, registry lock'u, provenance store veya wake mutation guarded dilime taşınmaz.",
      "Scheduler::purge_endpoint_holders_exact current task, ready queue, IPC-blocked tasks ve retired task container'larını exact holder tuple'ı ile yeniden doğrular.",
      "Her holder endpoint_holder_for_task ile endpoint id/object owner/root authority biçiminde doğrulanır; revoke_capability_exact tam beklenen capability dışında fail-stop olur.",
      "Container summary checked record ile sayılır ve overflow fail-stop'tur. Final removed == expected equality scheduler method'i içinde korunur.",
      "Ready queue core::mem::take → BinaryHeap::into_vec → in-place CNode mutation → BinaryHeap::from sırasıyla aynı allocation'ı yeniden kullanır; ordering anahtarları değiştirilmez.",
      "purged_holders owned local değere taşındıktan sonra S365 writer explicit bırakılır. purged_holders == holder_preflight ikinci equality'si writer dışında kalır.",
      "get_capability_store().revoke_endpoint_provenance exact-one assertion'ı S365 lease'i bırakıldıktan sonra çalışır; provenance mutation guarded writer sayısına eklenmez.",
      "wake_tasks_on_revoked_endpoint(id) primary endpoint wake writer'ı S366 olarak ayrı açık kalır.",
      "Cancelled linked CALL retire akışındaki wake_tasks_on_revoked_endpoint(reply_cap_id) reply-endpoint wake writer'ı S367 olarak ayrı açık kalır.",
      "Production S365 snippet'i S366/S367 acquisition sembolü taşımaz. İki downstream wake site test edilmiş bağımlılık olsa da S365 coverage'ı gibi sunulmaz.",
      "S364 admission writer preflight_and_teardown_endpoint_object_under_ipc_transaction boundary'sinde capacity reservation sonrası ve teardown helper çağrısından önce bırakılır; S364→S365 nested exclusive membership oluşmaz.",
      "İki distinct direct caller path vardır: full S364 admission'dan gelen task-owned/kernel-shared destroy yolu ve teardown_task_ipc_lifecycle task-exit yolu. Bu wiring envanteri runtime invocation sayısı değildir.",
      "Her iki caller outer IRQ ve IPC_TRANSACTION_LOCK disiplinini taşır. S365 helper yeni IRQ guard, IPC transaction veya endpoint registry nested lock edinmez.",
      "Host-testable execute_s365_guarded_endpoint_holder_purge_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 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.",
      "S364→S365 token monotonluğu doğrulandı; iki kapı ayrı exclusive transaction'dır ve S364 lease'i S365'e taşınmaz.",
      "S365 preflight S364'ün 44 reader / 37 guarded writer / 32 open snapshot'ını exact doğrular ve yalnız doğru zincir 38/69 guarded, 31 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 S364 service'inden sonra ve tarihsel S242 consumer'dan önce bağlıdır. Service S247 writer edinmez ve production holder purge runtime'ını çalıştırmaz.",
      "Tarihsel S288 endpoint-holder purge audit'i model-level lease/order kanıtı olarak ayrı kalır. S365 gerçek board-rpi5 static wrapper ve exact production acquisition/drop sınırını ekler.",
      "S365 wiring sonrası tarihsel S364 focused testi obsolete global absence assertion'ında 40/41 RED oldu. Assertion S364 admission boundary'sindeki absence ve ayrı teardown helper'ındaki exact-one S365 acquisition olarak daraltıldı; S364 37/69 semantiği korundu.",
      "Final seçili regresyon 8 grup / 172/172 PASS'tir: 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 1941 B / 8c501b2e5ff2ad685842f884fad78a77afca286020c579bf2b36f896a7cffd56 olarak /tmp/aselsanos-s365-selected.fz5Z69 altında ölçüldü.",
      "Fresh izole AArch64 profilleri 4/4 exit 0 verdi. Build logları board-qemu 111502 B / 66d502befcd4e2c5228759fb9650375976d3e383cd0381b206b06f4b83cee499 / 293 warning header; board-rpi4 150191 B / 3288ed1a1cc66413537748ed87f3b8d7d3b782a3c5a2def53ada7e6111828310 / 391; board-rpi5 592892 B / bee65248bf09f7bfdf74bf8bf47dd4c6e6efece94035841b2a1a1ded554f8ae2 / 1342 ve board-rpi5+smp 592782 B / a3516b8cec3368603bdc72993be00f4265b005df16d1538b8188490cd0437045 / 1342'dir. Zero-warning iddiası yoktur.",
      "Fresh ELF'ler qemu 12622952 B / 15df5353f6ec53048b10e039822e7db8c9cfcf5e23c48c4f6723f42eeec1ac55; rpi4 7736872 B / 13f609db7c8edf721cd5fea4863013769671b7e348954ce0e3937cac35f2071b; rpi5 13821192 B / 50ede3a7df56048e6439ee7a47f39051e5cafc19df640215763be3ad27d994a7 ve rpi5+smp 13829296 B / c9acaea01b58100fc038c652243fff46974698913c0a2cb29df0a8f8686f84fe olarak loglardan ayrı ölçüldü.",
      "S238–S365 dependency matrisi 129 gruptur ve iki bağımsız seri koşunun her biri 2610/2610 PASS verdi. 12254 B raw özetler 7c3c7926a527bc0de0c950b8f7f7ffbf5ee91c6ce9b8033c9bda56db1336e904 / 4801537ebd9cc48913fd06609b2f0b187b662d0109acd4b9ed10ef0147b3b74b; 30 timing-result farkı vardır. 12512 B normalize özetler acc2a95bb2e7677a336666c92b3bc238329bb9ac5842f399ef161e52b58ed6b9 ile byte-eşittir.",
      "Exact yedi frozen G8h assertion dışındaki seri workspace 328 sonuç grubu / 4466 PASS / 0 fail / 7 filtered verdi; 31042 B summary SHA-256 d5b2035f48f06b64a02f8bc80019d380c00112360c65e67f675ade21bbbf66e6'dır.",
      "Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 281 sonuç grubunda 4211 PASS / 1 fail, 26623 B summary SHA-256 1efa2bd6fc71e6389c66da2268a2703347d318a62fee345242b99efceb85aa00'dır. Global workspace GREEN iddia edilmez.",
      "make verify-qemu 116354 B / be0d4d49825f33167285ae59e0693279eae8d268ae0d87d432d750918fdbc92e 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 S365 RPi5 runtime invocation kanıtı değildir.",
      "S365 modülü, focused testi ve güncellenen S364 boundary testi scoped rustfmt check'inde boş çıktılı PASS'tir. Seçili git diff check de boş çıktı verdi. Global cargo fmt 107971 B / 700a187cff9cc3fb31982125baa1eb5022c92488899b23f83bb853354ea50b8a ile miras farklarda RED'dir; global format GREEN iddia edilmez.",
      "Fresh build, dependency, workspace, QEMU ve format artifact dizinleri sırasıyla /tmp/aselsanos-s365-builds.cFhitJ, /tmp/aselsanos-s365-dependency.c82By0, /tmp/aselsanos-s365-workspace.glrDSZ, /tmp/aselsanos-s365-qemu.9EiKh9 ve /tmp/aselsanos-s365-format.r89rWK olarak kaydedildi. Geçici path'ler kalıcı proof/status yerine geçmez.",
      "Project-status JSON parse, renderer --write/--check ve ayrı S365 manifest kapısı PASS'tir. project_status_manifest 248/248 PASS verdi; test S365'in 38/69 guarded writer, 31 open writer, S366/S367 açık sınırı ve S1–S327 için 327/327 exact uyumluluk/tekillik kaydını birlikte fail-closed tutar.",
      "Source-bound Kod generator sequence=365 Operations identity'sini production teardown helper acquire satırı, exact S365 S247 guard wrapper'ı, focused test ve bu ayrı Operations kaydıyla eşledi. İlk publication snapshot registry'si S1–S365 aralığında 365/365 kapı / 1023 exact excerpt / pre-S328 327/327 / missing=none ve SHA-256 a13f9e90114329e7b42eb5143ca1fce97dc4573702c2f004b6f1548f7b0cd3af verdi. S1–S327 kimlikleri 327/327 ayrı kalır; hiçbir kapı çıkarılmaz veya başka kapıyla birleştirilmez.",
      "Production/main deployment 9ab905f6-9d55-4e4f-8bb2-613c08216d22 ile https://9ab905f6.aselsan-microkernel.pages.dev adresine 116 upload + 84 existing = 200 asset olarak tamamlandı. Yayın öncesi website 621/621, lint, boş TypeScript ve 24/24 statik route PASS verdi.",
      "Cache-busted custom-domain /code/, /operations/, /timeline/ ve /yol-haritasi/ HTTP 200 ve deployment out'u ile raw byte-exact PASS verdi. Canlı ölçüler sırasıyla 20280321 B / 477265f0ae8d4f1756bf88f84d781c2ffbfa2e43260fcbc9b34c377758f842c4, 12218885 B / 67d538b1ed7dc91e1a9bcec7a8fd96bae9236530063e94d50a334ca0d3546d6e, 4284931 B / d9a2c839128d551dc20fae1b2a601d30d5b0c835040aceb7691742c8974a6efc ve 4284679 B / 2454ef865bc56f2580540716e85d9a893d92e7890a7562a103299dcc60b10667'dir.",
      "/code/ no-transform header'ı edge rewrite occurrence'ını 0'da tuttu; literal kapı etiketleri 365/365, pre-S328 327/327, missing=0 ve duplicate=0'dır. Immutable deployment hostname curl exit 28 / HTTP 000 sonucu custom-domain PASS yerine geçirilmez. Publication artifact dizini /tmp/aselsanos-s365-publication.aGs2hC'dir.",
      "S365 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_S365=NO.",
      "S365 bazlı bağlayıcı olmayan planlama görünümü R1 S365–S395, R2 S420–S470, R3 S549+, kaba S525–S575 ve risk paylı merkez yaklaşık S550'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_s365_endpoint_holder_purge_writer_guard_integration -- --test-threads=1",
      "run S365, S364, S288-S290, S250, capability_mint_source and ipc_queue_source serially",
      "run four fresh AArch64 profile builds; run S238-S365 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-s365-focused-source-contract",
        title: "S365 focused endpoint-holder purge writer membership",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s365_endpoint_holder_purge_writer_guard_integration -- --test-threads=1",
        ],
        outputLines: [
          "initial test result: RED; S365 focused 38 passed; 10 failed; production boundary/service not yet wired",
          "final test result: ok; S365 focused 1 group / 48 passed; 0 failed",
          "shared S247 gate: 44 guarded readers + 38/69 guarded writers; 31 writers open",
          "S251 snapshot + registry linearization < S365 writer < exact holder purge < writer release < equality/provenance/S366-S367",
          "direct caller paths=2; supported-profile runtime observations=0; provider authority=0",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s365-selected-endpoint-regression",
        title: "S365 selected endpoint-holder purge regression",
        commandLines: [
          "run S365, S364, S288-S290, S250, capability_mint_source and ipc_queue_source serially",
        ],
        outputLines: [
          "historical S364 source assertion initially 40/41 RED on obsolete global S365 absence",
          "preserved S364 admission-boundary absence and bound exact one S365 acquire to distinct teardown helper",
          "S366 primary wake and S367 reply wake remain separate open writers",
          "final result: 8 groups / 172 passed / 0 failed",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s365-core-acceptance",
        title: "S365 four-profile, dependency, workspace and QEMU acceptance",
        commandLines: [
          "run four fresh AArch64 profile builds",
          "run S238-S365 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 129 groups / 2610/2610 twice; normalized 12512-byte summaries are SHA-256 identical",
          "filtered workspace 328 groups / 4466 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 S365 runtime observation",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s365-live-publication",
        title: "S365 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-S365: 365/365 gates; 1023 exact excerpts; pre-S328 327/327; missing=none",
          "status JSON + renderer write/check + project-status 248/248 PASS; S365 and pre-S328 identities fail-closed",
          "website 621/621 PASS; lint PASS; TypeScript empty-output PASS; static routes 24/24",
          "deployment 9ab905f6-9d55-4e4f-8bb2-613c08216d22; 116 upload + 84 existing = 200 assets",
          "four custom-domain routes HTTP 200 and raw byte-exact=true; code no-transform; edge 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-holder regresyonunu, dört-profil/dependency/workspace/QEMU kabulünü ve canlı production yayınını ayrı gösterir. S365 yalnız holder purge writer'ıdır; S366/S367 wake kodlarını test edilmiş olsa bile kendi guard coverage'ına katmaz. Raw günlüklerin byte/hash kimlikleri kalıcı proof/status kaydında tutulur.",
    limitations: [
      "S365 otuz sekizinci production writer'ın dar kaynak entegrasyonudur. Yalnız exact endpoint-holder purge mutation'ı guarded'dır.",
      "S366 primary endpoint wake ve S367 linked reply-endpoint wake ayrı açık kapılardır; provenance revoke ve snapshot equality S365 lease'i dışında kalır.",
      "31 production writer shared S247 gate dışında kalır; provider authority ve whole-scheduler exclusion tamamlanmadı.",
      "İki static caller path wiring envanteridir; S365-specific supported-profile invocation/observation kanıtı yoktur.",
      "Default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP ve fiziksel RPi kabulü açık kalır.",
      "Global cargo fmt ve filtresiz frozen-S96 workspace GREEN değildir.",
      "physical/device operations=0 · RUNBOOK_EXECUTED_IN_S365=NO.",
    ],
  },
snippet sha256: 35348cfdbe04file sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s365_endpoint_holder_purge_writer_guard_integration -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S365-Endpoint-Holder-Purge-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9