WIP: Enforce native lifetime and staged construction authority #3

Draft
erikinkinen wants to merge 92 commits from feature/posix-compat into main
Owner

Summary and rationale

Enforce process-bound grant custody, staged construction, endpoint attenuation
and owned invocation. Operation 54 creates a child with one primary endpoint and
no root capabilities while retaining native backing. Queries use actual caller
attribution and mappings retain explicit execution permissions.

Native syscall entry captures a complete initialized resume prefix in stable
kernel-owned storage before dispatch. Refusal cannot execute the requested
operation or select stale resume state. Exception entry preserves alignment and
exact hardware-frame extents; host fixtures own their complete stack windows.

VSpace cleanup records completed withdrawals and consumes successful frame
releases. Process abort and destruction now retain their empty private CSpace
through final VSpace release. Distinct cleanup states prevent restart, wake,
ordinary record mutation and live IPC admission. Identity reuse follows the
successful final commit.

Tracking and scope

Signed head c55ee8d6f12957b43c5fd6aaf31c9865656b5ae6, branch feature/posix-compat.
Owning feature #1 and audit #2; bounded fixture issues #4/#5/#6/#16/#17 retain
their separate evidence. Dependent reviews:
Procd,
realm design,
Integration, and
manual.

Architecture, authority and failure behavior

Construction requires an actual Process endpoint; identities do not confer
authority. Grants retain unique custody, explicit rights, generation checks,
caller windows and rollback obligations. Omission of initial root capabilities
does not imply sealing or prohibit later authorized installation.

Retiring VSpaces refuse ordinary operations and new ownership. All access
withdrawals complete before backing release; completed effects are recorded.
Aborting and destroying processes remain distinct non-executable owners.
Final cleanup validates exact TCB generation and identities, then holds TCB,
CSpace, VSpace and allocator locks in that order. The final-release callback
cannot access TCB or CSpace tables. Failure retains the empty private CSpace;
success publishes its reuse and removes the TCB without another fallible step.
Earlier cleanup effects are retained, so this is not whole-process rollback.

Procd adoption, typed grant return, guarded bootstrap, mediator execution,
readiness, sealing, client I/O and fair retirement remain unfinished. Ordinary
mediator start gates remain closed. Complete semantic authority and source/frame
proof remain open; no generic syscall preservation mask is admitted.

Validation evidence

Original coherent realm source CI acceptance — 18 September 2026: Signed bd127228f62cd5320e87642e79aa7c1cd8212e24 passes CI 605 and CI 604. All four terminal logs are complete (738,372 bytes), with zero final warnings. This closes the original CI observation recorded above. Coherent catalog publication, actual consumer VMs and full guest-build acceptance remain separate open requirements.

Original coherent realm runtime prerequisites — 18 September 2026: Signed bd127228f62cd5320e87642e79aa7c1cd8212e24 selects original shared dependency revisions. Four strict default/all-feature development/release matrices pass 702/726 kernel units plus two external controls per configuration, retaining three pre-existing ignored tests. Thirteen native builds cover ordinary, tracing, owned-invocation, lifetime and coherent SMP configurations. Formatting, strict host/native Clippy, private rustdoc and Markdown pass with zero warnings. Direct Rust implementation bytes are unchanged. Original CI is under observation. Matching catalogs, source-bound consumer VMs, complete realm operation and both full guest builds remain required.

Explicit owned receiver admission acceptance — 18 September 2026: Signed 7034572037d1217b841c04dd9f45d5b254122a91. REGISTER binds explicit byte/capability request limits to the actual receiver generation and RECV binding. Zero dimensions, exact repetition and conflicting changes are checked without additional authority. Oversize is refused before native request allocation, transfer or invocation acceptance. Checked packet descriptors feed native preparation without a redundant vector. Seven new host controls and four strict 702/726-unit matrices pass, with both standalone controls, eight warning-free native builds, Clippy and rustdoc. Both actual 60-second VMs pass; ten new CPL3 admission checks precede every existing ownership, mapping, origin, lifetime and retirement oracle. Original build outputs reproduce packaged artifacts; all fifteen native component signatures are verified. Allocation controls observe no requests on oversized refusal and equal direct-native/packet submission allocation. Original CI 602/603 passes from four complete logs (738,406 bytes), without warnings. Actual owned Procd/Launchd service adoption, consumer VM execution, complete realm fairness/readiness/sealing and both full builds inside EriX remain open.

Caller-local grant relocation native acceptance — 18 September 2026: Signed Kernel 56d398e077c140c58e23f9cc2d8b79f19bc4cc2f implements register-only syscall 0x54 using the actual Running caller, both admitted local slots and native unique install/revocation binding owners. Rights, child generation, installation scope and revocation lineage remain unchanged. Seven new host controls and all four strict matrices pass: 695/719 units, both standalone controls, eight native builds, strict Clippy, rustdoc and formatting. Both actual native VMs pass under their original 60-second limits. The lifetime fixture executes thirty-nine new CPL3 relocation calls before its existing installation, revocation, terminal, inventory, queue and page checks; user instructions validate results and observers never replace them. Normal stripping reproduces both packaged Kernel artifacts, and all fifteen original selected component trees are verified clean. Original CI 600 and CI 601 pass from four complete logs (731,632 bytes), without warnings. This is native local custody evidence only: actual owned service adoption, consumer VM execution, complete realm fairness and both full builds inside EriX remain open.

Generation-bound native cleanup checkpoint — 18 September 2026: Signed revision bd81f0d8bbb3ce3d3e4d172667d1d12fbe155e6e is pushed. Native operations 56/57 match the original generation under the cleanup lock, preserve partial-disposal retries and retire selectors 8/35. Four strict host matrices pass 688/712 units plus standalone controls; all eight native builds and Clippy configurations pass. Both original 60-second VM scenarios pass. Nineteen actual CPL3 cleanup calls check malformed and retired selectors, stale identity, eligibility, repeated absence and preserved terminal evidence. All earlier lifetime oracles remain required; both packaged Kernels match their normally stripped original builds and all 15 component trees are clean. Formatting and Markdown checks pass. Original CI 598 and CI 599 passes; all four terminal logs are complete (725,508 bytes), without warnings. Runnable mediator bootstrap, fair retirement and both complete builds inside EriX remain separate open acceptance requirements.

Coordinated terminal observation checkpoint — 17 September 2026: Signed revision 5b20519a72e1cbc797eb32a7687e78ac4a8a7133 is pushed. Both actual native VM gates now pass. Nine CPL3 terminal calls check malformed nonconsumption, retired-selector rejection without a fabricated response, original exit/kill generations and canonical empty queue. Exact build artifacts and all native component checkouts are verified. Original CI 596/597 has complete warning-free successful logs. Typed mediator bootstrap, ordinary service-image adoption and both complete EriX builds inside EriX remain open.

Native terminal generation implementation — 17 September 2026: Signed revision 5b20519a72e1cbc797eb32a7687e78ac4a8a7133 is pushed. Native operation 55 captures the original TCB generation with exit/kill and preserves it across queued observation and ID reuse. Malformed waits cannot dequeue; selector 7 is retired. Four strict matrices pass with 686/710 units, host/native Clippy, rustdoc and eight native builds. The added CPL3 fixture checks every response word; corrected endpoint-refusal framing passes both native profiles. Matching native execution and coordinated consumer rollout remain in progress; runnable realm bootstrap and complete guest builds are not established. Original automatic CI is monitored without retries.

  • Four new process/CSpace ownership controls cover late release refusal,
    independent CSpace preservation, restart/wake/attribution refusal, retained
    terminal status, retry eligibility and empty-space admission. Four preceding
    VSpace controls cover withdrawal progress and exact managed-frame ownership.
  • Four strict development/release matrices pass 684 default and 708 all-feature
    units, both standalone controls and three existing ignored experiments.
    Formatting, private rustdoc, warning-denied host/native Clippy, eight native
    builds/binary-Clippy selections, Markdown and source review pass.
  • Invocation and lifetime candidates pass original feature selections, expected
    exits and 60-second limits using run-scenario.sh. Normal stripping reproduces
    both packaged Kernels. Final edits affect only three rustdoc locations; all
    non-rustdoc source lines agree, and final documentation/format checks pass.
    Native artifacts retain candidate source scope. Exact signed-wrapper and
    ordinary-image adoption are not established by these observations.
  • Original current-head push CI 594
    and PR CI 595 pass.
    All four complete logs are classified: 722,414 bytes, zero warnings and
    matching 684/708-unit results plus both standalone controls.
  • Preceding VSpace CI 592/593 passes with four complete logs: 719,366 bytes,
    zero warnings and 680/704-unit results. Capture CI 590/591 passes with four
    complete logs, 716,126 bytes and zero warnings. Earlier fixture cohorts and
    their original failures remain retained; unchanged failures were not retried.
  • Earlier signed diagnostics cover invocation, lifetime, UD2 and hardware double
    fault under their original source scopes. Integration CI 1651/1652 retains
    full-catalog failures, including the newly recorded timeout in
    Integration #61.
    Both complete guest builds remain open.

Review checklist

  • Explicit authority, original pinned dependencies and signed canonical commits.
  • Strict local checks, owned failure controls and native candidate regressions.
  • Component/manual contracts and original preceding CI classification.
  • Classify both original process-custody CI runs (594/595).
  • Resolve ordinary Integration regressions and complete source/frame proof.
  • Complete producer adoption, runnable realms and both full guest generations.

Process-start census correction — 19 September 2026: signed Kernel b762e19d0c16acd605d0f6123994a586cc6fcde1 requires a successful install-grant absence census before process start. An unavailable census returns the existing refusal and preserves the whole staged child and grant state. Hosted controls cover unavailable census, actual grant disposal and malformed-target precedence. Normal bootstrap initializes tracking before admission; production reachability of the injected condition or a native authority escape is not established. Kernel issue 18 uses the canonical bug report and records the original failure and bounded correction.

Four strict Kernel matrices pass 704/728 library tests and two standalone controls each; three existing ignored tests remain ignored. Formatting, strict host/native Clippy, private rustdoc and thirteen native build/Clippy profiles pass. Original Kernel CI 606 and 607 pass from all four complete hashed logs (739,843 bytes), without warnings.

Signed Integration b65183ddb93eb4396d4140a002c3727fec42ff87 selects that Kernel and the reconciled Docs 7b79f8d50ab1aa123c6c74c427f5aa1a50a1db9d, preserving all other catalog entries and all previously checked orchestration bytes. The matching guarded-preparation VM passes both unique markers and ordinary successful shell exit under unchanged 120-second hard and 45-second progress limits. All 106 artifacts, all 73 original component identities and the actual signed image are verified without warnings. Serial SHA256: a373a8ccd81ac3efbaa492cbf2e1f991f3cc34dcbf23a1435c1c48cd75cd5c1c (55,776 bytes); signed boot-image SHA256: 3b88d37183cf36dcbd5f1105cc0fd86e79aa4489d311300003f3f362c24bcd0a. This remains an unstarted staging fixture. Normal native execution does not exercise the hosted unavailable-census condition.

The prior complete 169-helper/four-matrix Integration evidence is verified against unchanged implementation bytes. Focused catalog/source checks pass, including 46 immutable-source and five tool-selection tests. An initial host fixture failure caused by disabling its deliberate Git replacement setup is retained; the established helper environment passes without altering product checks. The static census covers 3,127 authored code files below 1,000 lines, 74 manifests, 259 original Git pins, 170 direct missing_docs gates and 92 conventional crate roots; complete semantic authority and private-documentation closure remain open.

Original Integration CI 1679 and 1680 are queued. Earlier 1677/1678 remains queued and 1675/1676 is running. No unchanged workflow is rerun or cancelled. Complete mediator execution, full source/effect/frame proof, upstream Rust/LLVM rebuilding and both full EriX build generations inside EriX remain required. No whole acceptance item is newly completed.

Shared native terminal transition — 19 September 2026: signed Kernel 37d9c74d6d1209729c520a52a274c1646efe225c consolidates exit and kill event reservation, lifetime preflight, exact-generation commit and receiver/invocation retirement into one documented implementation. Existing public behavior and root exit cleanup remain unchanged. Terminal state and actual resource destruction stay separate. This completes the terminal-refactor prerequisite in child lifetime design #19; it introduces no lifetime binding, new opcode or additional authority.

Four strict Kernel matrices pass 704/728 library tests and both standalone controls, with three existing ignored tests unchanged. All thirteen native build/Clippy profiles, formatting, host/native Clippy and private rustdoc pass without warnings. Original Kernel CI 608 and 609 pass from all four complete hashed logs (739,870 bytes), without warnings.

Signed Integration a62d1381f56a01afc692112d9b427205eaeb6a2e updates both full Kernel selectors and five stale native diagnostic selectors while preserving source memberships and tested orchestration bytes. Both maintained native runners pass their original 60-second scenarios: lifetime revocation and owned invocation. Complete serial logs are retained (1,807 and 1,587 bytes), QEMU stderr is empty, and build warnings are absent. Packaged Kernel bytes match retained unstripped artifacts; all fifteen exact original component trees and signatures verify. Four current strict 320/321-test Integration matrices, native builds, formatting, host/native Clippy and private rustdoc pass. Seven focused source/native-policy checks pass; the complete 169-helper evidence remains hash-bound to unchanged implementation bytes.

Original Integration CI 1681 and 1682 are queued; older corrected 1675/1676 remains running. The static census covers 3,128 authored code files below 1,000 lines, 74 manifests, 259 original Git pins, 170 direct missing_docs gates and 92 conventional roots. Full semantic authority and private rustdoc closure remain open. Native child-lifetime custody, running mediator lifecycle, full frame proof, upstream Rust/LLVM rebuilding and both full EriX build generations inside EriX remain required. No whole phase acceptance item is added.

Native child lifetime checkpoint — 19 September 2026: signed Kernel 1428885e6d implements operation 58 using the actual Running caller, an exact Created child, independent Process authority and its real local install grant. It consumes only that grant, reserves cohort events before terminal effects, stops descendants before their supervisor and retains each bound child's cleanup duty and first failure independently of userspace survival. Return-boundary disposal closes outgoing accounting and respects current/active-interval protection. Fourteen new real-object controls cover refusals, rollback, nested stopping, a 257-descendant tree, late preflight failure, exact reuse and failed explicit abort after unlinking. Four strict 718/742-test configurations and both standalone controls pass; three existing ignored tests remain. Formatting, host/native Clippy, private rustdoc and thirteen native build/Clippy profiles pass without warnings. Original Kernel CI 610 and 611 pass from four complete hashed logs, 751,929 bytes, without warnings.

The matching maintained lifetime VM passes its original 60-second scenario with the additional ERIX_KERNEL:CHILD_LIFETIME_OK marker. A real CPL3 supervisor proves ChildPopulate refusal, malformed/generation refusal, actual Process-route binding, start and exit. An independent observer verifies both exact children, CSpaces and mappings absent before terminal-event consumption, then disposes the unbound supervisor. The runnable child has a faulting sentinel and intentionally does not execute. All sixteen additional mapped pages are disposed. The original owned-invocation VM also passes its unchanged scenario. Complete serial logs contain 1,838 and 1,587 bytes; QEMU stderr is empty and build warnings are absent. Packaged Kernel bytes match retained original unstripped artifacts and all fifteen selected component signatures verify. Lifetime serial SHA256 is 012b46541b7c1c89d954cdbebda855037152a4e39ffad20ad7bdcc8c7b5c2572.

This establishes explicit native supervision with actual caller-side CPL3 evidence. Executing-child, no-successor native idle, allocation/partial-effect failure coverage, Procd adoption, running-mediator failure, provider completion, complete source/effect/frame proof, upstream Rust/LLVM rebuilding and both full EriX-in-EriX generations remain open. Host idle controls do not establish native interrupt or wakeup behavior. No whole phase acceptance leaf is added.

Signed Docs 9ca5a5e811766a4506c0626cd58f8e228d0bacf8 updates the technical manual's native admission, preflight, stopping, partial cleanup and safe return/idle contracts. All 45 tests and the complete 2,425-page manual pass with zero final warnings. All 447,213 word boxes are in bounds and all three changed contract pages are visually reviewed. Shared API reference source is unchanged. Original Docs CI 981 and 982 pass from four complete hashed logs, 773,510 bytes. Both pass 45 tests and the complete 2,425-page manual. TeX pass warning counts are 36/1/0, with zero final-pass warnings; neither workflow was rerun or cancelled.

Signed Integration 581226ab5435dc66c6f93157606b6d4d83475b15 selects the coherent original Kernel/lib-capabi/lib-ipc graph and updated manual. All four current strict 320/321-test configurations, four native builds, fmt, strict host/native Clippy and private rustdoc pass without warnings. Source and updated native-policy checks pass; the full 169-helper evidence remains bound to unchanged orchestration bytes. The final post-VM changes select only the newer Docs revision and update roadmap status; native source catalog, scenario, runtime and orchestration bytes are unchanged. Original Integration CI 1683 and 1684 are queued.

Executing-child and terminal-reply checkpoint — 19 September 2026: signed Kernel dd9eace5 validates actual CPL3 nested-child execution and current-child ancestor termination. Synchronous control dispatch now ends its request borrow before effects and checks original caller identity, generation and terminal state before any response write. It keeps terminal completion in Kernel-owned result registers with zero reply length; ordinary native return switches away. A surviving caller retains its normal encoded response. Two focused actual-object regressions cover terminal request preservation and the surviving-caller reply. The dispatcher is split from the tracing/policy file. A supervisor binds and starts a child; that child binds a staged grandchild and kills its supervisor through its own explicit Process SEND route. Read-only witnesses require terminal caller storage to survive dispatch, then exact child/grandchild absence before the independent observer reads child-before-supervisor events. Both terminal payloads have immediate UD2 sentinels. An unrelated Created process retains its exact record, empty capability inventory and mappings until explicitly aborted. All four additional lifetimes and twenty-two mapped pages must be disposed for ERIX_KERNEL:CHILD_EXECUTION_OK.

Four strict Kernel configurations pass 720/744 library tests and both standalone controls; three existing ignored tests remain. Formatting, host/native Clippy, private rustdoc and thirteen native build/Clippy profiles pass without warnings. Signed Integration c14c5a61 requires the additional marker while preserving every earlier marker and the original 60-second limit. Both actual native scenarios pass, with 1,870/1,587 complete serial bytes, empty QEMU stderr and no build warnings. Packaged Kernel bytes equal retained original artifacts after normal stripping; all fifteen original source signatures verify. Lifetime serial SHA256 is 1b2f983239efca55c8bc0f6f08ee91cfdcd37d4d1f6951bbd740e4d9b45d1a2f. Four current Integration 320/321-test configurations, native builds, strict Clippy, formatting, private rustdoc and updated policy checks pass. Earlier 169-helper evidence is hash-verified against unchanged orchestration; it was not rerun for these scenario/catalog changes.

Signed Docs b4b01d87 documents the executing-child observations and remaining limits. All 45 tests, the full 2,425-page manual, 447,382 word bounds and visual review of the changed pages pass, with zero final warnings. The API reference source is unchanged.

This extends native executing-child evidence; it does not establish no-successor native idle/wake behavior, provider completion, Procd adoption or a complete service lifecycle. The original install-grant constructor still gives GRANT | MINT while binding needs only GRANT; move-only transfer preserves exact rights. Both diagnostic grants are consumed, but rights minimization remains an explicit audit follow-up. Full source/effect/frame proof, the Pagerd gate, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted.

Related implementation tracking: Kernel feature, Kernel WIP PR, Integration WIP PR, manual WIP PR, and phase completion.

Original Kernel CI 614 and 615 pass from four complete hashed logs, 753,462 bytes, without warnings. Original Docs CI 983 and 984 pass from four complete hashed logs, 773,542 bytes. Both pass all 45 tests and the complete 2,425-page final manual; reference-resolution warning counts are 36/1/0, with zero final warnings. Original Integration CI 1685/1686 remains queued at its second observation.

Older original Integration CI 1678 passes all 489 catalog scenarios and both native Kernel diagnostics, then fails the development COM1 editor probe after its physical counterpart passes. Rust and Markdown pass. All three complete logs total 13,384,697 bytes with no warnings; the outer input status does not establish cause. The canonical bug report is issue 67, with bug/ci/phase-6 metadata. Earlier editor and filesystem failures remain separate. No original workflow was cancelled or rerun.

Native cleanup without a userspace successor — 19 September 2026: signed Kernel 2cf5b34c adds a seventh actual CPL3 caller to the maintained lifetime diagnostic. After every earlier assertion, the observer binds/starts the final child and yields. The child kills that supervisor through its own explicit Process SEND route. Immediate faulting sentinels forbid either terminal payload from resuming. Ordinary native return closes CPU accounting, detaches current attribution, progresses reclamation and finds no runnable successor.

A diagnostic-only read-only witness then requires empty CPU accounting, only terminal retained records, no bound cleanup duties or event reservations, exact child identity/CSpace/mapping absence and both unconsumed child-before-supervisor events. All six final child pages retire; three original unbound terminal records remain for prior assertions. The witness neither performs cleanup nor selects a process nor installs an interrupt. ERIX_KERNEL:CHILD_IDLE_CLEANUP_OK precedes completion before HLT, so actual hardware halt/wakeup remains a separate gate.

Signed Integration 4d6f4fe8 requires the additional marker while preserving all earlier assertions and both 60-second scenario limits. Both actual native VMs pass: 1,905/1,587 serial bytes, empty QEMU stderr and no build warnings. Lifetime serial SHA256: 4a7cba61f75f4eeac47896d165b8dbcd217e4c75e2a81c8ae0f29957facb929c. Packaged Kernel images match retained build artifacts after normal stripping; all fifteen original component signatures verify. Four strict Kernel 720/744-test matrices, both standalone controls and thirteen native build/Clippy profiles pass; three existing ignored tests remain. Four strict Integration 320/321-test matrices, four native builds, formatting, host/native Clippy, private rustdoc and changed policies pass without warnings. Prior 169-helper evidence is hash-verified against unchanged orchestration. Post-VM changes only select updated Docs in full catalogs and update roadmap status.

Signed Docs 69466a64 documents the pre-halt boundary and consolidates stale status paragraphs. All 45 tests, the complete 2,425-page manual, 447,534 word bounds and visual review of pages 562–564 pass with zero final warnings. API reference source remains unchanged. The static audit passes 3,140 authored code files below 1,000 lines, 74 manifests, 259 full Git selections, 171 direct missing_docs gates and 92 conventional crate roots; semantic authority and complete private-rustdoc closure remain open.

Original Kernel CI 616 and 617 pass from four complete hashed logs, 753,458 bytes, with no warnings. Original Docs CI 985 and 986 also pass: four complete hashed logs, 773,510 bytes; both pass 45 tests and the final 2,425-page manual. Reference-resolution warning counts are 36/1/0 with zero final warnings. Original Integration CI 1687/1688 remains queued at its first observation.

Older original Integration CI 1677 is now terminal failure: all 489 catalog cases, both native diagnostics, development physical/COM1 editor and release physical editor pass before release COM1 fails. Rust and Markdown pass. Three complete logs total 13,385,246 bytes without warnings; bug 37 retains this evidence. Companion 1678's earlier development COM1 failure remains separate in bug 67; a common cause is unproven. No original workflow was cancelled or rerun.

Further native failure controls, grant-rights minimization, terminal accounting, Procd adoption and complete service lifecycle acceptance remain open. Existing install-grant creation still supplies GRANT | MINT while binding needs GRANT, so minimum authority is not claimed. Full source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted.

Related: Kernel design, Kernel WIP PR, Integration WIP PR, manual WIP PR, and phase completion.

Native terminal-event allocation refusal — 19 September 2026: signed Kernel ba03995f extends the actual executing-child sequence with one deliberately refused heap allocation. Separate diagnostic preparation captures the original supervisor, child, staged grandchild and independent process records/capability inventories, then gives an empty event queue one-event capacity. No queued event or existing reservation is discarded. The first terminal-event reservation succeeds; the second arms exactly one null return from the real Kernel allocator. Ordinary collection growth and Process dispatch return RESOURCE_EXHAUSTED before any terminal effect.

Read-only witnesses require complete reservation rollback, an empty event queue, unchanged exact records and capabilities, and preserved code/stack/message mapping ranges. Actual CPL3 instructions validate the refusal reply before the next ordinary ancestor kill succeeds with allocation available. Every earlier terminal, descendant-disposal, independent-process and no-successor idle assertion remains required. ERIX_KERNEL:TERMINAL_EVENT_RESERVATION_OK requires one consumed allocator refusal and no remaining armed fault. Fault controls are absent from ordinary images; this covers injected allocation failure, not spontaneous heap exhaustion or independent resource-release failure. No witness supplies a syscall result, cleanup effect or scheduler choice.

Signed Integration cf5b2f5f requires the new marker without changing either 60-second limit. Both maintained native VMs pass: 1,948/1,587 serial bytes, empty QEMU stderr and no build warnings. Lifetime serial SHA256 is d485019082175f769ecc2d406d88c6cc84a7df323605027663f5bcc79ca03ad9. Packaged Kernel bytes match retained original artifacts after normal stripping, and all fifteen original source signatures verify. Post-VM changes only select updated Docs in full catalogs and consolidate roadmap status.

Four strict Kernel 720/744-test matrices, both standalone controls and thirteen native build/Clippy profiles pass; three existing ignored tests remain. Four strict Integration 320/321-test matrices, four native builds, formatting, host/native Clippy, private rustdoc and updated policies pass without warnings. Prior 169-helper evidence is hash-verified against unchanged orchestration. Signed Docs 62ba2ffa passes 45 tests, the complete 2,425-page manual, all 447,688 word bounds and actual visual review of pages 562–565, with zero final warnings; API reference source remains unchanged. The static audit passes 3,142 authored code files below 1,000 lines, 74 manifests, 259 full Git pins, 171 direct missing_docs gates and 92 conventional roots. Complete semantic authority and private-rustdoc closure remain open.

Original Kernel CI 618 and 619 pass from four complete hashed logs, 753,434 bytes, with zero warnings. Original Docs CI 987 and 988 pass from four complete hashed logs, 773,506 bytes: both pass 45 tests and the final 2,425-page manual, with reference-resolution warning counts 36/1/0 and zero final warnings. Original Integration CI 1689/1690 is queued. Earlier filesystem, directory, editor and full-frame regressions remain unresolved; original workflows were not cancelled or rerun.

The terminal-accounting audit confirms that ordinary Procd terminal handling queries original TCB counters after receiving its event, while automatic bound-child reclamation removes that TCB. Its separate private-mediator branch does not take the same query path; adoption must state which lifetimes require retained metrics and preserve their original generation without fabricated zero/wall-clock values. Independent release-failure coverage, grant-rights minimization, accounting, Procd adoption and full mediator lifecycle remain open. Full source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted.

Related: Kernel design, Kernel WIP PR, Integration WIP PR, manual WIP PR, and phase completion.

Independent native child release recovery — 19 September 2026: signed Kernel 82d88b60 extends actual supervisor-exit coverage with two deliberate refusals at the original staged child's final VSpace-release callback, after capability disposal and unlinking. The first error is KernelHeapExhausted, the second CspaceSlotMissing. Read-only observations around two ordinary CPL3 observer yields require the original full record, generation, abort custody and first error retained, an empty original CSpace and retained mapped backing. The independent running child must already be absent from native TCB, CSpace and VSpace directories. The selected child's earlier directory position ensures its failure preceded that independent disposal.

The third callback must perform normal VSpace release before all original terminal-event, generation and resource-absence checks pass. ERIX_KERNEL:CHILD_RELEASE_ISOLATION_OK requires exactly two refusals and complete eventual disposal. Fault control uses only atomics at the locked callback boundary and exists only in the isolated native diagnostic. No witness performs cleanup, supplies a successful release/syscall result or chooses a scheduler target. This establishes injected callback-refusal coverage, not an observed hardware or allocator malfunction. All earlier nested-child, allocation-refusal and no-successor pre-halt assertions remain required.

Signed Integration 294a467a requires the added marker with both original 60-second limits unchanged. Both maintained native VMs pass: 1,988/1,587 serial bytes, empty QEMU stderr and no build warnings. Lifetime serial SHA256 is 606fff037be022c876220d8e8f329c9046ffea5dcdf80831026649aedfbe0b08. Packaged Kernel bytes match retained original unstripped artifacts after normal stripping, and all fifteen original component signatures verify. Post-VM changes only select the updated manual source in full catalogs and reconcile roadmap status.

Four strict Kernel 720/744-test configurations, both standalone controls and thirteen native build/Clippy profiles pass; three existing ignored tests remain. Four strict Integration 320/321-test configurations, four native builds, formatting, host/native Clippy, private rustdoc and changed policies pass without warnings. Prior 169-helper evidence is hash-verified against unchanged orchestration. Signed Docs 2a0ccc1a passes 45 tests, the complete 2,427-page manual, all 447,789 word bounds and actual visual review of pages 562–565 with zero final warnings. API reference source is unchanged. Static audit passes 3,143 authored code files below 1,000 lines, 74 manifests, 259 original Git pins, 171 direct missing_docs gates and 92 conventional roots; complete semantic authority/private-rustdoc closure remains open.

Original Kernel CI 620/621 and Docs CI 989/990 pass from four complete hashed logs each (753,438/773,910 bytes), with zero final warnings. Current Integration originals are observed after publication. Earlier filesystem, directory, editor and full-frame regressions remain unresolved, with original evidence retained; no workflow is cancelled or retried unchanged.

The grant-rights audit confirms actual Procd derivation callers and exact GRANT | MINT receipt checks in Procd and Launchd. Grant authority minimization must coordinate those consumers and distinguish the grant's own rights from its installation ceiling. Original generation-bound terminal accounting, Procd adoption, provider completion, hardware halt/wakeup and complete mediator lifecycle remain open. Full source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted.

Related: Kernel design, Kernel WIP PR, Integration WIP PR, manual WIP PR, and phase completion.

Explicit grant implementation progress — 20 September 2026:

Kernel commit 4a5333f760e258ebca23047a362d1cff4fded0c0 is signed and pushed. Creation preserves exact own grant rights, including zero. Derivation requires actual MINT and subsets of both own rights and installation scope. Zero-right custody still blocks process start until disposed. Four strict 724/748-unit configurations, both standalone controls and thirteen native build/Clippy profiles pass without warnings; three existing ignores remain. Original CI 622/623 passes from four complete hashed logs, 756,715 bytes, zero warnings. The new actual CPL3 derivation/disposal controls and GRANT-only relocation/installation compile; their matching VM execution remains pending.

The consumer audit also identified Loaderd and Deviced receipt checks. Procd's move-only handoff cannot attenuate the original delegating grant: it now derives a GRANT-only final receipt into the already-disposed VSpace receipt slot and drops the source before returning that receipt. Nonderiving materialization and rootless mediator paths request GRANT directly. Partial failure retains original-generation rollback and all remaining local custody. Procd, Launchd, Rootd, Loaderd and Deviced pass their default unit suites; their full strict matrices and coherent guest validation remain open. Deviced bug 4 records a separately observed quarantine test race and its test-only serialization correction.

This is partial implementation evidence, not completed lifecycle or self-hosting acceptance. The canonical checklist remains 15 of 460 leaves, 3.48% weighted. Full terminal accounting, provider completion, consumer lifecycle, source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both complete EriX-in-EriX generations remain required.

Verified grant-rights checkpoint — 20 September 2026:

Both maintained isolated native scenarios pass on their first attempts under the unchanged 60-second scenario limits, with no build warnings and empty QEMU stderr. Lifetime now exercises 27 ordinary CPL3 grant-right controls and requires INSTALL_GRANT_RIGHTS_OK before its existing cleanup assertions. Its 2,025-byte serial stream has SHA256 6c685f1ceaf9080bf0bec628a4fac512bf9049d0fbcfe2b3737666adf414ca3a; owned invocation retains 1,587 bytes. Normal stripping exactly matches both packaged kernels to retained original artifacts. All fifteen selected original source signatures and clean trees verify. These minimal native scenarios establish neither full service-image acceptance nor a guest build.

All thirteen shared libraries pass their strict matrices and original CI. The five direct receipt consumers pass four strict host/native configurations; original CI passes for procd 292/293, launchd 145/146, rootd 1037/1038, loaderd 99/100, deviced 206/207. Rootd baseline regression and Deviced quarantine fixture race are corrected with retained original failures and successful corrected-source CI. Manual/API updates and remaining full-catalog alignment are in progress.

Integration bug 68 records five original CI failures (1683/1684, 1685/1686 and 1688), each with 127 manifest/catalog revision mismatches before full VM execution. All fifteen complete logs are retained, 1,512,137 bytes with no warning candidates. Individual-crate and minimal-native validation did not prove full catalog coherence. Remaining dependents are being aligned and validated bottom-up; equality and immutable-source checks are unchanged. Earlier 1681/1682 separately reached 479/489 and 487/489 VM passes, with ten and two scenario timeouts at the original 120-second bounds. Those filesystem failures require separate analysis.

Canonical acceptance remains 15 of 460 leaves, 3.48% weighted. Complete lifecycle and terminal accounting, provider completion, source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain required.

Verified native terminal accounting — 21 September 2026: Kernel a9bdf6163813d378e0b4a164bceb839e24fbb6b7 is signed/pushed. Terminal preflight reserves final scalar CPU evidence independently of TCB/CSpace/VSpace reclamation; exact queries preserve final results or explicit errors. Repeat observations belong to the actual original observer until exact acknowledgement, and observer death releases that claim. Independent authorized observers can progress. Selector 55 is retired; checked selectors 59/60 have no destructive fallback.

Four strict 736/760-unit configurations, both standalone controls and thirteen native build/Clippy profiles pass without warnings. Host controls include nonzero final counters after actual reclamation and ID reuse, original observer death, pending-final-charge destruction refusal, malformed requests, wrong callers, immutable errors and lost-acknowledgement reply retry. Original Kernel CI 624/625 and corrected 626/627 all pass from eight complete hashed logs (1,532,848 bytes), zero warnings.

Both maintained lifetime and owned-invocation VMs pass under the unchanged 60-second scenario limits and standard watchdogs, with no build warnings and empty QEMU stderr. Actual guest instructions check repeat observations and CPU queries, exact acknowledgement and absent-acknowledgement retry; executing children require nonzero user and kernel counters after native reclamation. Lifetime retains 2,025 serial bytes (SHA256 921edf5eadfdff61f2d85a63158555666e77e57a1e8aa4254ac30dcd216f8cf9); owned invocation retains 1,587 (SHA256 404bc4ecad5074349d9ba45d1caf5439aebe849d344b726e5dec2ee2b9c4d907). Normal stripping exactly matches both packaged kernels to retained original artifacts; all fifteen selected original signatures and clean checkouts verify.

Kernel regression 21 retains the first VM's final page-census failure. The corrected layout declares and allocates all six request pages and derives the independent census from that declaration. No unchanged retry or deadline relaxation occurred.

Integration fcd7b4a9608f629a12de78c53da5c3615d906b46 is signed/pushed with the verified isolated catalog. Twenty dependency and 46 immutable-source tests, native policies, Markdown and source checks pass. The unchanged orchestration crate, embedded fixture and original dependency closure retain verified four 320/321-unit and native/Clippy/rustdoc configurations. The full service catalogs retain their separately coordinated revisions; original Integration CI remains under observation.

Procd and Rootd consumer adoption, ordinary and mediator metric retention/consumer loss, manual updates, full service/profiler scenarios, complete authority/source/frame audits and full regression acceptance remain open under Kernel design 20. Canonical acceptance remains 3.48% weighted; 15 of 460 items. Native upstream Rust/LLVM/runtime rebuilding and both full EriX guest build generations remain mandatory and unproven.

Owned address-space preparation — 22 September 2026: Kernel issue 22 records the private hardware-root construction, exact authority, activation, invalidation, failure custody and retirement contract before implementation. Signed Kernel 5e818e8b6d1d, in Kernel PR 3, adds the design contract and an independent mapping-bit provenance regression. The current shared hierarchy and production permission encoder remain unchanged. An isolated rewrite produced the same 17 instructions and 63 bytes, so it was rejected as an optimization.

Four strict Kernel matrices pass 737 default / 761 all-feature tests in development and release, retaining the same three existing ignored cases. Formatting, host/native Clippy, all 13 native builds, private rustdoc and Markdown pass without warnings. Original CI 628/629 is running. No hardware-owned root, concurrent user execution, elapsed-time speedup or native isolation closure is claimed. The profiler and unchanged startup timing gates remain open in Integration 3 and Integration 72. The phase checklist stays at 15/460 accepted leaves, weighted 3.48%; external Rust/LLVM rebuilding inside EriX and both full guest-build generations remain mandatory and unproven.

Native table-custody checkpoint — 22 September 2026: signed Kernel 2e744897de7c, in Kernel PR 3, gives unpublished table allocations one cleanup owner through translation and initialization. Empty-table installation and huge splits transfer custody at parent publication. The raw allocation-return helper and duplicate huge-split initialization are removed. Parent/leaf invalidation, interrupt masking, permission templates and current shared-hierarchy lifetime remain intact. Five host controls cover allocation/translation failure, invalid geometry, abandoned preparation and publication. Four strict configurations pass 742 default / 766 all-feature tests, retaining three existing ignored cases; formatting, host/native Clippy, private rustdoc and thirteen native builds pass without warnings. Original Kernel CI 630/631 passes from four complete logs, 771,607 bytes and zero warnings.

Signed Integration fe63adde8ff9, in Integration PR 12, selects that exact Kernel in all three catalogs. Every other selection and Kernel dependency manifest is unchanged. All 172 maintained helper commands pass without warnings; unchanged Rust inputs retain their preceding strict matrices. Three original-source native executions pass lifetime revocation, owned invocation and mapping checks with unchanged 60-second guest limits, warning-free builds and empty QEMU stderr. Mapping isolation and sparse mappings have identical runtime settings; both maintained marker contracts pass on the retained mapping capture. All fifteen selected component signatures verify, and each packaged Kernel image equals its retained artifact after normal stripping. These results cover the current shared hierarchy, not independent hardware roots.

The Kernel evidence update and Integration evidence update change documentation only, with executable inputs proven unchanged. Their original Kernel CI 632/633 is running and Integration 1715/1716 is queued. Older full Integration CI 1701/1702 at b06dfad00202765491a64552dde29eaca1c24838 passes from six complete logs, 26,962,712 bytes and zero warnings, including both runs' ext4 quota, ext4 links and FAT32 directory-metadata cases. Their earlier timing failures remain retained with unestablished causes; 18, 20 and 70 have exact follow-up observations. No workflow was rerun or cancelled.

All 3,176 authored code files remain below 1,000 lines. The next work in Kernel 22 must resolve the supervisor baseline, bootstrap/saved-frame overlays and inactive-space population before adding root ownership, residency and retirement. Startup timing acceptance, complete authority cleanup and the profiler's measured speedup remain open. The phase checklist stays at 15/460 accepted leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX, then completing both full EriX guest-build generations, remains mandatory and unproven.

Ordinary mapping-domain checkpoint — 22 September 2026: resolved admission report records the original host failure and bounded fix. The fixture regression retains all three distinct failed attempts and the verified layout correction. Kernel now validates the complete ordinary user page before backing or mapping changes, with both control paths covered. Four strict 745/769-test configurations, thirteen native builds, Clippy and private rustdoc pass without warnings. Three exact-source native executions pass lifetime, invocation and mapping; four maintained scenario contracts are checked, with sparse and isolation sharing their identical runtime capture. All fifteen selected native signatures and packaged Kernel identities verify.

Integration pins the exact Kernel in all three catalogs, preserves every other selection and passes all 172 helpers. The unchanged ordinary exec-successor VM passes against the complete source graph, preserving its 120-second guest deadline, with no image warnings or QEMU stderr. Docs documents the domain and bootstrap distinction; all 45 tests and 2,431 pages pass, with 450,473 word bounds checked and no final warnings. The earlier Kernel CI 632/633 passes from four complete logs and zero warnings; current original CI remains under observation.

Bootstrap provenance, independent hardware roots, complete authority cleanup and measured startup improvement remain open. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven.

Verified documentation and CI follow-up — 22 September 2026: Kernel documentation and Integration documentation record the accepted native mapping, three-grant cleanup and ordinary exec-successor evidence. Every executable file is identical to the tested implementation; Markdown and diff checks pass. All three failed fixture attempts remain in report 24, separately from the fixed admission defect. The complete manual passes 45 tests and 2,431 pages with no final warnings. The final static inventory covers 3,180 authored code files below 1,000 lines, 259 exact Git pins and the existing direct missing_docs declarations; it does not establish full semantic authority closure.

Original full Integration 1703/1704, source dff878dd3545c4751b3c05d37b2bdd5e21cce548, pass from six complete logs totalling 26,964,178 bytes and zero warnings. Their ext4 quota/links and FAT32 directory scenarios explicitly pass. Earlier timing failures remain retained and their causes are unestablished. Kernel 634/635 report cancelled, with runner context-cancellation messages and four complete logs. No cancellation request was issued during this work; the workflow declares no cancellation policy, and the initiating cause remains unestablished. These runs receive no CI acceptance credit. Current Kernel 636/637 and Docs 1007/1008 pass. Each pair has four complete logs: Kernel totals 773,796 bytes with zero warnings, and Docs totals 774,706 bytes with zero final warnings. Both manual builds retain their initial 35/1/0 LaTeX warning sequence through convergence. Integration 1717–1720 remains queued.

The phase checklist remains at 15/460 accepted leaves, weighted 3.48%. Private hardware roots, complete authority cleanup, measured startup improvement, native external Rust/LLVM/runtime rebuilding and both complete EriX guest-build generations remain open.

VSpace MAP authority checkpoint — 22 September 2026: the resolved bug report records three original failing host controls and the verified correction in Kernel. Current local MAP rights now govern map, protection and unmap requests. Empty and MANAGE-only aliases are denied; MAP-only access remains valid. Four strict 750/774-test configurations, thirteen native builds, strict Clippy and private rustdoc pass without warnings.

The Integration catalog selects the exact signed Kernel in all three catalogs and passes all 172 helpers. Actual CPL3 calls preserve the authorized RW/NX page across restricted-alias refusals and drop all five temporary grants. Three native executions cover all four maintained lifetime/invocation/mapping/sparse contracts with original limits, exact signed sources and retained packaged artifacts. The original exec-successor service VM passes against all 73 components with its unchanged 120-second guest limit. All image warnings and QEMU stderr remain absent. Manual validation passes 45 tests, 2,431 pages and 450,550 checked word bounds, with both changed pages reviewed and zero final warnings.

The static audit covers 3,181 authored code files below 1,000 lines, 259 exact Git dependency pins and existing direct missing_docs gates. It does not close semantic authority review. Earlier full Integration runs 1705/1706 are running; 1707–1720 remain queued at the latest original observations. No workflow was rerun or cancelled. Publication CI: Kernel 638/639 and Docs 1009/1010 pass. Each pair has four complete logs: Kernel totals 777,250 bytes with zero warnings, and Docs totals 774,674 bytes with zero final warnings or overflow. The manual retains its initial 35/1/0 LaTeX warning sequence through convergence. Integration 1721/1722 remains queued; it receives no CI acceptance credit.

Canonical acceptance remains 15/460 leaves, weighted 3.48%. Independent hardware roots, complete authority cleanup and measured startup improvement remain open. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX, then completing both full EriX guest-build generations, remains mandatory and unproven.

Frame access checkpoint — 22 September 2026: the resolved bug report records three original failing host controls and the verified correction in Kernel. Explicit READ now governs admission and hardware activation. No-access mappings retain backing with USER/WRITE clear and NX set; write-only and execute-only requests are rejected without adding READ. Existing protection-transition rules remain in force. Four strict 757/781-test configurations, thirteen native builds, strict Clippy and private rustdoc pass without warnings.

The Integration catalog selects the signed Kernel in all three catalogs and passes 172 helpers. Twenty-four actual CPL3 calls preserve earlier witnesses and cover no-access protection, write-only refusal, MAP-only frame derivation, denied READ and unmap after both frame grants are dropped. Three native executions pass four maintained lifetime/invocation/mapping/sparse contracts with original limits, exact signatures and retained packaged artifacts. The ordinary exec-successor VM passes against all 73 components with its unchanged 120-second guest limit. Builds emit no warnings and QEMU stderr is empty. Manual validation passes 45 tests, 2,433 pages and 450,702 checked word bounds, with the changed page reviewed and zero final warnings.

Static review covers 3,182 authored code files below 1,000 lines, 259 exact Git pins and existing direct missing_docs gates. This does not close semantic authority review. Earlier full Integration runs 1705/1706 remain running and 1707–1722 remain queued at their latest original observations. No workflow was rerun or cancelled. Publication CI: Kernel 640/641 and Docs 1011/1012 pass. Each pair has four complete logs: Kernel totals 782,838 bytes with zero warnings, and Docs totals 775,110 bytes with zero final warnings or overflow. The manual retains its initial 35/1/0 LaTeX warning sequence through convergence. Integration 1723/1724 remains queued; it receives no CI acceptance credit.

Canonical acceptance remains 15/460 leaves, weighted 3.48%. Authorized protection restoration, independent hardware roots, complete authority cleanup and measured startup improvement remain open. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven.

Ordinary protection contract — 22 September 2026: the runtime memory design now specifies in-place no-access/R/RW/RX changes using current VSpace MAP and exact selected frame authority, including same-backing aliases and complete backing checks. Preserve W^X, explicit READ, object kind, reference custody, error ordering and all native witnesses. Kernel-owned anonymous loader materialization and Process endpoint target scope retain separate audit obligations. The implementation and exact-source VM evidence are pending. This earns no canonical acceptance credit; external toolchain rebuilding and both complete EriX guest-build generations remain mandatory.

Current-grant protection checkpoint — 22 September 2026: the resolved device-backing report distinguishes its original metadata-authority inconsistency from the separate restoration feature gaps. The Kernel implementation permits representable no-access/R/RW/RX changes through current exact-backing grants and aliases while active or inactive. It removes historical access ceilings and original-slot equality while preserving current VSpace MAP, selected frame rights, kind/range/identity checks, W^X, explicit READ, backing custody and failure ordering. Four strict 766/790-test configurations, thirteen native builds, strict Clippy and private rustdoc pass without warnings.

The coordinated catalog selects that original signed Kernel in all three catalogs and passes all 172 helpers. Fifteen managed-frame calls and twenty-nine device/domain calls pass inside the original lifetime window and deadline. Actual user instructions write, execute, rewrite and execute managed RAM, check narrow alias authority and final disposal, while a reused device slot cannot authorize unrelated backing. Every prior marker remains required. Three native executions pass four original contracts with complete signed source and artifact checks; the ordinary exec-successor VM passes the full 73-component graph and original 120-second limit. Image warnings and QEMU stderr are absent. Manual validation passes 45 tests, 2,433 pages and 450,954 word bounds; both changed pages are reviewed with no final warnings or overflow.

Static review covers 3,184 authored code files below 1,000 lines, 75 manifests, 259 exact Git pins and 174 direct missing_docs gates. Full semantic authority review remains open. Older Integration CI 1705/1706 has eleven real ext4 timeouts across eight scenarios, with complete retained logs and no accepted rerun. Their root cause and correction remain unresolved. Publication CI: Kernel 642/643 and Docs 1013/1014 pass. Each pair has four complete original logs: Kernel totals 790,650 bytes with 766/790 tests and zero warning candidates; Docs totals 775,150 bytes with 45 tests, 2,433 pages and zero final warnings or overflow. Retain the original 35/1/0 LaTeX warning convergence. Integration 1725/1726 remains queued and receives no completed CI acceptance. The separate older ext4 deadline report remains open.

Canonical acceptance remains 15/460 leaves, weighted 3.48%. Complete POSIX protection support, Process endpoint scope, independent hardware roots, complete authority cleanup and measured startup improvement remain open. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven.

VSpace ownership preparation — 22 September 2026:

Live VSpace records and production mapping tables are non-cloneable. Test observations contain descriptive metadata, synthetic selectors use independent tables, and leaf-encoder checks borrow live mappings under the record lock. Selectors accept only the mapping table they consume. Current grants, backing custody, first-match ordering, reference scans and hint visit-count controls remain intact; the rights control now uses actual activation/deactivation. The former whole-record snapshot helpers are removed.

Four strict Kernel configurations pass 766/790 tests with three existing ignored cases; thirteen native builds and binary Clippy profiles, formatting and host/native private rustdoc pass without warnings. All 172 Integration helpers pass. Three exact-source native executions pass the four maintained mapping, sparse, invocation and lifetime contracts. The ordinary exec-successor VM passes against all 73 components. Original 60/120-second guest limits, existing markers, exact component signatures and retained packaged artifacts remain required; image warnings and QEMU stderr are absent. No startup speedup or independent hardware-root acceptance is inferred.

The Kernel implementation and Integration source selection are published with Kernel validation evidence and Integration validation evidence. Continue under owned-root design 22, Kernel PR 3 and Integration PR 12. Publication CI: Kernel 644/645 pass with four complete original logs (790,604 bytes), 766/790 tests and zero warning candidates. Integration 1727/1728 remains queued and has no completed acceptance; earlier ext4 deadlines remain tracked in Integration report 73. Complete authority cleanup, external toolchain rebuilding within EriX and both full guest build generations remain open. Canonical acceptance remains 15/460 leaves (3.48% weighted).

Native occupancy diagnostic regression — 22 September 2026: the original failure is retained with exact signed source and packaged-ELF identity. The fixture maps a Kernel heap VA that the correct ordinary-domain guard rejects on the native upper-half heap. Host allocator addresses did not expose the mismatch. The correction must preserve the guard, 64-page/alias/hole/byte/cleanup controls and both maintained VM deadlines. The report was subsequently resolved by the verified recovery below. No canonical acceptance leaf closes.

Managed-frame diagnostic recovery — 22 September 2026: Kernel report 28 is resolved by the signed correction and coordinated catalog. The diagnostic admits an initially empty lower-half window while preserving the ordinary-domain guard and all 64-page, alias, hole, physical-byte and cleanup controls. The unnecessary heap allocation and raw-pointer cleanup state are removed, with expanded inline rustdoc.

Four strict 766/790-test configurations, fourteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. All 172 Integration helpers pass. Both maintained allocator scenarios pass independently with their original 60/120-second deadlines and complete markers; exact signed source and retained packaged-ELF checks pass. The ordinary exec-successor VM also passes against all 73 components. Image warnings and QEMU stderr are absent. The original failed native image remains retained; no unchanged rerun is used as the correction.

Static review still covers 3,186 code files below 1,000 lines, 75 manifests, 259 exact Git pins, 174 direct missing_docs gates and 93 conventional crate roots. Full semantic authority and inline-documentation review remain open. Older original Integration 1707/1708 both pass all 489 VM scenarios, Rust 320/321 and Markdown; six complete logs total 26,966,330 bytes with zero warning candidates. Publication CI: Kernel 646/647 pass with four complete original logs (790,634 bytes), 766/790 tests and zero warning candidates. Integration 1729/1730 remains queued and has no completed acceptance; earlier ext4 CI deadline failures remain unresolved. The separate supervisor physical-access window and independent hardware roots remain implementation work. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven.

Supervisor physical-access window — 22 September 2026: the signed Kernel implementation shares one restoring supervisor scratch transaction between frame scrubbing and physical mapping-byte copies. Caller backing custody and page-table/interrupt custody remain live through byte access, exact leaf restoration and local invalidation. Scratch is released afterward; read aliases clear the write bit and all temporary aliases clear user access and set NX. The unreachable raw-VA fallback is removed, and complete preflight rejects missing or ambiguous backing metadata before any range effects. No new userspace operation or capability grant is introduced. This is preparatory work for owned address spaces; independent roots and their switching/reclamation proof remain open.

Eight added host controls cover geometry, permissions, preparation and partial-effect failures, restoration/release ordering, and malformed later-page metadata without partial reads or writes. Four strict host configurations pass 774/798 tests with three existing ignored cases. Fourteen native builds and binary Clippy profiles, formatting and host/native private rustdoc pass without warnings. The coordinated Integration catalog passes all 172 maintained helpers; its exact marker expectation is updated alongside the strengthened scenarios. Unchanged orchestration and profiler sources retain strict validation.

Six native executions satisfy seven maintained scenario contracts. Both allocator scenarios require the new same-VA/different-backing byte-and-leaf proof after complete cleanup, retaining every preceding marker and the original 60/120-second deadlines. Three further executions satisfy mapping, sparse, owned-invocation and lifetime contracts. The ordinary exec-successor VM passes against all 73 components. Exact original signed source, retained artifacts and packaged Kernel matches are verified; no image warnings or QEMU stderr were observed. These checks establish no performance improvement. The technical manual documents backing and scratch custody; all 45 document tests and the complete manual build pass without final warnings.

Static checks cover 3,190 authored code files below 1,000 lines, 75 manifests, 259 exact Git pins, 174 direct missing_docs gates and 93 conventional crate roots. Complete semantic authority and inline-documentation review remain open. Publication CI: Kernel 648/649 and Docs 1015/1016 pass. Eight complete original logs (1,572,758 bytes) confirm Kernel 774/798 tests, 45 document tests and the 2,433-page manual. Initial TeX reference warnings resolve through normal multipass generation; final passes are clean. Integration 1731/1732 remains queued and has no completed acceptance. Earlier ext4 CI deadline failures remain unresolved. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and its runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven.

Owned supervisor baseline — 22 September 2026: the signed Kernel implementation captures and verifies independently allocated supervisor tables before root VSpace creation, Rootd preparation and RAM seeding. Each copied page has one typed aligned Box owner before a parent references it; the recursive entry selects the copied root. Source boot/AP tables and mapped backing retain separate custody. User leaves, malformed geometry and invalid recursive identity are refused. Leaf permissions, cache policy and huge-page sizes are preserved; newly owned table branches use WriteBack and clear USER. Failed construction releases all unpublished allocations. This replaces a raw-pointer table-storage owner with shared typed storage and adds no unsafe Send/Sync implementation or userspace operation.

Eleven new host controls cover independent storage, allocation/read failures, invalid translation geometry, user leaves, recursive and huge-page errors, source-permission drift, retained owner links and table counts beyond the unrelated 64-page batch size. Four strict host configurations pass 785/809 tests with three existing ignored cases; fourteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. The coordinated catalog passes all 172 maintained helpers. Both allocator scenarios require successful baseline capture before their original marker sequence, with capability grants and original 60/120-second deadlines preserved.

Six native executions satisfy seven maintained contracts: both allocator scenarios, mapping and sparse checks sharing identical runtime settings, owned invocation, lifetime revocation and ordinary exec-successor across all 73 components. Exact signed source and retained packaged artifacts are verified; no image warnings or QEMU stderr were observed. The technical manual specifies the custody boundary and passes 45 tests, complete 2,433-page generation, all 451,287 word bounds and changed-page visual review without final warnings or overflow. Static audits cover 3,194 authored code files below 1,000 lines, 75 manifests, 259 exact Git pins, 174 direct missing_docs gates and 93 conventional crate roots.

Publication CI: original Kernel push 650 passes and PR 651 retains the host fixture failure. Regression 29 is resolved by signed Kernel 12184850cd73: a deterministic private predecessor reproduces the original defect, and the corrected fixture passes the complete local matrix and push CI 652/PR CI 653. Four complete corrected CI logs total 807,886 bytes with zero warning candidates. Only host tests and roadmap change; validated production sources and all catalog selections remain unchanged. Docs 1017/1018 pass with four complete logs (775,122 bytes), 45 tests and the 2,433-page manual. Initial TeX reference warnings resolve before clean final passes. Integration 1733/1734 remains queued at the latest retained observation and has no completed acceptance. Earlier ext4 CI deadline failures remain unresolved. The retained baseline is a construction prerequisite for owned address spaces. Per-VSpace population, CR3 activation, invalidation and live-root reclamation remain open, and no speedup is claimed. Full semantic authority and inline-documentation review also remain open. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven.

Huge-leaf geometry correction — 22 September 2026: the bug report preserves four original host failures and one passing WriteBack control. The signed correction separates PAT from physical address bits, preserves permissions/cache indices across both huge splits, and gives newly allocated tables WriteBack policy. Scalar and batched translation, split preparation, snapshots and baseline validation share the documented geometry. No new userspace authority, original native exploit or universal boot failure is claimed.

Four strict Kernel configurations pass 796/820 tests with three existing ignored cases, including eleven new controls. Sixteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. The catalog passes all 172 maintained helpers. Six native executions satisfy seven original contracts: mapping and sparse, lifetime, invocation, both allocator checks and ordinary exec-successor across all 73 components. The new native witness verifies real 2 MiB PAT translation, splitting and complete restoration; host controls additionally cover 1 GiB. Exact source signatures and retained artifacts pass, with no image warnings or QEMU stderr. The manual passes 45 tests, 2,433 pages and changed-page visual review without final warnings or overflow.

Publication CI: Kernel 654/655 and Docs 1019/1020 pass. Eight complete original logs (1,592,794 bytes) confirm Kernel 796/820 tests, 45 document tests and the 2,433-page manual. All 74 initial TeX reference warning candidates precede clean final passes. Integration 1735/1736 remains queued and has no completed acceptance. Earlier ext4 CI deadline failures remain unresolved. Static audits cover 3,197 authored code files below 1,000 lines, 75 manifests, 259 Git pins and 174 direct missing_docs gates. Private root population, CR3 activation, live-root reclamation and full semantic authority/documentation review remain open; no speedup is claimed. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and both full EriX guest-build generations remain mandatory and unproven.

First-start register custody — 22 September 2026: the stack-domain bug report preserves three original host failures and one valid-stack control at unchanged production sources; the same four controls pass against the signed correction. Ordinary anonymous stack materialization now rejects addresses outside the existing user domain, and direct bootstrap writes require retained writable registered backing. Initial registers have Kernel-owned storage; stack preparation preserves the synthetic return slot, complete admission, startup arguments and rollback. The obsolete saved-frame user overlay and directory scan are removed. Complete external start-context admission and the separate bootstrap code/stack overlay remain distinct work.

Four strict Kernel configurations pass 807/831 tests with three existing ignored cases, including eleven new controls. Sixteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. The catalog passes all 172 maintained helpers. Six native executions satisfy seven original contracts: lifetime, invocation, mapping and sparse, both allocator checks and ordinary exec-successor across all 73 components. The new witness checks all original initial register words after two real user stack mutations and before ordinary syscall capture. Exact source signatures and retained artifacts pass, with no image warnings or QEMU stderr. The manual passes 45 tests, 2,433 pages and four changed-page visual reviews without final warnings or overflow.

Publication CI: Kernel 656/657 and Docs 1021/1022 pass. Eight complete original logs (1,600,791 bytes) confirm Kernel 807/831 tests, 45 document tests and the 2,433-page manual. All 74 initial TeX reference warning candidates precede clean final passes. Integration 1737/1738 remains queued and has no completed acceptance. Earlier ext4 CI deadline failures remain unresolved. Static audits cover 3,201 authored code files below 1,000 lines, 75 manifests, 259 Git pins and 174 direct missing_docs gates. Private root population, CR3 activation, CPU residency, live-root reclamation and complete semantic authority/documentation review remain open; no speedup is claimed. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and both full EriX guest-build generations remain mandatory and unproven.

## Summary and rationale Enforce process-bound grant custody, staged construction, endpoint attenuation and owned invocation. Operation 54 creates a child with one primary endpoint and no root capabilities while retaining native backing. Queries use actual caller attribution and mappings retain explicit execution permissions. Native syscall entry captures a complete initialized resume prefix in stable kernel-owned storage before dispatch. Refusal cannot execute the requested operation or select stale resume state. Exception entry preserves alignment and exact hardware-frame extents; host fixtures own their complete stack windows. VSpace cleanup records completed withdrawals and consumes successful frame releases. Process abort and destruction now retain their empty private CSpace through final VSpace release. Distinct cleanup states prevent restart, wake, ordinary record mutation and live IPC admission. Identity reuse follows the successful final commit. ## Tracking and scope Signed head `c55ee8d6f12957b43c5fd6aaf31c9865656b5ae6`, branch `feature/posix-compat`. Owning feature #1 and audit #2; bounded fixture issues #4/#5/#6/#16/#17 retain their separate evidence. Dependent reviews: [Procd](https://git.erikinkinen.fi/erix/procd/issues/1), [realm design](https://git.erikinkinen.fi/erix/posixd/issues/1), [Integration](https://git.erikinkinen.fi/erix/integration/pulls/12), and [manual](https://git.erikinkinen.fi/erix/docs/pulls/4). ## Architecture, authority and failure behavior Construction requires an actual Process endpoint; identities do not confer authority. Grants retain unique custody, explicit rights, generation checks, caller windows and rollback obligations. Omission of initial root capabilities does not imply sealing or prohibit later authorized installation. Retiring VSpaces refuse ordinary operations and new ownership. All access withdrawals complete before backing release; completed effects are recorded. Aborting and destroying processes remain distinct non-executable owners. Final cleanup validates exact TCB generation and identities, then holds TCB, CSpace, VSpace and allocator locks in that order. The final-release callback cannot access TCB or CSpace tables. Failure retains the empty private CSpace; success publishes its reuse and removes the TCB without another fallible step. Earlier cleanup effects are retained, so this is not whole-process rollback. Procd adoption, typed grant return, guarded bootstrap, mediator execution, readiness, sealing, client I/O and fair retirement remain unfinished. Ordinary mediator start gates remain closed. Complete semantic authority and source/frame proof remain open; no generic syscall preservation mask is admitted. ## Validation evidence Original coherent realm source CI acceptance — 18 September 2026: Signed `bd127228f62cd5320e87642e79aa7c1cd8212e24` passes [CI 605](https://git.erikinkinen.fi/erix/kernel/actions/runs/605) and [CI 604](https://git.erikinkinen.fi/erix/kernel/actions/runs/604). All four terminal logs are complete (738,372 bytes), with zero final warnings. This closes the original CI observation recorded above. Coherent catalog publication, actual consumer VMs and full guest-build acceptance remain separate open requirements. Original coherent realm runtime prerequisites — 18 September 2026: Signed `bd127228f62cd5320e87642e79aa7c1cd8212e24` selects original shared dependency revisions. Four strict default/all-feature development/release matrices pass 702/726 kernel units plus two external controls per configuration, retaining three pre-existing ignored tests. Thirteen native builds cover ordinary, tracing, owned-invocation, lifetime and coherent SMP configurations. Formatting, strict host/native Clippy, private rustdoc and Markdown pass with zero warnings. Direct Rust implementation bytes are unchanged. Original CI is under observation. Matching catalogs, source-bound consumer VMs, complete realm operation and both full guest builds remain required. Explicit owned receiver admission acceptance — 18 September 2026: Signed `7034572037d1217b841c04dd9f45d5b254122a91`. REGISTER binds explicit byte/capability request limits to the actual receiver generation and RECV binding. Zero dimensions, exact repetition and conflicting changes are checked without additional authority. Oversize is refused before native request allocation, transfer or invocation acceptance. Checked packet descriptors feed native preparation without a redundant vector. Seven new host controls and four strict 702/726-unit matrices pass, with both standalone controls, eight warning-free native builds, Clippy and rustdoc. Both actual 60-second VMs pass; ten new CPL3 admission checks precede every existing ownership, mapping, origin, lifetime and retirement oracle. Original build outputs reproduce packaged artifacts; all fifteen native component signatures are verified. Allocation controls observe no requests on oversized refusal and equal direct-native/packet submission allocation. Original CI 602/603 passes from four complete logs (738,406 bytes), without warnings. Actual owned Procd/Launchd service adoption, consumer VM execution, complete realm fairness/readiness/sealing and both full builds inside EriX remain open. Caller-local grant relocation native acceptance — 18 September 2026: Signed Kernel `56d398e077c140c58e23f9cc2d8b79f19bc4cc2f` implements register-only syscall 0x54 using the actual Running caller, both admitted local slots and native unique install/revocation binding owners. Rights, child generation, installation scope and revocation lineage remain unchanged. Seven new host controls and all four strict matrices pass: 695/719 units, both standalone controls, eight native builds, strict Clippy, rustdoc and formatting. Both actual native VMs pass under their original 60-second limits. The lifetime fixture executes thirty-nine new CPL3 relocation calls before its existing installation, revocation, terminal, inventory, queue and page checks; user instructions validate results and observers never replace them. Normal stripping reproduces both packaged Kernel artifacts, and all fifteen original selected component trees are verified clean. Original [CI 600](https://git.erikinkinen.fi/erix/kernel/actions/runs/600) and [CI 601](https://git.erikinkinen.fi/erix/kernel/actions/runs/601) pass from four complete logs (731,632 bytes), without warnings. This is native local custody evidence only: actual owned service adoption, consumer VM execution, complete realm fairness and both full builds inside EriX remain open. Generation-bound native cleanup checkpoint — 18 September 2026: Signed revision `bd81f0d8bbb3ce3d3e4d172667d1d12fbe155e6e` is pushed. Native operations 56/57 match the original generation under the cleanup lock, preserve partial-disposal retries and retire selectors 8/35. Four strict host matrices pass 688/712 units plus standalone controls; all eight native builds and Clippy configurations pass. Both original 60-second VM scenarios pass. Nineteen actual CPL3 cleanup calls check malformed and retired selectors, stale identity, eligibility, repeated absence and preserved terminal evidence. All earlier lifetime oracles remain required; both packaged Kernels match their normally stripped original builds and all 15 component trees are clean. Formatting and Markdown checks pass. Original [CI 598](https://git.erikinkinen.fi/erix/kernel/actions/runs/598) and [CI 599](https://git.erikinkinen.fi/erix/kernel/actions/runs/599) passes; all four terminal logs are complete (725,508 bytes), without warnings. Runnable mediator bootstrap, fair retirement and both complete builds inside EriX remain separate open acceptance requirements. Coordinated terminal observation checkpoint — 17 September 2026: Signed revision `5b20519a72e1cbc797eb32a7687e78ac4a8a7133` is pushed. Both actual native VM gates now pass. Nine CPL3 terminal calls check malformed nonconsumption, retired-selector rejection without a fabricated response, original exit/kill generations and canonical empty queue. Exact build artifacts and all native component checkouts are verified. Original CI 596/597 has complete warning-free successful logs. Typed mediator bootstrap, ordinary service-image adoption and both complete EriX builds inside EriX remain open. Native terminal generation implementation — 17 September 2026: Signed revision `5b20519a72e1cbc797eb32a7687e78ac4a8a7133` is pushed. Native operation 55 captures the original TCB generation with exit/kill and preserves it across queued observation and ID reuse. Malformed waits cannot dequeue; selector 7 is retired. Four strict matrices pass with 686/710 units, host/native Clippy, rustdoc and eight native builds. The added CPL3 fixture checks every response word; corrected endpoint-refusal framing passes both native profiles. Matching native execution and coordinated consumer rollout remain in progress; runnable realm bootstrap and complete guest builds are not established. Original automatic CI is monitored without retries. - Four new process/CSpace ownership controls cover late release refusal, independent CSpace preservation, restart/wake/attribution refusal, retained terminal status, retry eligibility and empty-space admission. Four preceding VSpace controls cover withdrawal progress and exact managed-frame ownership. - Four strict development/release matrices pass 684 default and 708 all-feature units, both standalone controls and three existing ignored experiments. Formatting, private rustdoc, warning-denied host/native Clippy, eight native builds/binary-Clippy selections, Markdown and source review pass. - Invocation and lifetime candidates pass original feature selections, expected exits and 60-second limits using `run-scenario.sh`. Normal stripping reproduces both packaged Kernels. Final edits affect only three rustdoc locations; all non-rustdoc source lines agree, and final documentation/format checks pass. Native artifacts retain candidate source scope. Exact signed-wrapper and ordinary-image adoption are not established by these observations. - Original current-head [push CI 594](https://git.erikinkinen.fi/erix/kernel/actions/runs/594) and [PR CI 595](https://git.erikinkinen.fi/erix/kernel/actions/runs/595) pass. All four complete logs are classified: 722,414 bytes, zero warnings and matching 684/708-unit results plus both standalone controls. - Preceding VSpace CI 592/593 passes with four complete logs: 719,366 bytes, zero warnings and 680/704-unit results. Capture CI 590/591 passes with four complete logs, 716,126 bytes and zero warnings. Earlier fixture cohorts and their original failures remain retained; unchanged failures were not retried. - Earlier signed diagnostics cover invocation, lifetime, UD2 and hardware double fault under their original source scopes. Integration CI 1651/1652 retains full-catalog failures, including the newly recorded timeout in [Integration #61](https://git.erikinkinen.fi/erix/integration/issues/61). Both complete guest builds remain open. ## Review checklist - [x] Explicit authority, original pinned dependencies and signed canonical commits. - [x] Strict local checks, owned failure controls and native candidate regressions. - [x] Component/manual contracts and original preceding CI classification. - [x] Classify both original process-custody CI runs (594/595). - [ ] Resolve ordinary Integration regressions and complete source/frame proof. - [ ] Complete producer adoption, runnable realms and both full guest generations. Process-start census correction — 19 September 2026: signed Kernel `b762e19d0c16acd605d0f6123994a586cc6fcde1` requires a successful install-grant absence census before process start. An unavailable census returns the existing refusal and preserves the whole staged child and grant state. Hosted controls cover unavailable census, actual grant disposal and malformed-target precedence. Normal bootstrap initializes tracking before admission; production reachability of the injected condition or a native authority escape is not established. [Kernel issue 18](https://git.erikinkinen.fi/erix/kernel/issues/18) uses the canonical bug report and records the original failure and bounded correction. Four strict Kernel matrices pass 704/728 library tests and two standalone controls each; three existing ignored tests remain ignored. Formatting, strict host/native Clippy, private rustdoc and thirteen native build/Clippy profiles pass. Original [Kernel CI 606](https://git.erikinkinen.fi/erix/kernel/actions/runs/606) and [607](https://git.erikinkinen.fi/erix/kernel/actions/runs/607) pass from all four complete hashed logs (739,843 bytes), without warnings. Signed Integration `b65183ddb93eb4396d4140a002c3727fec42ff87` selects that Kernel and the reconciled Docs `7b79f8d50ab1aa123c6c74c427f5aa1a50a1db9d`, preserving all other catalog entries and all previously checked orchestration bytes. The matching guarded-preparation VM passes both unique markers and ordinary successful shell exit under unchanged 120-second hard and 45-second progress limits. All 106 artifacts, all 73 original component identities and the actual signed image are verified without warnings. Serial SHA256: `a373a8ccd81ac3efbaa492cbf2e1f991f3cc34dcbf23a1435c1c48cd75cd5c1c` (55,776 bytes); signed boot-image SHA256: `3b88d37183cf36dcbd5f1105cc0fd86e79aa4489d311300003f3f362c24bcd0a`. This remains an unstarted staging fixture. Normal native execution does not exercise the hosted unavailable-census condition. The prior complete 169-helper/four-matrix Integration evidence is verified against unchanged implementation bytes. Focused catalog/source checks pass, including 46 immutable-source and five tool-selection tests. An initial host fixture failure caused by disabling its deliberate Git replacement setup is retained; the established helper environment passes without altering product checks. The static census covers 3,127 authored code files below 1,000 lines, 74 manifests, 259 original Git pins, 170 direct missing_docs gates and 92 conventional crate roots; complete semantic authority and private-documentation closure remain open. Original [Integration CI 1679](https://git.erikinkinen.fi/erix/integration/actions/runs/1679) and [1680](https://git.erikinkinen.fi/erix/integration/actions/runs/1680) are queued. Earlier 1677/1678 remains queued and 1675/1676 is running. No unchanged workflow is rerun or cancelled. Complete mediator execution, full source/effect/frame proof, upstream Rust/LLVM rebuilding and both full EriX build generations inside EriX remain required. No whole acceptance item is newly completed. Shared native terminal transition — 19 September 2026: signed Kernel `37d9c74d6d1209729c520a52a274c1646efe225c` consolidates exit and kill event reservation, lifetime preflight, exact-generation commit and receiver/invocation retirement into one documented implementation. Existing public behavior and root exit cleanup remain unchanged. Terminal state and actual resource destruction stay separate. This completes the terminal-refactor prerequisite in [child lifetime design #19](https://git.erikinkinen.fi/erix/kernel/issues/19); it introduces no lifetime binding, new opcode or additional authority. Four strict Kernel matrices pass 704/728 library tests and both standalone controls, with three existing ignored tests unchanged. All thirteen native build/Clippy profiles, formatting, host/native Clippy and private rustdoc pass without warnings. Original [Kernel CI 608](https://git.erikinkinen.fi/erix/kernel/actions/runs/608) and [609](https://git.erikinkinen.fi/erix/kernel/actions/runs/609) pass from all four complete hashed logs (739,870 bytes), without warnings. Signed Integration `a62d1381f56a01afc692112d9b427205eaeb6a2e` updates both full Kernel selectors and five stale native diagnostic selectors while preserving source memberships and tested orchestration bytes. Both maintained native runners pass their original 60-second scenarios: lifetime revocation and owned invocation. Complete serial logs are retained (1,807 and 1,587 bytes), QEMU stderr is empty, and build warnings are absent. Packaged Kernel bytes match retained unstripped artifacts; all fifteen exact original component trees and signatures verify. Four current strict 320/321-test Integration matrices, native builds, formatting, host/native Clippy and private rustdoc pass. Seven focused source/native-policy checks pass; the complete 169-helper evidence remains hash-bound to unchanged implementation bytes. Original [Integration CI 1681](https://git.erikinkinen.fi/erix/integration/actions/runs/1681) and [1682](https://git.erikinkinen.fi/erix/integration/actions/runs/1682) are queued; older corrected 1675/1676 remains running. The static census covers 3,128 authored code files below 1,000 lines, 74 manifests, 259 original Git pins, 170 direct missing_docs gates and 92 conventional roots. Full semantic authority and private rustdoc closure remain open. Native child-lifetime custody, running mediator lifecycle, full frame proof, upstream Rust/LLVM rebuilding and both full EriX build generations inside EriX remain required. No whole phase acceptance item is added. Native child lifetime checkpoint — 19 September 2026: signed Kernel 1428885e6d27e8e2bcefbbf68caf22ece253aac9 implements operation 58 using the actual Running caller, an exact Created child, independent Process authority and its real local install grant. It consumes only that grant, reserves cohort events before terminal effects, stops descendants before their supervisor and retains each bound child's cleanup duty and first failure independently of userspace survival. Return-boundary disposal closes outgoing accounting and respects current/active-interval protection. Fourteen new real-object controls cover refusals, rollback, nested stopping, a 257-descendant tree, late preflight failure, exact reuse and failed explicit abort after unlinking. Four strict 718/742-test configurations and both standalone controls pass; three existing ignored tests remain. Formatting, host/native Clippy, private rustdoc and thirteen native build/Clippy profiles pass without warnings. Original [Kernel CI 610](https://git.erikinkinen.fi/erix/kernel/actions/runs/610) and [611](https://git.erikinkinen.fi/erix/kernel/actions/runs/611) pass from four complete hashed logs, 751,929 bytes, without warnings. The matching maintained lifetime VM passes its original 60-second scenario with the additional `ERIX_KERNEL:CHILD_LIFETIME_OK` marker. A real CPL3 supervisor proves ChildPopulate refusal, malformed/generation refusal, actual Process-route binding, start and exit. An independent observer verifies both exact children, CSpaces and mappings absent before terminal-event consumption, then disposes the unbound supervisor. The runnable child has a faulting sentinel and intentionally does not execute. All sixteen additional mapped pages are disposed. The original owned-invocation VM also passes its unchanged scenario. Complete serial logs contain 1,838 and 1,587 bytes; QEMU stderr is empty and build warnings are absent. Packaged Kernel bytes match retained original unstripped artifacts and all fifteen selected component signatures verify. Lifetime serial SHA256 is `012b46541b7c1c89d954cdbebda855037152a4e39ffad20ad7bdcc8c7b5c2572`. This establishes explicit native supervision with actual caller-side CPL3 evidence. Executing-child, no-successor native idle, allocation/partial-effect failure coverage, Procd adoption, running-mediator failure, provider completion, complete source/effect/frame proof, upstream Rust/LLVM rebuilding and both full EriX-in-EriX generations remain open. Host idle controls do not establish native interrupt or wakeup behavior. No whole phase acceptance leaf is added. Signed Docs 9ca5a5e811766a4506c0626cd58f8e228d0bacf8 updates the technical manual's native admission, preflight, stopping, partial cleanup and safe return/idle contracts. All 45 tests and the complete 2,425-page manual pass with zero final warnings. All 447,213 word boxes are in bounds and all three changed contract pages are visually reviewed. Shared API reference source is unchanged. Original [Docs CI 981](https://git.erikinkinen.fi/erix/docs/actions/runs/981) and [982](https://git.erikinkinen.fi/erix/docs/actions/runs/982) pass from four complete hashed logs, 773,510 bytes. Both pass 45 tests and the complete 2,425-page manual. TeX pass warning counts are 36/1/0, with zero final-pass warnings; neither workflow was rerun or cancelled. Signed Integration 581226ab5435dc66c6f93157606b6d4d83475b15 selects the coherent original Kernel/lib-capabi/lib-ipc graph and updated manual. All four current strict 320/321-test configurations, four native builds, fmt, strict host/native Clippy and private rustdoc pass without warnings. Source and updated native-policy checks pass; the full 169-helper evidence remains bound to unchanged orchestration bytes. The final post-VM changes select only the newer Docs revision and update roadmap status; native source catalog, scenario, runtime and orchestration bytes are unchanged. Original [Integration CI 1683](https://git.erikinkinen.fi/erix/integration/actions/runs/1683) and [1684](https://git.erikinkinen.fi/erix/integration/actions/runs/1684) are queued. Executing-child and terminal-reply checkpoint — 19 September 2026: signed [Kernel dd9eace5](https://git.erikinkinen.fi/erix/kernel/commit/dd9eace5b52edc02e624f142e92b85032f59bace) validates actual CPL3 nested-child execution and current-child ancestor termination. Synchronous control dispatch now ends its request borrow before effects and checks original caller identity, generation and terminal state before any response write. It keeps terminal completion in Kernel-owned result registers with zero reply length; ordinary native return switches away. A surviving caller retains its normal encoded response. Two focused actual-object regressions cover terminal request preservation and the surviving-caller reply. The dispatcher is split from the tracing/policy file. A supervisor binds and starts a child; that child binds a staged grandchild and kills its supervisor through its own explicit Process SEND route. Read-only witnesses require terminal caller storage to survive dispatch, then exact child/grandchild absence before the independent observer reads child-before-supervisor events. Both terminal payloads have immediate UD2 sentinels. An unrelated Created process retains its exact record, empty capability inventory and mappings until explicitly aborted. All four additional lifetimes and twenty-two mapped pages must be disposed for `ERIX_KERNEL:CHILD_EXECUTION_OK`. Four strict Kernel configurations pass 720/744 library tests and both standalone controls; three existing ignored tests remain. Formatting, host/native Clippy, private rustdoc and thirteen native build/Clippy profiles pass without warnings. Signed [Integration c14c5a61](https://git.erikinkinen.fi/erix/integration/commit/c14c5a617196a9b135b479601ca47a21371a9482) requires the additional marker while preserving every earlier marker and the original 60-second limit. Both actual native scenarios pass, with 1,870/1,587 complete serial bytes, empty QEMU stderr and no build warnings. Packaged Kernel bytes equal retained original artifacts after normal stripping; all fifteen original source signatures verify. Lifetime serial SHA256 is `1b2f983239efca55c8bc0f6f08ee91cfdcd37d4d1f6951bbd740e4d9b45d1a2f`. Four current Integration 320/321-test configurations, native builds, strict Clippy, formatting, private rustdoc and updated policy checks pass. Earlier 169-helper evidence is hash-verified against unchanged orchestration; it was not rerun for these scenario/catalog changes. Signed [Docs b4b01d87](https://git.erikinkinen.fi/erix/docs/commit/b4b01d870757d9b626dd2cfa7c6424332087bf62) documents the executing-child observations and remaining limits. All 45 tests, the full 2,425-page manual, 447,382 word bounds and visual review of the changed pages pass, with zero final warnings. The API reference source is unchanged. This extends native executing-child evidence; it does not establish no-successor native idle/wake behavior, provider completion, Procd adoption or a complete service lifecycle. The original install-grant constructor still gives `GRANT | MINT` while binding needs only `GRANT`; move-only transfer preserves exact rights. Both diagnostic grants are consumed, but rights minimization remains an explicit audit follow-up. Full source/effect/frame proof, the Pagerd gate, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted. Related implementation tracking: [Kernel feature](https://git.erikinkinen.fi/erix/kernel/issues/19), [Kernel WIP PR](https://git.erikinkinen.fi/erix/kernel/pulls/3), [Integration WIP PR](https://git.erikinkinen.fi/erix/integration/pulls/12), [manual WIP PR](https://git.erikinkinen.fi/erix/docs/pulls/4), and [phase completion](https://git.erikinkinen.fi/erix/integration/issues/65). Original [Kernel CI 614](https://git.erikinkinen.fi/erix/kernel/actions/runs/614) and [615](https://git.erikinkinen.fi/erix/kernel/actions/runs/615) pass from four complete hashed logs, 753,462 bytes, without warnings. Original [Docs CI 983](https://git.erikinkinen.fi/erix/docs/actions/runs/983) and [984](https://git.erikinkinen.fi/erix/docs/actions/runs/984) pass from four complete hashed logs, 773,542 bytes. Both pass all 45 tests and the complete 2,425-page final manual; reference-resolution warning counts are 36/1/0, with zero final warnings. Original Integration CI 1685/1686 remains queued at its second observation. Older original [Integration CI 1678](https://git.erikinkinen.fi/erix/integration/actions/runs/1678) passes all 489 catalog scenarios and both native Kernel diagnostics, then fails the development COM1 editor probe after its physical counterpart passes. Rust and Markdown pass. All three complete logs total 13,384,697 bytes with no warnings; the outer input status does not establish cause. The canonical bug report is [issue 67](https://git.erikinkinen.fi/erix/integration/issues/67), with bug/ci/phase-6 metadata. Earlier editor and filesystem failures remain separate. No original workflow was cancelled or rerun. Native cleanup without a userspace successor — 19 September 2026: signed [Kernel 2cf5b34c](https://git.erikinkinen.fi/erix/kernel/commit/2cf5b34c77451e4ddfa50f6bab9ae65cc5c47068) adds a seventh actual CPL3 caller to the maintained lifetime diagnostic. After every earlier assertion, the observer binds/starts the final child and yields. The child kills that supervisor through its own explicit Process SEND route. Immediate faulting sentinels forbid either terminal payload from resuming. Ordinary native return closes CPU accounting, detaches current attribution, progresses reclamation and finds no runnable successor. A diagnostic-only read-only witness then requires empty CPU accounting, only terminal retained records, no bound cleanup duties or event reservations, exact child identity/CSpace/mapping absence and both unconsumed child-before-supervisor events. All six final child pages retire; three original unbound terminal records remain for prior assertions. The witness neither performs cleanup nor selects a process nor installs an interrupt. `ERIX_KERNEL:CHILD_IDLE_CLEANUP_OK` precedes completion before HLT, so actual hardware halt/wakeup remains a separate gate. Signed [Integration 4d6f4fe8](https://git.erikinkinen.fi/erix/integration/commit/4d6f4fe8b383603b225b04a7771a11f32886e0a9) requires the additional marker while preserving all earlier assertions and both 60-second scenario limits. Both actual native VMs pass: 1,905/1,587 serial bytes, empty QEMU stderr and no build warnings. Lifetime serial SHA256: `4a7cba61f75f4eeac47896d165b8dbcd217e4c75e2a81c8ae0f29957facb929c`. Packaged Kernel images match retained build artifacts after normal stripping; all fifteen original component signatures verify. Four strict Kernel 720/744-test matrices, both standalone controls and thirteen native build/Clippy profiles pass; three existing ignored tests remain. Four strict Integration 320/321-test matrices, four native builds, formatting, host/native Clippy, private rustdoc and changed policies pass without warnings. Prior 169-helper evidence is hash-verified against unchanged orchestration. Post-VM changes only select updated Docs in full catalogs and update roadmap status. Signed [Docs 69466a64](https://git.erikinkinen.fi/erix/docs/commit/69466a64c032d575569adeff14f17a445e5a9c03) documents the pre-halt boundary and consolidates stale status paragraphs. All 45 tests, the complete 2,425-page manual, 447,534 word bounds and visual review of pages 562–564 pass with zero final warnings. API reference source remains unchanged. The static audit passes 3,140 authored code files below 1,000 lines, 74 manifests, 259 full Git selections, 171 direct missing_docs gates and 92 conventional crate roots; semantic authority and complete private-rustdoc closure remain open. Original [Kernel CI 616](https://git.erikinkinen.fi/erix/kernel/actions/runs/616) and [617](https://git.erikinkinen.fi/erix/kernel/actions/runs/617) pass from four complete hashed logs, 753,458 bytes, with no warnings. Original [Docs CI 985](https://git.erikinkinen.fi/erix/docs/actions/runs/985) and [986](https://git.erikinkinen.fi/erix/docs/actions/runs/986) also pass: four complete hashed logs, 773,510 bytes; both pass 45 tests and the final 2,425-page manual. Reference-resolution warning counts are 36/1/0 with zero final warnings. Original Integration CI 1687/1688 remains queued at its first observation. Older original [Integration CI 1677](https://git.erikinkinen.fi/erix/integration/actions/runs/1677) is now terminal failure: all 489 catalog cases, both native diagnostics, development physical/COM1 editor and release physical editor pass before release COM1 fails. Rust and Markdown pass. Three complete logs total 13,385,246 bytes without warnings; [bug 37](https://git.erikinkinen.fi/erix/integration/issues/37) retains this evidence. Companion 1678's earlier development COM1 failure remains separate in [bug 67](https://git.erikinkinen.fi/erix/integration/issues/67); a common cause is unproven. No original workflow was cancelled or rerun. Further native failure controls, grant-rights minimization, terminal accounting, Procd adoption and complete service lifecycle acceptance remain open. Existing install-grant creation still supplies GRANT | MINT while binding needs GRANT, so minimum authority is not claimed. Full source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted. Related: [Kernel design](https://git.erikinkinen.fi/erix/kernel/issues/19), [Kernel WIP PR](https://git.erikinkinen.fi/erix/kernel/pulls/3), [Integration WIP PR](https://git.erikinkinen.fi/erix/integration/pulls/12), [manual WIP PR](https://git.erikinkinen.fi/erix/docs/pulls/4), and [phase completion](https://git.erikinkinen.fi/erix/integration/issues/65). Native terminal-event allocation refusal — 19 September 2026: signed [Kernel ba03995f](https://git.erikinkinen.fi/erix/kernel/commit/ba03995fe0dcfc3d4a1f72eb000e0c7698bbcbaa) extends the actual executing-child sequence with one deliberately refused heap allocation. Separate diagnostic preparation captures the original supervisor, child, staged grandchild and independent process records/capability inventories, then gives an empty event queue one-event capacity. No queued event or existing reservation is discarded. The first terminal-event reservation succeeds; the second arms exactly one null return from the real Kernel allocator. Ordinary collection growth and Process dispatch return RESOURCE_EXHAUSTED before any terminal effect. Read-only witnesses require complete reservation rollback, an empty event queue, unchanged exact records and capabilities, and preserved code/stack/message mapping ranges. Actual CPL3 instructions validate the refusal reply before the next ordinary ancestor kill succeeds with allocation available. Every earlier terminal, descendant-disposal, independent-process and no-successor idle assertion remains required. `ERIX_KERNEL:TERMINAL_EVENT_RESERVATION_OK` requires one consumed allocator refusal and no remaining armed fault. Fault controls are absent from ordinary images; this covers injected allocation failure, not spontaneous heap exhaustion or independent resource-release failure. No witness supplies a syscall result, cleanup effect or scheduler choice. Signed [Integration cf5b2f5f](https://git.erikinkinen.fi/erix/integration/commit/cf5b2f5f1d63631e69df3074d7c1c0b9b4921480) requires the new marker without changing either 60-second limit. Both maintained native VMs pass: 1,948/1,587 serial bytes, empty QEMU stderr and no build warnings. Lifetime serial SHA256 is `d485019082175f769ecc2d406d88c6cc84a7df323605027663f5bcc79ca03ad9`. Packaged Kernel bytes match retained original artifacts after normal stripping, and all fifteen original source signatures verify. Post-VM changes only select updated Docs in full catalogs and consolidate roadmap status. Four strict Kernel 720/744-test matrices, both standalone controls and thirteen native build/Clippy profiles pass; three existing ignored tests remain. Four strict Integration 320/321-test matrices, four native builds, formatting, host/native Clippy, private rustdoc and updated policies pass without warnings. Prior 169-helper evidence is hash-verified against unchanged orchestration. Signed [Docs 62ba2ffa](https://git.erikinkinen.fi/erix/docs/commit/62ba2ffa30ff9f04840c8d38d188b414e5b24b90) passes 45 tests, the complete 2,425-page manual, all 447,688 word bounds and actual visual review of pages 562–565, with zero final warnings; API reference source remains unchanged. The static audit passes 3,142 authored code files below 1,000 lines, 74 manifests, 259 full Git pins, 171 direct missing_docs gates and 92 conventional roots. Complete semantic authority and private-rustdoc closure remain open. Original [Kernel CI 618](https://git.erikinkinen.fi/erix/kernel/actions/runs/618) and [619](https://git.erikinkinen.fi/erix/kernel/actions/runs/619) pass from four complete hashed logs, 753,434 bytes, with zero warnings. Original [Docs CI 987](https://git.erikinkinen.fi/erix/docs/actions/runs/987) and [988](https://git.erikinkinen.fi/erix/docs/actions/runs/988) pass from four complete hashed logs, 773,506 bytes: both pass 45 tests and the final 2,425-page manual, with reference-resolution warning counts 36/1/0 and zero final warnings. Original Integration CI 1689/1690 is queued. Earlier filesystem, directory, editor and full-frame regressions remain unresolved; original workflows were not cancelled or rerun. The terminal-accounting audit confirms that ordinary Procd terminal handling queries original TCB counters after receiving its event, while automatic bound-child reclamation removes that TCB. Its separate private-mediator branch does not take the same query path; adoption must state which lifetimes require retained metrics and preserve their original generation without fabricated zero/wall-clock values. Independent release-failure coverage, grant-rights minimization, accounting, Procd adoption and full mediator lifecycle remain open. Full source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted. Related: [Kernel design](https://git.erikinkinen.fi/erix/kernel/issues/19), [Kernel WIP PR](https://git.erikinkinen.fi/erix/kernel/pulls/3), [Integration WIP PR](https://git.erikinkinen.fi/erix/integration/pulls/12), [manual WIP PR](https://git.erikinkinen.fi/erix/docs/pulls/4), and [phase completion](https://git.erikinkinen.fi/erix/integration/issues/65). Independent native child release recovery — 19 September 2026: signed [Kernel 82d88b60](https://git.erikinkinen.fi/erix/kernel/commit/82d88b609bd808a840780993da315230dd14399a) extends actual supervisor-exit coverage with two deliberate refusals at the original staged child's final VSpace-release callback, after capability disposal and unlinking. The first error is KernelHeapExhausted, the second CspaceSlotMissing. Read-only observations around two ordinary CPL3 observer yields require the original full record, generation, abort custody and first error retained, an empty original CSpace and retained mapped backing. The independent running child must already be absent from native TCB, CSpace and VSpace directories. The selected child's earlier directory position ensures its failure preceded that independent disposal. The third callback must perform normal VSpace release before all original terminal-event, generation and resource-absence checks pass. `ERIX_KERNEL:CHILD_RELEASE_ISOLATION_OK` requires exactly two refusals and complete eventual disposal. Fault control uses only atomics at the locked callback boundary and exists only in the isolated native diagnostic. No witness performs cleanup, supplies a successful release/syscall result or chooses a scheduler target. This establishes injected callback-refusal coverage, not an observed hardware or allocator malfunction. All earlier nested-child, allocation-refusal and no-successor pre-halt assertions remain required. Signed [Integration 294a467a](https://git.erikinkinen.fi/erix/integration/commit/294a467a3bcd9464ea55c32dbce98acf19d0e400) requires the added marker with both original 60-second limits unchanged. Both maintained native VMs pass: 1,988/1,587 serial bytes, empty QEMU stderr and no build warnings. Lifetime serial SHA256 is `606fff037be022c876220d8e8f329c9046ffea5dcdf80831026649aedfbe0b08`. Packaged Kernel bytes match retained original unstripped artifacts after normal stripping, and all fifteen original component signatures verify. Post-VM changes only select the updated manual source in full catalogs and reconcile roadmap status. Four strict Kernel 720/744-test configurations, both standalone controls and thirteen native build/Clippy profiles pass; three existing ignored tests remain. Four strict Integration 320/321-test configurations, four native builds, formatting, host/native Clippy, private rustdoc and changed policies pass without warnings. Prior 169-helper evidence is hash-verified against unchanged orchestration. Signed [Docs 2a0ccc1a](https://git.erikinkinen.fi/erix/docs/commit/2a0ccc1a595c3e03aa6c7b7ecbcaca8830082ddd) passes 45 tests, the complete 2,427-page manual, all 447,789 word bounds and actual visual review of pages 562–565 with zero final warnings. API reference source is unchanged. Static audit passes 3,143 authored code files below 1,000 lines, 74 manifests, 259 original Git pins, 171 direct missing_docs gates and 92 conventional roots; complete semantic authority/private-rustdoc closure remains open. Original Kernel CI 620/621 and Docs CI 989/990 pass from four complete hashed logs each (753,438/773,910 bytes), with zero final warnings. Current Integration originals are observed after publication. Earlier filesystem, directory, editor and full-frame regressions remain unresolved, with original evidence retained; no workflow is cancelled or retried unchanged. The grant-rights audit confirms actual Procd derivation callers and exact GRANT | MINT receipt checks in Procd and Launchd. Grant authority minimization must coordinate those consumers and distinguish the grant's own rights from its installation ceiling. Original generation-bound terminal accounting, Procd adoption, provider completion, hardware halt/wakeup and complete mediator lifecycle remain open. Full source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain mandatory. No whole acceptance leaf is added: 15/460, 3.48% weighted. Related: [Kernel design](https://git.erikinkinen.fi/erix/kernel/issues/19), [Kernel WIP PR](https://git.erikinkinen.fi/erix/kernel/pulls/3), [Integration WIP PR](https://git.erikinkinen.fi/erix/integration/pulls/12), [manual WIP PR](https://git.erikinkinen.fi/erix/docs/pulls/4), and [phase completion](https://git.erikinkinen.fi/erix/integration/issues/65). Explicit grant implementation progress — 20 September 2026: Kernel commit [4a5333f760e258ebca23047a362d1cff4fded0c0](https://git.erikinkinen.fi/erix/kernel/commit/4a5333f760e258ebca23047a362d1cff4fded0c0) is signed and pushed. Creation preserves exact own grant rights, including zero. Derivation requires actual MINT and subsets of both own rights and installation scope. Zero-right custody still blocks process start until disposed. Four strict 724/748-unit configurations, both standalone controls and thirteen native build/Clippy profiles pass without warnings; three existing ignores remain. Original CI 622/623 passes from four complete hashed logs, 756,715 bytes, zero warnings. The new actual CPL3 derivation/disposal controls and GRANT-only relocation/installation compile; their matching VM execution remains pending. The consumer audit also identified Loaderd and Deviced receipt checks. Procd's move-only handoff cannot attenuate the original delegating grant: it now derives a GRANT-only final receipt into the already-disposed VSpace receipt slot and drops the source before returning that receipt. Nonderiving materialization and rootless mediator paths request GRANT directly. Partial failure retains original-generation rollback and all remaining local custody. Procd, Launchd, Rootd, Loaderd and Deviced pass their default unit suites; their full strict matrices and coherent guest validation remain open. [Deviced bug 4](https://git.erikinkinen.fi/erix/deviced/issues/4) records a separately observed quarantine test race and its test-only serialization correction. This is partial implementation evidence, not completed lifecycle or self-hosting acceptance. The canonical checklist remains 15 of 460 leaves, 3.48% weighted. Full terminal accounting, provider completion, consumer lifecycle, source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both complete EriX-in-EriX generations remain required. Verified grant-rights checkpoint — 20 September 2026: Both maintained isolated native scenarios pass on their first attempts under the unchanged 60-second scenario limits, with no build warnings and empty QEMU stderr. Lifetime now exercises 27 ordinary CPL3 grant-right controls and requires INSTALL_GRANT_RIGHTS_OK before its existing cleanup assertions. Its 2,025-byte serial stream has SHA256 `6c685f1ceaf9080bf0bec628a4fac512bf9049d0fbcfe2b3737666adf414ca3a`; owned invocation retains 1,587 bytes. Normal stripping exactly matches both packaged kernels to retained original artifacts. All fifteen selected original source signatures and clean trees verify. These minimal native scenarios establish neither full service-image acceptance nor a guest build. All thirteen shared libraries pass their strict matrices and original CI. The five direct receipt consumers pass four strict host/native configurations; original CI passes for procd 292/293, launchd 145/146, rootd 1037/1038, loaderd 99/100, deviced 206/207. [Rootd baseline regression](https://git.erikinkinen.fi/erix/rootd/issues/6) and [Deviced quarantine fixture race](https://git.erikinkinen.fi/erix/deviced/issues/4) are corrected with retained original failures and successful corrected-source CI. Manual/API updates and remaining full-catalog alignment are in progress. [Integration bug 68](https://git.erikinkinen.fi/erix/integration/issues/68) records five original CI failures (1683/1684, 1685/1686 and 1688), each with 127 manifest/catalog revision mismatches before full VM execution. All fifteen complete logs are retained, 1,512,137 bytes with no warning candidates. Individual-crate and minimal-native validation did not prove full catalog coherence. Remaining dependents are being aligned and validated bottom-up; equality and immutable-source checks are unchanged. Earlier 1681/1682 separately reached 479/489 and 487/489 VM passes, with ten and two scenario timeouts at the original 120-second bounds. Those filesystem failures require separate analysis. Canonical acceptance remains 15 of 460 leaves, 3.48% weighted. Complete lifecycle and terminal accounting, provider completion, source/effect/frame proof, the 128-page Pagerd gate, profiler attribution, native external Rust/LLVM/runtime rebuilding and both full EriX-in-EriX generations remain required. Verified native terminal accounting — 21 September 2026: Kernel [a9bdf6163813d378e0b4a164bceb839e24fbb6b7](https://git.erikinkinen.fi/erix/kernel/commit/a9bdf6163813d378e0b4a164bceb839e24fbb6b7) is signed/pushed. Terminal preflight reserves final scalar CPU evidence independently of TCB/CSpace/VSpace reclamation; exact queries preserve final results or explicit errors. Repeat observations belong to the actual original observer until exact acknowledgement, and observer death releases that claim. Independent authorized observers can progress. Selector 55 is retired; checked selectors 59/60 have no destructive fallback. Four strict 736/760-unit configurations, both standalone controls and thirteen native build/Clippy profiles pass without warnings. Host controls include nonzero final counters after actual reclamation and ID reuse, original observer death, pending-final-charge destruction refusal, malformed requests, wrong callers, immutable errors and lost-acknowledgement reply retry. Original Kernel CI 624/625 and corrected 626/627 all pass from eight complete hashed logs (1,532,848 bytes), zero warnings. Both maintained lifetime and owned-invocation VMs pass under the unchanged 60-second scenario limits and standard watchdogs, with no build warnings and empty QEMU stderr. Actual guest instructions check repeat observations and CPU queries, exact acknowledgement and absent-acknowledgement retry; executing children require nonzero user and kernel counters after native reclamation. Lifetime retains 2,025 serial bytes (SHA256 `921edf5eadfdff61f2d85a63158555666e77e57a1e8aa4254ac30dcd216f8cf9`); owned invocation retains 1,587 (SHA256 `404bc4ecad5074349d9ba45d1caf5439aebe849d344b726e5dec2ee2b9c4d907`). Normal stripping exactly matches both packaged kernels to retained original artifacts; all fifteen selected original signatures and clean checkouts verify. [Kernel regression 21](https://git.erikinkinen.fi/erix/kernel/issues/21) retains the first VM's final page-census failure. The corrected layout declares and allocates all six request pages and derives the independent census from that declaration. No unchanged retry or deadline relaxation occurred. Integration [fcd7b4a9608f629a12de78c53da5c3615d906b46](https://git.erikinkinen.fi/erix/integration/commit/fcd7b4a9608f629a12de78c53da5c3615d906b46) is signed/pushed with the verified isolated catalog. Twenty dependency and 46 immutable-source tests, native policies, Markdown and source checks pass. The unchanged orchestration crate, embedded fixture and original dependency closure retain verified four 320/321-unit and native/Clippy/rustdoc configurations. The full service catalogs retain their separately coordinated revisions; original Integration CI remains under observation. Procd and Rootd consumer adoption, ordinary and mediator metric retention/consumer loss, manual updates, full service/profiler scenarios, complete authority/source/frame audits and full regression acceptance remain open under [Kernel design 20](https://git.erikinkinen.fi/erix/kernel/issues/20). Canonical acceptance remains **3.48% weighted; 15 of 460 items**. Native upstream Rust/LLVM/runtime rebuilding and both full EriX guest build generations remain mandatory and unproven. Owned address-space preparation — 22 September 2026: [Kernel issue 22](https://git.erikinkinen.fi/erix/kernel/issues/22) records the private hardware-root construction, exact authority, activation, invalidation, failure custody and retirement contract before implementation. Signed [Kernel 5e818e8b6d1d](https://git.erikinkinen.fi/erix/kernel/commit/5e818e8b6d1d6da7698cfff34820d0aa9de8c05a), in [Kernel PR 3](https://git.erikinkinen.fi/erix/kernel/pulls/3), adds the [design contract](https://git.erikinkinen.fi/erix/kernel/src/commit/5e818e8b6d1d6da7698cfff34820d0aa9de8c05a/docs/owned-address-spaces.md) and an independent mapping-bit provenance regression. The current shared hierarchy and production permission encoder remain unchanged. An isolated rewrite produced the same 17 instructions and 63 bytes, so it was rejected as an optimization. Four strict Kernel matrices pass 737 default / 761 all-feature tests in development and release, retaining the same three existing ignored cases. Formatting, host/native Clippy, all 13 native builds, private rustdoc and Markdown pass without warnings. Original CI 628/629 is running. No hardware-owned root, concurrent user execution, elapsed-time speedup or native isolation closure is claimed. The profiler and unchanged startup timing gates remain open in [Integration 3](https://git.erikinkinen.fi/erix/integration/issues/3) and [Integration 72](https://git.erikinkinen.fi/erix/integration/issues/72). The [phase checklist](https://git.erikinkinen.fi/erix/integration/issues/65) stays at 15/460 accepted leaves, weighted 3.48%; external Rust/LLVM rebuilding inside EriX and both full guest-build generations remain mandatory and unproven. Native table-custody checkpoint — 22 September 2026: signed [Kernel 2e744897de7c](https://git.erikinkinen.fi/erix/kernel/commit/2e744897de7c330d3d095a65daed761a4e4a9406), in [Kernel PR 3](https://git.erikinkinen.fi/erix/kernel/pulls/3), gives unpublished table allocations one cleanup owner through translation and initialization. Empty-table installation and huge splits transfer custody at parent publication. The raw allocation-return helper and duplicate huge-split initialization are removed. Parent/leaf invalidation, interrupt masking, permission templates and current shared-hierarchy lifetime remain intact. Five host controls cover allocation/translation failure, invalid geometry, abandoned preparation and publication. Four strict configurations pass 742 default / 766 all-feature tests, retaining three existing ignored cases; formatting, host/native Clippy, private rustdoc and thirteen native builds pass without warnings. Original Kernel CI 630/631 passes from four complete logs, 771,607 bytes and zero warnings. Signed [Integration fe63adde8ff9](https://git.erikinkinen.fi/erix/integration/commit/fe63adde8ff9529faf1261dbd5da3d7f39c0f2a6), in [Integration PR 12](https://git.erikinkinen.fi/erix/integration/pulls/12), selects that exact Kernel in all three catalogs. Every other selection and Kernel dependency manifest is unchanged. All 172 maintained helper commands pass without warnings; unchanged Rust inputs retain their preceding strict matrices. Three original-source native executions pass lifetime revocation, owned invocation and mapping checks with unchanged 60-second guest limits, warning-free builds and empty QEMU stderr. Mapping isolation and sparse mappings have identical runtime settings; both maintained marker contracts pass on the retained mapping capture. All fifteen selected component signatures verify, and each packaged Kernel image equals its retained artifact after normal stripping. These results cover the current shared hierarchy, not independent hardware roots. The [Kernel evidence update](https://git.erikinkinen.fi/erix/kernel/commit/f50535bfcd9aa57271762bb0b4da7d759d08906e) and [Integration evidence update](https://git.erikinkinen.fi/erix/integration/commit/1621164b93a7705eae381ff95aeec59b4e9527c3) change documentation only, with executable inputs proven unchanged. Their original Kernel CI 632/633 is running and Integration 1715/1716 is queued. Older full Integration CI 1701/1702 at b06dfad00202765491a64552dde29eaca1c24838 passes from six complete logs, 26,962,712 bytes and zero warnings, including both runs' ext4 quota, ext4 links and FAT32 directory-metadata cases. Their earlier timing failures remain retained with unestablished causes; [18](https://git.erikinkinen.fi/erix/integration/issues/18), [20](https://git.erikinkinen.fi/erix/integration/issues/20) and [70](https://git.erikinkinen.fi/erix/integration/issues/70) have exact follow-up observations. No workflow was rerun or cancelled. All 3,176 authored code files remain below 1,000 lines. The next work in [Kernel 22](https://git.erikinkinen.fi/erix/kernel/issues/22) must resolve the supervisor baseline, bootstrap/saved-frame overlays and inactive-space population before adding root ownership, residency and retirement. Startup timing acceptance, complete authority cleanup and the profiler's measured speedup remain open. The [phase checklist](https://git.erikinkinen.fi/erix/integration/issues/65) stays at 15/460 accepted leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX, then completing both full EriX guest-build generations, remains mandatory and unproven. Ordinary mapping-domain checkpoint — 22 September 2026: [resolved admission report](https://git.erikinkinen.fi/erix/kernel/issues/23) records the original host failure and bounded fix. The [fixture regression](https://git.erikinkinen.fi/erix/kernel/issues/24) retains all three distinct failed attempts and the verified layout correction. [Kernel](https://git.erikinkinen.fi/erix/kernel/commit/ef3fd9293eaf691269fdb9e6b72eb15dac1f3f06) now validates the complete ordinary user page before backing or mapping changes, with both control paths covered. Four strict 745/769-test configurations, thirteen native builds, Clippy and private rustdoc pass without warnings. Three exact-source native executions pass lifetime, invocation and mapping; four maintained scenario contracts are checked, with sparse and isolation sharing their identical runtime capture. All fifteen selected native signatures and packaged Kernel identities verify. [Integration](https://git.erikinkinen.fi/erix/integration/commit/cd560584d034720ac179d5abc6f2a9d965943c63) pins the exact Kernel in all three catalogs, preserves every other selection and passes all 172 helpers. The unchanged ordinary exec-successor VM passes against the complete source graph, preserving its 120-second guest deadline, with no image warnings or QEMU stderr. [Docs](https://git.erikinkinen.fi/erix/docs/commit/043df99baaa9d4539da627fbfe4a234e41e74135) documents the domain and bootstrap distinction; all 45 tests and 2,431 pages pass, with 450,473 word bounds checked and no final warnings. The earlier Kernel CI 632/633 passes from four complete logs and zero warnings; current original CI remains under observation. Bootstrap provenance, independent hardware roots, complete authority cleanup and measured startup improvement remain open. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven. Verified documentation and CI follow-up — 22 September 2026: [Kernel documentation](https://git.erikinkinen.fi/erix/kernel/commit/d0d9e25b71664126c29727265f285df2f5ae7fea) and [Integration documentation](https://git.erikinkinen.fi/erix/integration/commit/c41bb92cd0ff5444c1680bee476a70072529fdb0) record the accepted native mapping, three-grant cleanup and ordinary exec-successor evidence. Every executable file is identical to the tested implementation; Markdown and diff checks pass. All three failed fixture attempts remain in [report 24](https://git.erikinkinen.fi/erix/kernel/issues/24), separately from the fixed [admission defect](https://git.erikinkinen.fi/erix/kernel/issues/23). The complete manual passes 45 tests and 2,431 pages with no final warnings. The final static inventory covers 3,180 authored code files below 1,000 lines, 259 exact Git pins and the existing direct missing_docs declarations; it does not establish full semantic authority closure. Original full Integration [1703](https://git.erikinkinen.fi/erix/integration/actions/runs/1703)/[1704](https://git.erikinkinen.fi/erix/integration/actions/runs/1704), source dff878dd3545c4751b3c05d37b2bdd5e21cce548, pass from six complete logs totalling 26,964,178 bytes and zero warnings. Their ext4 quota/links and FAT32 directory scenarios explicitly pass. Earlier timing failures remain retained and their causes are unestablished. Kernel [634](https://git.erikinkinen.fi/erix/kernel/actions/runs/634)/[635](https://git.erikinkinen.fi/erix/kernel/actions/runs/635) report cancelled, with runner context-cancellation messages and four complete logs. No cancellation request was issued during this work; the workflow declares no cancellation policy, and the initiating cause remains unestablished. These runs receive no CI acceptance credit. Current Kernel [636](https://git.erikinkinen.fi/erix/kernel/actions/runs/636)/[637](https://git.erikinkinen.fi/erix/kernel/actions/runs/637) and Docs [1007](https://git.erikinkinen.fi/erix/docs/actions/runs/1007)/[1008](https://git.erikinkinen.fi/erix/docs/actions/runs/1008) pass. Each pair has four complete logs: Kernel totals 773,796 bytes with zero warnings, and Docs totals 774,706 bytes with zero final warnings. Both manual builds retain their initial 35/1/0 LaTeX warning sequence through convergence. Integration 1717–1720 remains queued. The phase checklist remains at 15/460 accepted leaves, weighted 3.48%. Private hardware roots, complete authority cleanup, measured startup improvement, native external Rust/LLVM/runtime rebuilding and both complete EriX guest-build generations remain open. VSpace MAP authority checkpoint — 22 September 2026: [the resolved bug report](https://git.erikinkinen.fi/erix/kernel/issues/25) records three original failing host controls and the verified correction in [Kernel](https://git.erikinkinen.fi/erix/kernel/commit/9fdf1a17acc9204719fee42d263dacfcd701d56c). Current local MAP rights now govern map, protection and unmap requests. Empty and MANAGE-only aliases are denied; MAP-only access remains valid. Four strict 750/774-test configurations, thirteen native builds, strict Clippy and private rustdoc pass without warnings. The [Integration catalog](https://git.erikinkinen.fi/erix/integration/commit/c62dbf9d7096d41b5d073bc497949e16f5f16e13) selects the exact signed Kernel in all three catalogs and passes all 172 helpers. Actual CPL3 calls preserve the authorized RW/NX page across restricted-alias refusals and drop all five temporary grants. Three native executions cover all four maintained lifetime/invocation/mapping/sparse contracts with original limits, exact signed sources and retained packaged artifacts. The original exec-successor service VM passes against all 73 components with its unchanged 120-second guest limit. All image warnings and QEMU stderr remain absent. [Manual validation](https://git.erikinkinen.fi/erix/docs/commit/a96c994750ed10205e7bac17be6922a53070e2d6) passes 45 tests, 2,431 pages and 450,550 checked word bounds, with both changed pages reviewed and zero final warnings. The static audit covers 3,181 authored code files below 1,000 lines, 259 exact Git dependency pins and existing direct missing_docs gates. It does not close semantic authority review. Earlier full Integration runs 1705/1706 are running; 1707–1720 remain queued at the latest original observations. No workflow was rerun or cancelled. Publication CI: Kernel [638](https://git.erikinkinen.fi/erix/kernel/actions/runs/638)/[639](https://git.erikinkinen.fi/erix/kernel/actions/runs/639) and Docs [1009](https://git.erikinkinen.fi/erix/docs/actions/runs/1009)/[1010](https://git.erikinkinen.fi/erix/docs/actions/runs/1010) pass. Each pair has four complete logs: Kernel totals 777,250 bytes with zero warnings, and Docs totals 774,674 bytes with zero final warnings or overflow. The manual retains its initial 35/1/0 LaTeX warning sequence through convergence. Integration [1721](https://git.erikinkinen.fi/erix/integration/actions/runs/1721)/[1722](https://git.erikinkinen.fi/erix/integration/actions/runs/1722) remains queued; it receives no CI acceptance credit. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Independent hardware roots, complete authority cleanup and measured startup improvement remain open. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX, then completing both full EriX guest-build generations, remains mandatory and unproven. Frame access checkpoint — 22 September 2026: [the resolved bug report](https://git.erikinkinen.fi/erix/kernel/issues/26) records three original failing host controls and the verified correction in [Kernel](https://git.erikinkinen.fi/erix/kernel/commit/6671466a84cdc4994384e1b8391d6a01fa66fb09). Explicit READ now governs admission and hardware activation. No-access mappings retain backing with USER/WRITE clear and NX set; write-only and execute-only requests are rejected without adding READ. Existing protection-transition rules remain in force. Four strict 757/781-test configurations, thirteen native builds, strict Clippy and private rustdoc pass without warnings. The [Integration catalog](https://git.erikinkinen.fi/erix/integration/commit/b45edf143f599699f80e70a13827762d3e4da77e) selects the signed Kernel in all three catalogs and passes 172 helpers. Twenty-four actual CPL3 calls preserve earlier witnesses and cover no-access protection, write-only refusal, MAP-only frame derivation, denied READ and unmap after both frame grants are dropped. Three native executions pass four maintained lifetime/invocation/mapping/sparse contracts with original limits, exact signatures and retained packaged artifacts. The ordinary exec-successor VM passes against all 73 components with its unchanged 120-second guest limit. Builds emit no warnings and QEMU stderr is empty. [Manual validation](https://git.erikinkinen.fi/erix/docs/commit/45dae3cee4116b9387c4f3d3d2687a87f0fa340b) passes 45 tests, 2,433 pages and 450,702 checked word bounds, with the changed page reviewed and zero final warnings. Static review covers 3,182 authored code files below 1,000 lines, 259 exact Git pins and existing direct missing_docs gates. This does not close semantic authority review. Earlier full Integration runs 1705/1706 remain running and 1707–1722 remain queued at their latest original observations. No workflow was rerun or cancelled. Publication CI: Kernel [640](https://git.erikinkinen.fi/erix/kernel/actions/runs/640)/[641](https://git.erikinkinen.fi/erix/kernel/actions/runs/641) and Docs [1011](https://git.erikinkinen.fi/erix/docs/actions/runs/1011)/[1012](https://git.erikinkinen.fi/erix/docs/actions/runs/1012) pass. Each pair has four complete logs: Kernel totals 782,838 bytes with zero warnings, and Docs totals 775,110 bytes with zero final warnings or overflow. The manual retains its initial 35/1/0 LaTeX warning sequence through convergence. Integration [1723](https://git.erikinkinen.fi/erix/integration/actions/runs/1723)/[1724](https://git.erikinkinen.fi/erix/integration/actions/runs/1724) remains queued; it receives no CI acceptance credit. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Authorized protection restoration, independent hardware roots, complete authority cleanup and measured startup improvement remain open. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven. Ordinary protection contract — 22 September 2026: [the runtime memory design](https://git.erikinkinen.fi/erix/kernel/issues/1) now specifies in-place no-access/R/RW/RX changes using current VSpace MAP and exact selected frame authority, including same-backing aliases and complete backing checks. Preserve W^X, explicit READ, object kind, reference custody, error ordering and all native witnesses. Kernel-owned anonymous loader materialization and Process endpoint target scope retain separate audit obligations. The implementation and exact-source VM evidence are pending. This earns no canonical acceptance credit; external toolchain rebuilding and both complete EriX guest-build generations remain mandatory. Current-grant protection checkpoint — 22 September 2026: [the resolved device-backing report](https://git.erikinkinen.fi/erix/kernel/issues/27) distinguishes its original metadata-authority inconsistency from the separate restoration feature gaps. The [Kernel implementation](https://git.erikinkinen.fi/erix/kernel/commit/f5dd939c462de9d62f317ab7d29c21779cbe11c7) permits representable no-access/R/RW/RX changes through current exact-backing grants and aliases while active or inactive. It removes historical access ceilings and original-slot equality while preserving current VSpace MAP, selected frame rights, kind/range/identity checks, W^X, explicit READ, backing custody and failure ordering. Four strict 766/790-test configurations, thirteen native builds, strict Clippy and private rustdoc pass without warnings. The [coordinated catalog](https://git.erikinkinen.fi/erix/integration/commit/8a9f865364656351fd8b12914e404a97b0be11c7) selects that original signed Kernel in all three catalogs and passes all 172 helpers. Fifteen managed-frame calls and twenty-nine device/domain calls pass inside the original lifetime window and deadline. Actual user instructions write, execute, rewrite and execute managed RAM, check narrow alias authority and final disposal, while a reused device slot cannot authorize unrelated backing. Every prior marker remains required. Three native executions pass four original contracts with complete signed source and artifact checks; the ordinary exec-successor VM passes the full 73-component graph and original 120-second limit. Image warnings and QEMU stderr are absent. [Manual validation](https://git.erikinkinen.fi/erix/docs/commit/155b2a0cd2771cb45fa881155baf2cd0f1d1db27) passes 45 tests, 2,433 pages and 450,954 word bounds; both changed pages are reviewed with no final warnings or overflow. Static review covers 3,184 authored code files below 1,000 lines, 75 manifests, 259 exact Git pins and 174 direct missing_docs gates. Full semantic authority review remains open. [Older Integration CI 1705/1706](https://git.erikinkinen.fi/erix/integration/issues/73) has eleven real ext4 timeouts across eight scenarios, with complete retained logs and no accepted rerun. Their root cause and correction remain unresolved. Publication CI: Kernel [642](https://git.erikinkinen.fi/erix/kernel/actions/runs/642)/[643](https://git.erikinkinen.fi/erix/kernel/actions/runs/643) and Docs [1013](https://git.erikinkinen.fi/erix/docs/actions/runs/1013)/[1014](https://git.erikinkinen.fi/erix/docs/actions/runs/1014) pass. Each pair has four complete original logs: Kernel totals 790,650 bytes with 766/790 tests and zero warning candidates; Docs totals 775,150 bytes with 45 tests, 2,433 pages and zero final warnings or overflow. Retain the original 35/1/0 LaTeX warning convergence. Integration [1725](https://git.erikinkinen.fi/erix/integration/actions/runs/1725)/[1726](https://git.erikinkinen.fi/erix/integration/actions/runs/1726) remains queued and receives no completed CI acceptance. The separate older ext4 deadline report remains open. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Complete POSIX protection support, Process endpoint scope, independent hardware roots, complete authority cleanup and measured startup improvement remain open. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven. VSpace ownership preparation — 22 September 2026: Live VSpace records and production mapping tables are non-cloneable. Test observations contain descriptive metadata, synthetic selectors use independent tables, and leaf-encoder checks borrow live mappings under the record lock. Selectors accept only the mapping table they consume. Current grants, backing custody, first-match ordering, reference scans and hint visit-count controls remain intact; the rights control now uses actual activation/deactivation. The former whole-record snapshot helpers are removed. Four strict Kernel configurations pass 766/790 tests with three existing ignored cases; thirteen native builds and binary Clippy profiles, formatting and host/native private rustdoc pass without warnings. All 172 Integration helpers pass. Three exact-source native executions pass the four maintained mapping, sparse, invocation and lifetime contracts. The ordinary exec-successor VM passes against all 73 components. Original 60/120-second guest limits, existing markers, exact component signatures and retained packaged artifacts remain required; image warnings and QEMU stderr are absent. No startup speedup or independent hardware-root acceptance is inferred. The [Kernel implementation](https://git.erikinkinen.fi/erix/kernel/commit/fa9491c65d173fa618c4c0ad241a5c4fe93d28e2) and [Integration source selection](https://git.erikinkinen.fi/erix/integration/commit/c17d8f1f18f55c0d159a80772ab8e5bbad8d7f04) are published with [Kernel validation evidence](https://git.erikinkinen.fi/erix/kernel/commit/14e38ec244976759214a5421c659de9b6f27beaf) and [Integration validation evidence](https://git.erikinkinen.fi/erix/integration/commit/29d778de650ba665b1ad9f143c12ef22baf62cbc). Continue under [owned-root design 22](https://git.erikinkinen.fi/erix/kernel/issues/22), [Kernel PR 3](https://git.erikinkinen.fi/erix/kernel/pulls/3) and [Integration PR 12](https://git.erikinkinen.fi/erix/integration/pulls/12). Publication CI: Kernel [644](https://git.erikinkinen.fi/erix/kernel/actions/runs/644)/[645](https://git.erikinkinen.fi/erix/kernel/actions/runs/645) pass with four complete original logs (790,604 bytes), 766/790 tests and zero warning candidates. Integration [1727](https://git.erikinkinen.fi/erix/integration/actions/runs/1727)/[1728](https://git.erikinkinen.fi/erix/integration/actions/runs/1728) remains queued and has no completed acceptance; earlier ext4 deadlines remain tracked in [Integration report 73](https://git.erikinkinen.fi/erix/integration/issues/73). Complete authority cleanup, external toolchain rebuilding within EriX and both full guest build generations remain open. Canonical acceptance remains 15/460 leaves (3.48% weighted). Native occupancy diagnostic regression — 22 September 2026: [the original failure](https://git.erikinkinen.fi/erix/kernel/issues/28) is retained with exact signed source and packaged-ELF identity. The fixture maps a Kernel heap VA that the correct ordinary-domain guard rejects on the native upper-half heap. Host allocator addresses did not expose the mismatch. The correction must preserve the guard, 64-page/alias/hole/byte/cleanup controls and both maintained VM deadlines. The report was subsequently resolved by the verified recovery below. No canonical acceptance leaf closes. Managed-frame diagnostic recovery — 22 September 2026: [Kernel report 28](https://git.erikinkinen.fi/erix/kernel/issues/28) is resolved by the [signed correction](https://git.erikinkinen.fi/erix/kernel/commit/bc49d6da2684dae6073a03c422e0ea2265d03f31) and [coordinated catalog](https://git.erikinkinen.fi/erix/integration/commit/69a1303d848d629efebcc532fff73457c3ab834f). The diagnostic admits an initially empty lower-half window while preserving the ordinary-domain guard and all 64-page, alias, hole, physical-byte and cleanup controls. The unnecessary heap allocation and raw-pointer cleanup state are removed, with expanded inline rustdoc. Four strict 766/790-test configurations, fourteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. All 172 Integration helpers pass. Both maintained allocator scenarios pass independently with their original 60/120-second deadlines and complete markers; exact signed source and retained packaged-ELF checks pass. The ordinary exec-successor VM also passes against all 73 components. Image warnings and QEMU stderr are absent. The original failed native image remains retained; no unchanged rerun is used as the correction. Static review still covers 3,186 code files below 1,000 lines, 75 manifests, 259 exact Git pins, 174 direct missing_docs gates and 93 conventional crate roots. Full semantic authority and inline-documentation review remain open. Older original Integration [1707](https://git.erikinkinen.fi/erix/integration/actions/runs/1707)/[1708](https://git.erikinkinen.fi/erix/integration/actions/runs/1708) both pass all 489 VM scenarios, Rust 320/321 and Markdown; six complete logs total 26,966,330 bytes with zero warning candidates. Publication CI: Kernel [646](https://git.erikinkinen.fi/erix/kernel/actions/runs/646)/[647](https://git.erikinkinen.fi/erix/kernel/actions/runs/647) pass with four complete original logs (790,634 bytes), 766/790 tests and zero warning candidates. Integration [1729](https://git.erikinkinen.fi/erix/integration/actions/runs/1729)/[1730](https://git.erikinkinen.fi/erix/integration/actions/runs/1730) remains queued and has no completed acceptance; [earlier ext4 CI deadline failures](https://git.erikinkinen.fi/erix/integration/issues/73) remain unresolved. The separate supervisor physical-access window and independent hardware roots remain implementation work. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven. Supervisor physical-access window — 22 September 2026: the [signed Kernel implementation](https://git.erikinkinen.fi/erix/kernel/commit/046951899b8064be1cc90667a73e5abd2faa51ec) shares one restoring supervisor scratch transaction between frame scrubbing and physical mapping-byte copies. Caller backing custody and page-table/interrupt custody remain live through byte access, exact leaf restoration and local invalidation. Scratch is released afterward; read aliases clear the write bit and all temporary aliases clear user access and set NX. The unreachable raw-VA fallback is removed, and complete preflight rejects missing or ambiguous backing metadata before any range effects. No new userspace operation or capability grant is introduced. This is preparatory work for [owned address spaces](https://git.erikinkinen.fi/erix/kernel/issues/22); independent roots and their switching/reclamation proof remain open. Eight added host controls cover geometry, permissions, preparation and partial-effect failures, restoration/release ordering, and malformed later-page metadata without partial reads or writes. Four strict host configurations pass 774/798 tests with three existing ignored cases. Fourteen native builds and binary Clippy profiles, formatting and host/native private rustdoc pass without warnings. The [coordinated Integration catalog](https://git.erikinkinen.fi/erix/integration/commit/4fe89e021e08e45e3a9ecb1c939aba03f90e5fb1) passes all 172 maintained helpers; its exact marker expectation is updated alongside the strengthened scenarios. Unchanged orchestration and profiler sources retain strict validation. Six native executions satisfy seven maintained scenario contracts. Both allocator scenarios require the new same-VA/different-backing byte-and-leaf proof after complete cleanup, retaining every preceding marker and the original 60/120-second deadlines. Three further executions satisfy mapping, sparse, owned-invocation and lifetime contracts. The ordinary exec-successor VM passes against all 73 components. Exact original signed source, retained artifacts and packaged Kernel matches are verified; no image warnings or QEMU stderr were observed. These checks establish no performance improvement. The [technical manual](https://git.erikinkinen.fi/erix/docs/commit/589449e4172b48e31a889c82addc83096a94e02d) documents backing and scratch custody; all 45 document tests and the complete manual build pass without final warnings. Static checks cover 3,190 authored code files below 1,000 lines, 75 manifests, 259 exact Git pins, 174 direct missing_docs gates and 93 conventional crate roots. Complete semantic authority and inline-documentation review remain open. Publication CI: Kernel [648](https://git.erikinkinen.fi/erix/kernel/actions/runs/648)/[649](https://git.erikinkinen.fi/erix/kernel/actions/runs/649) and Docs [1015](https://git.erikinkinen.fi/erix/docs/actions/runs/1015)/[1016](https://git.erikinkinen.fi/erix/docs/actions/runs/1016) pass. Eight complete original logs (1,572,758 bytes) confirm Kernel 774/798 tests, 45 document tests and the 2,433-page manual. Initial TeX reference warnings resolve through normal multipass generation; final passes are clean. Integration [1731](https://git.erikinkinen.fi/erix/integration/actions/runs/1731)/[1732](https://git.erikinkinen.fi/erix/integration/actions/runs/1732) remains queued and has no completed acceptance. [Earlier ext4 CI deadline failures](https://git.erikinkinen.fi/erix/integration/issues/73) remain unresolved. Canonical acceptance remains 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and its runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven. Owned supervisor baseline — 22 September 2026: the [signed Kernel implementation](https://git.erikinkinen.fi/erix/kernel/commit/0f5049592f7801b2a2d92b1290fdcc655952f72f) captures and verifies independently allocated supervisor tables before root VSpace creation, Rootd preparation and RAM seeding. Each copied page has one typed aligned Box owner before a parent references it; the recursive entry selects the copied root. Source boot/AP tables and mapped backing retain separate custody. User leaves, malformed geometry and invalid recursive identity are refused. Leaf permissions, cache policy and huge-page sizes are preserved; newly owned table branches use WriteBack and clear USER. Failed construction releases all unpublished allocations. This replaces a raw-pointer table-storage owner with shared typed storage and adds no unsafe Send/Sync implementation or userspace operation. Eleven new host controls cover independent storage, allocation/read failures, invalid translation geometry, user leaves, recursive and huge-page errors, source-permission drift, retained owner links and table counts beyond the unrelated 64-page batch size. Four strict host configurations pass 785/809 tests with three existing ignored cases; fourteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. The [coordinated catalog](https://git.erikinkinen.fi/erix/integration/commit/122a3d77f7f879c32eba45ccdf2eba2fd9f8d3db) passes all 172 maintained helpers. Both allocator scenarios require successful baseline capture before their original marker sequence, with capability grants and original 60/120-second deadlines preserved. Six native executions satisfy seven maintained contracts: both allocator scenarios, mapping and sparse checks sharing identical runtime settings, owned invocation, lifetime revocation and ordinary exec-successor across all 73 components. Exact signed source and retained packaged artifacts are verified; no image warnings or QEMU stderr were observed. The [technical manual](https://git.erikinkinen.fi/erix/docs/commit/18b8b7160fc2f058f059ea3c41adeca5846f9f69) specifies the custody boundary and passes 45 tests, complete 2,433-page generation, all 451,287 word bounds and changed-page visual review without final warnings or overflow. Static audits cover 3,194 authored code files below 1,000 lines, 75 manifests, 259 exact Git pins, 174 direct missing_docs gates and 93 conventional crate roots. Publication CI: original Kernel [push 650](https://git.erikinkinen.fi/erix/kernel/actions/runs/650) passes and [PR 651](https://git.erikinkinen.fi/erix/kernel/actions/runs/651) retains the host fixture failure. [Regression 29](https://git.erikinkinen.fi/erix/kernel/issues/29) is resolved by [signed Kernel `12184850cd73`](https://git.erikinkinen.fi/erix/kernel/commit/12184850cd73fff066abcb7f97039a0828b2a928): a deterministic private predecessor reproduces the original defect, and the corrected fixture passes the complete local matrix and [push CI 652](https://git.erikinkinen.fi/erix/kernel/actions/runs/652)/[PR CI 653](https://git.erikinkinen.fi/erix/kernel/actions/runs/653). Four complete corrected CI logs total 807,886 bytes with zero warning candidates. Only host tests and roadmap change; validated production sources and all catalog selections remain unchanged. Docs [1017](https://git.erikinkinen.fi/erix/docs/actions/runs/1017)/[1018](https://git.erikinkinen.fi/erix/docs/actions/runs/1018) pass with four complete logs (775,122 bytes), 45 tests and the 2,433-page manual. Initial TeX reference warnings resolve before clean final passes. Integration [1733](https://git.erikinkinen.fi/erix/integration/actions/runs/1733)/[1734](https://git.erikinkinen.fi/erix/integration/actions/runs/1734) remains queued at the latest retained observation and has no completed acceptance. [Earlier ext4 CI deadline failures](https://git.erikinkinen.fi/erix/integration/issues/73) remain unresolved. The retained baseline is a construction prerequisite for [owned address spaces](https://git.erikinkinen.fi/erix/kernel/issues/22). Per-VSpace population, CR3 activation, invalidation and live-root reclamation remain open, and no speedup is claimed. Full semantic authority and inline-documentation review also remain open. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and completing both full EriX guest-build generations remain mandatory and unproven. Huge-leaf geometry correction — 22 September 2026: [the bug report](https://git.erikinkinen.fi/erix/kernel/issues/30) preserves four original host failures and one passing WriteBack control. The [signed correction](https://git.erikinkinen.fi/erix/kernel/commit/4f9cfcaeb63e9080f6d6a3e9fd190e6cb288c6fc) separates PAT from physical address bits, preserves permissions/cache indices across both huge splits, and gives newly allocated tables WriteBack policy. Scalar and batched translation, split preparation, snapshots and baseline validation share the documented geometry. No new userspace authority, original native exploit or universal boot failure is claimed. Four strict Kernel configurations pass 796/820 tests with three existing ignored cases, including eleven new controls. Sixteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. The [catalog](https://git.erikinkinen.fi/erix/integration/commit/ccc32eed0b4029a1ef82279c665811692c859985) passes all 172 maintained helpers. Six native executions satisfy seven original contracts: mapping and sparse, lifetime, invocation, both allocator checks and ordinary exec-successor across all 73 components. The new native witness verifies real 2 MiB PAT translation, splitting and complete restoration; host controls additionally cover 1 GiB. Exact source signatures and retained artifacts pass, with no image warnings or QEMU stderr. The [manual](https://git.erikinkinen.fi/erix/docs/commit/587a280f59e55598e3a26b788d589955ebb84212) passes 45 tests, 2,433 pages and changed-page visual review without final warnings or overflow. Publication CI: Kernel [654](https://git.erikinkinen.fi/erix/kernel/actions/runs/654)/[655](https://git.erikinkinen.fi/erix/kernel/actions/runs/655) and Docs [1019](https://git.erikinkinen.fi/erix/docs/actions/runs/1019)/[1020](https://git.erikinkinen.fi/erix/docs/actions/runs/1020) pass. Eight complete original logs (1,592,794 bytes) confirm Kernel 796/820 tests, 45 document tests and the 2,433-page manual. All 74 initial TeX reference warning candidates precede clean final passes. Integration [1735](https://git.erikinkinen.fi/erix/integration/actions/runs/1735)/[1736](https://git.erikinkinen.fi/erix/integration/actions/runs/1736) remains queued and has no completed acceptance. Earlier [ext4 CI deadline failures](https://git.erikinkinen.fi/erix/integration/issues/73) remain unresolved. Static audits cover 3,197 authored code files below 1,000 lines, 75 manifests, 259 Git pins and 174 direct missing_docs gates. Private root population, CR3 activation, live-root reclamation and full semantic authority/documentation review remain open; no speedup is claimed. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and both full EriX guest-build generations remain mandatory and unproven. First-start register custody — 22 September 2026: [the stack-domain bug report](https://git.erikinkinen.fi/erix/kernel/issues/31) preserves three original host failures and one valid-stack control at unchanged production sources; the same four controls pass against the [signed correction](https://git.erikinkinen.fi/erix/kernel/commit/5bad7a1285089a20ee6425e0335ed3a5e96f7e29). Ordinary anonymous stack materialization now rejects addresses outside the existing user domain, and direct bootstrap writes require retained writable registered backing. Initial registers have Kernel-owned storage; stack preparation preserves the synthetic return slot, complete admission, startup arguments and rollback. The obsolete saved-frame user overlay and directory scan are removed. Complete external start-context admission and the separate bootstrap code/stack overlay remain distinct work. Four strict Kernel configurations pass 807/831 tests with three existing ignored cases, including eleven new controls. Sixteen native builds and binary Clippy profiles, formatting and private rustdoc pass without warnings. The [catalog](https://git.erikinkinen.fi/erix/integration/commit/483da1e42cbdc79b56dea6fb0806980a128787b8) passes all 172 maintained helpers. Six native executions satisfy seven original contracts: lifetime, invocation, mapping and sparse, both allocator checks and ordinary exec-successor across all 73 components. The new witness checks all original initial register words after two real user stack mutations and before ordinary syscall capture. Exact source signatures and retained artifacts pass, with no image warnings or QEMU stderr. The [manual](https://git.erikinkinen.fi/erix/docs/commit/57bdb2811e2a90d0121ff6de6ab58ff797806b78) passes 45 tests, 2,433 pages and four changed-page visual reviews without final warnings or overflow. Publication CI: Kernel [656](https://git.erikinkinen.fi/erix/kernel/actions/runs/656)/[657](https://git.erikinkinen.fi/erix/kernel/actions/runs/657) and Docs [1021](https://git.erikinkinen.fi/erix/docs/actions/runs/1021)/[1022](https://git.erikinkinen.fi/erix/docs/actions/runs/1022) pass. Eight complete original logs (1,600,791 bytes) confirm Kernel 807/831 tests, 45 document tests and the 2,433-page manual. All 74 initial TeX reference warning candidates precede clean final passes. Integration [1737](https://git.erikinkinen.fi/erix/integration/actions/runs/1737)/[1738](https://git.erikinkinen.fi/erix/integration/actions/runs/1738) remains queued and has no completed acceptance. Earlier [ext4 CI deadline failures](https://git.erikinkinen.fi/erix/integration/issues/73) remain unresolved. Static audits cover 3,201 authored code files below 1,000 lines, 75 manifests, 259 Git pins and 174 direct missing_docs gates. Private root population, CR3 activation, CPU residency, live-root reclamation and complete semantic authority/documentation review remain open; no speedup is claimed. Canonical acceptance stays 15/460 leaves, weighted 3.48%. Rebuilding the external Rust/LLVM toolchain and runtime inside EriX and both full EriX guest-build generations remain mandatory and unproven.
refactor: Separate endpoint transport and scheduling tests
Some checks failed
CI / markdown (push) Successful in 13s
CI / test (push) Successful in 2m22s
CI / markdown (pull_request) Successful in 10s
CI / test (pull_request) Failing after 1m31s
ec7b63d11c
Move receiver-selection and wake-order regressions into a thematic file while retaining the existing test module, names, serialization guard and test bodies. Document each invariant and keep authored code below one thousand lines.

Default and all-feature suites pass 585 and 609 tests. Formatting, strict Clippy, warning-denied host and bare-metal builds, private rustdoc and coherent SMP profiles pass. Three existing performance experiments remain explicitly ignored; runtime behavior and dependency pins are unchanged.
fix: Isolate shared kernel test state
All checks were successful
CI / markdown (push) Successful in 17s
CI / markdown (pull_request) Successful in 17s
CI / test (pull_request) Successful in 2m27s
CI / test (push) Successful in 2m28s
c20dfa0462
Guard complete interrupt fixture transactions so another test cannot reset pending events. Reset current TCB context before rebuilding dynamic-mapping root objects, and install the new root capability through its explicit CSpace identity.

The predecessor-context regression reproduces the CspaceSlotMissing CI failure with one test thread before the fixture fix and passes afterward. Exact-source default and all-feature suites pass 586 and 610 tests with three existing performance experiments ignored; strict Clippy, formatting, doctests and retained warning-denied host and bare-metal checks pass. Production kernel behavior and dependency pins are unchanged. Refs #4 and #5.
erikinkinen changed title from WIP: Separate endpoint transport and receiver-scheduling tests to WIP: Stabilize kernel test isolation and split endpoint fixtures 2026-09-12 09:03:23 +02:00
fix: Reset CSpace fixtures before using current task context
All checks were successful
CI / markdown (push) Successful in 5s
CI / markdown (pull_request) Successful in 6s
CI / test (pull_request) Successful in 1m39s
CI / test (push) Successful in 1m39s
0911b10fd6
Reproduce private-CSpace predecessor state directly in the existing root policy,
copy/move and attenuation tests. Clear the previous TCB before rebuilding root
CSpace and verify the resulting route, preserving every original assertion.
This removes sequential fixture leakage without changing production behavior
or globally serializing the test runner.

All three regressions fail before the reset and pass afterward. Strict default
and all-feature checks pass with 586 and 610 unit tests; three existing
performance experiments remain ignored. Published-head CI remains required.
test: Measure managed-frame lookup work across growing extents
All checks were successful
CI / markdown (push) Successful in 4s
CI / markdown (pull_request) Successful in 5s
CI / test (pull_request) Successful in 2m6s
CI / test (push) Successful in 2m6s
fec1113a25
Count real selector visits across chunk boundaries and repeated fresh page
insertions, while checking results against independent full scans. Preserve
last-alias occupancy, hole reuse and first-address precedence through table
mutation. Production code and authority checks remain unchanged.

Strict exact-source validation passes 589 default and 613 all-feature tests
without warnings. These operation counts establish a baseline for a later
reviewed optimization, not elapsed guest performance or CPU attribution.
erikinkinen changed title from WIP: Stabilize kernel test isolation and split endpoint fixtures to WIP: Stabilize kernel tests and measure mapping lookup work 2026-09-12 10:37:13 +02:00
perf: Reuse validated managed-frame lookup observations
All checks were successful
CI / markdown (pull_request) Successful in 16s
CI / markdown (push) Successful in 16s
CI / test (push) Successful in 3m6s
CI / test (pull_request) Successful in 3m8s
c94e9f6f50
Retain complete descriptive frame geometry and occupancy in the mapping table after a successful map. Reuse those observations only for a proved fresh address above the table maximum or the last freshly appended first match; invalidate them before uncontrolled mutation and keep every capability, identity, rights, overlap, reservation, hardware and rollback guard in its original order.

Actual map-path differential tests reduce selector visits for 2048 fresh pages across 32 extents from the preserved 2096128-row baseline to 31744. Immediate rights sealing still reads the live mapping. The optional hint adds 64 bytes per table without allocation or authority; extent changes and arbitrary address order retain fallback costs.

Strict exact-source validation passes 598 default and 622 all-feature tests, with three existing ignored experiments, plus host/freestanding builds, Clippy, rustdoc and formatting without warnings. New tests cover mutation, alias removal, identity/rights changes and failed preparation. Comparable known-toolchain VM timing remains required before claiming a startup improvement.
erikinkinen changed title from WIP: Stabilize kernel tests and measure mapping lookup work to WIP: Reduce managed-frame scans and stabilize kernel tests 2026-09-12 11:01:24 +02:00
ci: Preserve original Cargo source identities during setup
All checks were successful
CI / markdown (push) Successful in 22s
CI / markdown (pull_request) Successful in 20s
CI / test (push) Successful in 3m0s
CI / test (pull_request) Successful in 2m59s
eda85a9553
Select the published Integration helper that resolves pinned original Git objects through local transport while preserving manifest and lock identities. The workflow retains all existing compiler and VM gates.

Cold and locked setup, original source verification, formatting, strict Clippy, and 598 default and 622 all-feature host tests pass without warnings; three existing host cost experiments remain ignored.
perf: Avoid revoker snapshots and stabilize optimized tests
All checks were successful
CI / markdown (pull_request) Successful in 3s
CI / markdown (push) Successful in 3s
CI / test (push) Successful in 1m53s
CI / test (pull_request) Successful in 1m53s
a498af7c65
Read only the unique revocation record ID during handoff, preserving the
owned descendant list, exact rights and existing rollback. A real custody
regression measures no allocations after destination storage is prepared;
the original lookup allocates a full lineage copy even on rejected moves.

Strict release validation exposed overlapping host fixture stack pages.
Give the affected scheduling fixtures separately owned aligned stacks,
retain their byte and authority assertions, and check receive buffers are
outside modeled mappings. Track the regression in kernel issue 6 and run
optimized default/all-feature tests in CI.

The 38-command strict host/target matrix passes 598/622 unit tests and one
allocation regression per dev/release selection. Three existing experiments
remain ignored. Both optimized CI commands also pass with ordinary harness
concurrency. No public API, dependency pin or native lifecycle policy changes;
independent realm custody and guest self-hosting remain separate work.
erikinkinen changed title from WIP: Reduce managed-frame scans and stabilize kernel tests to WIP: Reduce kernel handoff allocations and mapping scans 2026-09-14 08:40:55 +02:00
feat: Bind local revokers to native process lifetimes
Some checks failed
CI / markdown (pull_request) Successful in 3s
CI / markdown (push) Successful in 3s
CI / test (pull_request) Failing after 54s
CI / test (push) Successful in 1m39s
7eb9bc32a0
Implement the consumed local SEND-branch custody contract from Kernel issue 7.
Validate the exact current process generation and actual local MANAGE guard,
retain the existing lineage without allocation, and reclaim empty deposited
records without leaving a capability or withdrawal handle.

Preflight exit and kill before changing process state, then remove descendants
before publishing terminal events. Preserve live ownership on refusal and the
actual remaining guard plus first unexpected removal error before fail-stop.
Alias removal does not acknowledge pending operations or provider cleanup.

Pin the coherent signed IPC/capability graph. Ten new host regressions and the
38-command strict matrix pass, including 608/632 units and twelve freestanding
builds. Measured deposit and prepared terminal cleanup allocate nothing at
0/1/16/128 descendants in all four host selections. Update component contracts;
matching native VM, manual/API and producer acceptance remain required.
fix: Reset allocator fixture process attribution
All checks were successful
CI / markdown (pull_request) Successful in 2s
CI / markdown (push) Successful in 2s
CI / test (push) Successful in 1m52s
CI / test (pull_request) Successful in 1m53s
90fb945e29
Clear previous current-TCB attribution before constructing each root allocator
fixture. The shared test lock excludes concurrent mutation but cannot reset a
preceding private process, which caused order-dependent CspaceSlotMissing seed
failures in PR CI 523 while the same-head push passed.

Add a deterministic private-process predecessor regression, share complete
fixture setup, preserve existing assertions and extract the tests from the
973-line allocator source into a documented thematic module. Production
allocator source before the test module is byte-identical.

The new regression fails with the original initialization and passes after
the correction. All four strict host selections pass with ordinary harness
concurrency:609/633 units plus the allocation regression, with three existing
ignored experiments. Retain the original failures in Kernel issue 8; the new
checkpoint still requires its own CI and the lifetime feature requires VM and
manual acceptance.
erikinkinen changed title from WIP: Reduce kernel handoff allocations and mapping scans to WIP: Add native lifetime revocation and reduce handoff allocations 2026-09-14 09:45:19 +02:00
test: Exercise lifetime custody through native syscall entry
All checks were successful
CI / markdown (pull_request) Successful in 2s
CI / markdown (push) Successful in 3s
CI / test (push) Successful in 1m56s
CI / test (pull_request) Successful in 1m56s
213c4606b2
Add an opt-in isolated diagnostic with two private CPL3 owners and an
independent observer. Original user programs check consumed custody and
refusal before ordinary exit and synchronous Process-endpoint kill. Observe
production results and actual cross-CSpace cleanup without substituting
return values, scheduler choices or retirement. Remove temporary setup
handles before user entry and retain only SEND on the observer control route.

Strict default/all-feature host and target checks pass in development and
release, with 609/633 unit tests and the standalone regression. Eight native,
normal and runtime builds pass. Symbol checks exclude the fixture from normal
kernels; the final native authority reduction passes target checks in both
profiles. Integration runner and actual native VM acceptance remain pending.
erikinkinen changed title from WIP: Add native lifetime revocation and reduce handoff allocations to WIP: Add lifetime revocation and native custody validation 2026-09-14 10:41:15 +02:00
fix: Report native lifetime markers through explicit entry callback
All checks were successful
CI / markdown (push) Successful in 3s
CI / markdown (pull_request) Successful in 3s
CI / test (pull_request) Successful in 2m3s
CI / test (push) Successful in 2m4s
03e13a784b
The isolated lifetime diagnostic used a Rootd smoke reporter that discards
output when its unrelated feature is disabled. Pass a kernel-owned function
pointer accepting only begin and complete events from the entry point.
Preserve every native assertion, terminal cleanup and scheduling operation;
add no userspace route or service feature. Normal kernels omit the fixture.

Formatting, strict default/all-feature host and freestanding checks, unit
and documentation tests pass in development and release. Native and normal
symbol checks pass in both profiles. A matching VM is still required.
Tracks kernel issue 9 and the native lifetime contract in issue 7.
Bind the existing RDI, RSI and RDX entry values directly as assembly inputs.
Remove sequential unconstrained moves that overwrite the third value in the
observed Rootd image. Preserve the original IPC and capability dependencies,
IRET frame, segment setup and authority assignments. Track kernel issue 10.

Carry the previously accepted aligned fixture stacks and thematic scheduling
test split from a498af7c65 after the release
matrix reproduced the two receive failures in kernel issue 6. Keep all byte
and ownership assertions. No production IPC behavior changes are included.

Formatting, strict default/all host and freestanding checks, unit and doc
tests pass in development and release with 585/609 units and three existing
ignored experiments. Six freestanding kernel builds pass without warnings.
Matching native VM validation remains required after source publication.
fix: Preserve native entry arguments across compiler register allocation
Some checks failed
CI / markdown (pull_request) Successful in 3s
CI / markdown (push) Successful in 3s
CI / test (push) Failing after 1m12s
CI / test (pull_request) Successful in 2m8s
5acfa6335d
Carry the signed original-dependency backport into the existing feature
history without rewriting either source graph. Bind RDI, RSI and RDX as
explicit inputs and remove the sequential moves that overwrite Rootd's
third argument. Preserve the IRET frame, segments and capability inventory.

The native lifetime fixture now checks three distinct 64-bit entry values
before its first syscall. A mismatch faults before any success witness;
all existing custody, exit, kill and exact terminal-event checks remain.
The already accepted stack fixture fixes are shared with the maintenance
ancestor, whose product graph retains its original IPC and capability ABI.

Full development/release default/all host and freestanding strict checks,
unit/doc tests and eight coherent kernel builds pass without warnings.
Normal images exclude the native fixture. Matching native VMs and CI remain
required at this checkpoint. Tracks kernel issues 6 and 10.
Reset TCB attribution before replacing the synthetic CSpace and endpoint
tables. A preceding private process otherwise sends local endpoint setup
into a removed CSpace. Share the explicit fixture initializer across all
five service cases and preserve every existing response assertion.

A deterministic private-process predecessor test fails against the old
initializer and passes after the correction. Full development/release
strict default/all host matrices pass for both source graphs with ordinary
harness concurrency. Production code, ABI and native images are unaffected.
Tracks the additional fixture failures from Kernel CI 530 under issue 8.
fix: Initialize synthetic service fixtures before local endpoint setup
All checks were successful
CI / markdown (push) Successful in 5s
CI / markdown (pull_request) Successful in 5s
CI / test (push) Successful in 2m7s
CI / test (pull_request) Successful in 2m8s
e6bea362f9
Reset TCB attribution before replacing the synthetic CSpace and endpoint
tables. A preceding private process otherwise sends local endpoint setup
into a removed CSpace. Share the explicit fixture initializer across all
five service cases and preserve every existing response assertion.

A deterministic private-process predecessor test fails against the old
initializer and passes after the correction. Full development/release
strict default/all host matrices pass for both source graphs with ordinary
harness concurrency. Production code, ABI and native images are unaffected.
Tracks the additional fixture failures from Kernel CI 530 under issue 8.
erikinkinen changed title from WIP: Add lifetime revocation and native custody validation to WIP: Harden lifetime custody and preserve native entry arguments 2026-09-14 13:41:07 +02:00
perf: Reuse empty CSpaces without scanning live records
All checks were successful
CI / markdown (push) Successful in 8s
CI / markdown (pull_request) Successful in 8s
CI / test (pull_request) Successful in 4m41s
CI / test (push) Successful in 4m43s
e5198f8f3c
Reserve record storage before publishing a one-based identity and retain
vacant entries in an intrusive free chain. Check emptiness and publish
retirement under the same lock, preserving root protection and nonwrapping
ID exhaustion. A failed heap reservation consumes no identity. Reused
records contain no old slots and IDs confer no authority or generation.
Split storage and policy tests into cohesive documented modules; share the
thread-local allocation observer with existing lifetime regression tests.

The original signed library fails actual allocation rejection with ID 5
instead of 4. Full strict host/target development/release matrices and all
eight freestanding builds pass. The same three-sample host profile reduces
32768 reuse cycles at 32768 retained spaces from 643.094176 ms to 1.172569 ms.
No native performance claim is made. Kernel issue 12 tracks the defect;
native VM and remote CI validation follow this signed checkpoint.
Carry the same reviewed allocator correction with the existing ordinary
IPC and capability dependency objects. Reserve before ID publication and
reuse empty destroyed records without scanning live CSpaces. Preserve
root protection, capability cleanup and nonwrapping identity exhaustion.
Carry the accepted private-predecessor CSpace fixture controls when
splitting policy tests from storage, plus the real allocation-failure test.

Default/all development/release strict host and freestanding matrices pass,
including actual reservation failure and allocation-free reuse. This signed
maintenance ancestor will be carried through feature history and selected
by ordinary image catalogs before native Rootd validation. Kernel issue 12
tracks the allocation defect; no dependency replacement or ABI migration.
perf: Carry the CSpace allocator correction through both source graphs
All checks were successful
CI / markdown (push) Successful in 8s
CI / markdown (pull_request) Successful in 8s
CI / test (push) Successful in 4m9s
CI / test (pull_request) Successful in 4m12s
ae0f3ab918
Preserve the original signed ordinary-dependency maintenance ancestor in
feature history so image catalogs can select the same allocator correction
without replacing Git objects or migrating their IPC ABI. The feature tree
is byte-identical to the validated e5198f8f checkpoint: 613/637 units plus
two standalone tests, strict host/target matrices, native lifetime VM and
green CI 534/535. The maintenance matrix passes independently with its
original dependency graph. Ordinary native VM and final CI follow the
coherent catalog update; Kernel issue 12 remains open until evidence lands.
erikinkinen changed title from WIP: Harden lifetime custody and preserve native entry arguments to WIP: Harden lifetime custody and scale CSpace allocation 2026-09-14 14:52:31 +02:00
refactor: Require constructed endpoint identity before alias transfer
All checks were successful
CI / markdown (push) Successful in 4s
CI / markdown (pull_request) Successful in 4s
CI / test (push) Successful in 2m11s
CI / test (pull_request) Successful in 2m14s
fc3e1d5ea0
Remove implicit generic endpoint construction from binding copies. Validate
the actual source object before destination installation and preserve the
root-only retirement endpoint restriction. Bootstrap and test producers
construct their intended endpoint explicitly without widening source rights.

The original object control materializes a missing endpoint and fails the
new invariant; the corrected control preserves both CSpace inventories and
then verifies exact identity after explicit construction. Strict default/all
development/release host and target matrices and all eight builds pass.

Document the proposed owned-invocation state/custody contract and remaining
type-specific reservation obligations under Kernel issues 2 and 11. No
opcode, wire record or escrow representation is assigned. Native rollout
and CI follow this signed checkpoint; whole-phase acceptance remains open.
Carry the reviewed endpoint-copy source delta while preserving the original
ordinary IPC and capability dependencies. Refuse unbound metadata before
destination mutation and explicitly construct fixture endpoints with their
intended kind and original rights. No wire record or syscall ABI changes.

The independent strict development/release default/all matrix passes
590/614 units plus one standalone test, with three existing ignores and
six warning-denied freestanding builds. Keep the ordinary graph reachable
through signed feature history before coherent catalog and VM validation.
Kernel issues 2 and 11 track the audit and proposed invocation custody.
refactor: Carry explicit endpoint construction through both source graphs
All checks were successful
CI / markdown (pull_request) Successful in 5s
CI / markdown (push) Successful in 5s
CI / test (push) Successful in 3m19s
CI / test (pull_request) Successful in 3m19s
f6489ff3f8
Preserve the signed ordinary-dependency ancestor in feature history so
image catalogs can select the endpoint identity correction without replacing
Git objects or migrating their IPC ABI. The feature tree remains identical
to the validated fc3e1d5e checkpoint. Strict host and target matrices pass
on both original graphs, including unbound-source inventory preservation.

Kernel CI 538/539 passes with zero warnings. Coherent catalog validation
and ordinary/native VMs follow this merge; the proposed owned invocation
transport and complete guest-build acceptance remain unimplemented.
erikinkinen changed title from WIP: Harden lifetime custody and scale CSpace allocation to WIP: Harden native lifetime and capability transfer 2026-09-14 15:41:40 +02:00
feat: Reserve capability transfer storage before native mutation
All checks were successful
CI / markdown (pull_request) Successful in 2s
CI / markdown (push) Successful in 2s
CI / test (push) Successful in 2m29s
CI / test (pull_request) Successful in 2m29s
d58efd8df1
Prepare complete destination slots, rollback records, typed object bindings
and every containing revocation lineage before changing batch ownership.
Count cumulative aliases of the same object, validate unique grant records
and retain existing BSP serialization through commit and rollback. Split
transaction mechanics into a documented module without changing the wire ABI.

Five real-object controls cover a 62-capability mixed batch, exact backing
and grant scope, nested ancestor revocation, duplicate/authority rejection,
actual allocation failure and allocation-free commit and rollback. All
strict default/all development/release matrices pass 619/643 units plus two
standalone tests, private rustdoc and eight warning-denied target builds.

Update architecture, roadmap and the owned-invocation design in issue 11.
Native rollout follows this signed checkpoint. Persistent invocation custody,
bootstrap-frame escrow eligibility and complete guest builds remain open.
Reserve complete destination, rollback, typed object binding and lineage
storage before native capability mutation. Carry the ID-only revocation
grant lookup without migrating the older binding representation or its
original IPC and capability dependencies. Five actual-object controls
exercise mixed batches, allocation rejection, exact identity, grant scope,
nested revocation and allocation-free commit and rollback.

Independent strict development/release default/all checks pass 595/619
units plus one standalone test, with three existing ignores and six
warning-denied freestanding builds. Kernel issue 11 tracks persistent
invocation custody, which remains unimplemented. Coherent VM validation
follows selection of these signed original source objects.
refactor: Carry transfer preparation through both source graphs
All checks were successful
CI / markdown (push) Successful in 3s
CI / markdown (pull_request) Successful in 3s
CI / test (pull_request) Successful in 2m4s
CI / test (push) Successful in 2m6s
e91f471987
Preserve the signed ordinary-dependency ancestor in feature history so
image catalogs can select cumulative native transfer preparation without
replacing Git objects or migrating their IPC ABI. The feature tree remains
identical to the validated d58efd8d checkpoint. Strict host and target
matrices pass on both original graphs, including actual allocation failure
and allocation-free mixed capability commit and rollback.

Coherent catalog validation and ordinary/native VMs follow this merge.
Kernel issue 11 tracks persistent owned invocation custody; that transport
and complete guest-build acceptance remain unimplemented.
feat: Own native invocation bytes and capability lifetimes
Some checks failed
CI / markdown (pull_request) Successful in 10s
CI / markdown (push) Successful in 12s
CI / test (pull_request) Failing after 2m10s
CI / test (push) Failing after 2m10s
b1b632446f
Add explicit receiver registration and kernel-native request/result custody
with actual process generations, private CSpaces and retained SEND lineage.
Reserve complete native transitions, retain exactly-once delivery receipts,
and separate caller release, server acknowledgment and application effects.
Accepted results survive ordinary server exit; revoked transport or payload
authority cannot be recreated by collection. Preserve admission order when
registry positions are reused, with the original failing draft control retained.

Twelve actual-object controls cover native mixed backing, scoped grants,
source reuse, allocation rejection, terminal transitions, carrier revocation
and allocation-free guard disposal. Strict default/all development/release
checks pass 631/655 units plus two standalone tests, with three existing
ignores and eight warning-denied freestanding builds. Architecture and the
focused custody design are updated alongside the technical manual.

Kernel issue 11 continues to track syscall wire adapters, actual CPL3 peers,
reachable backend disposal-failure coverage, sustained-workload profiling
and realm adoption. Existing CALL/RECV/REPLY semantics remain unchanged.
fix: Reset process attribution before transfer fixture setup
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / markdown (push) Successful in 9s
CI / test (pull_request) Successful in 4m51s
CI / test (push) Successful in 4m55s
2e4deb7351
Initialize the TCB table before replacing the CSpace table in four legacy
endpoint transfer fixtures. Each now follows an explicitly selected non-root
process, exposing the original order dependence without relying on a random
host-test schedule. Preserve all message, backpressure and capability assertions
in a separate thematic test module; production behavior is unchanged.

All four original controls fail and the corrected controls pass. Full strict
default/all development/release matrices pass 631/655 units and two standalone
tests, with three existing ignores and eight warning-free freestanding builds.
Update the roadmap and retain the original CI evidence in Kernel issue #13.
feat: Attest the submitting process in native deliveries
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / markdown (push) Successful in 12s
CI / test (push) Successful in 4m54s
CI / test (pull_request) Successful in 4m58s
69c5e1fe5f
Return the retained submitting process ID and staged generation with each
owned request delivery. Use the native process-creation identity domain,
independently of payload fields, receiving identity or matching numeric slots.
The metadata grants no authority or guarantee of later liveness; services
must correlate retained ownership and revalidate after blocking effects.

A real two-submitter control sends impersonating payloads through the same
carrier and verifies both origins and independent selector enforcement.
All 13 native controls and strict default/all development/release matrices
pass 632/656 units plus two standalone tests, with three existing ignores
and eight warning-free freestanding builds. Update the design and roadmap;
syscall wire adapters and owned CPL3 acceptance remain open.
feat: Add checked native invocation host workload
All checks were successful
CI / markdown (push) Successful in 6s
CI / markdown (pull_request) Successful in 6s
CI / test (pull_request) Successful in 3m20s
CI / test (push) Successful in 3m21s
6cb703e1ed
Measure queued and collected progress, descriptive reads, and complete native
request cycles using actual process and capability objects. Check authenticated
origin, exact payload authority, FIFO reuse, foreign selection, and final native
invocation disposal before emitting separate setup, operation, and cleanup times.
Keep the example outside freestanding images and preserve private helper scope.

Strict default/all development/release matrices pass 632/656 units plus three
standalone controls, with three existing ignores, private rustdoc, target Clippy,
and eight warning-free target builds. Document the host-only measurement contract;
measured optimization and userspace invocation adapters remain separate work.
perf: Reduce validated invocation lookup and settlement scans
All checks were successful
CI / markdown (push) Successful in 10s
CI / markdown (pull_request) Successful in 9s
CI / test (push) Successful in 4m28s
CI / test (pull_request) Successful in 4m27s
8349d68636
Retain only numeric carrier search hints, rechecking actual capability type,
rights, live endpoint identity and the exact binding on every use. Fall back
to the complete search after compaction or replacement and clear hints when
transport custody ends. No successful authorization or capability is cached.

Scan draining records once in increasing order with one lock per returned
owner. Preserve busy positions, the original pass boundary, allocation-free
stack custody and native disposal outside the registry lock.

Add real alias/rights/type/replacement and settlement ownership controls.
The full strict default/all development/release matrices pass 634/658 units
plus three standalone controls, private rustdoc, target Clippy and eight
warning-free freestanding builds. Signed paired host measurement and native
VM/CI validation remain separate gates; the syscall ABI is unchanged.
feat: Connect native invocation custody to immediate user packets
All checks were successful
CI / markdown (push) Successful in 6s
CI / markdown (pull_request) Successful in 6s
CI / test (pull_request) Successful in 4m15s
CI / test (push) Successful in 4m16s
b225144bbf
Add the shared owned syscall boundary with exact current-process identity,
fresh full-span mapping checks and one lifecycle exclusion interval. Copy
request/result inputs before return and preserve draining owner IDs on
failed ingress. Separate committed output from subsequent native cleanup.
Consume only the needed destination prefix and reuse shared descriptive
records instead of duplicating them in the kernel.

Add malformed, ownership, repeat-collection and real mapping controls. Add
an isolated three-process CPL3 fixture whose original instructions check
returned IDs, payloads, receipts, origin and server-exit result lifetime.
Hooks only observe ordinary dispatch and native state. Normal image symbol
checks prove both native fixtures absent.

Strict default/all development/release validation passes 642/666 tests with
three existing ignores, private rustdoc, target Clippy and ten warning-free
freestanding builds. Matching-image execution is tracked in Integration;
realm runtime and reachable backend disposal-failure coverage remain open.
test: Exercise owned invocation draining at CPL3
All checks were successful
CI / markdown (push) Successful in 9s
CI / markdown (pull_request) Successful in 9s
CI / test (pull_request) Successful in 4m24s
CI / test (push) Successful in 4m25s
5f497adaef
Extend the original three-process native fixture with a second owned
request and independently saved participant IDs. Refuse premature server
relinquishment, then require caller release to report draining while
preserving history. The exact server acknowledges its delivery, after
which the former caller ID must be absent. Keep the first capability-bearing
result alive across the actual server exit and complete its original checks.

Development/release native Clippy and fixture builds pass without warnings.
All hosted inputs remain byte-identical to the preceding full 642/666-test
matrix; the changed program subtree is excluded on hosted targets. Preserve
the initial matching-image pass and validate these additional native witnesses
through the coordinated Integration catalog before claiming acceptance.
erikinkinen changed title from WIP: Harden native lifetime and capability transfer to WIP: Implement owned invocation transport and native lifetime custody 2026-09-15 09:02:04 +02:00
feat: Constrain staged installation to the actual child grant
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / markdown (push) Successful in 12s
CI / test (push) Successful in 4m22s
CI / test (pull_request) Successful in 4m19s
ae8d6982cc
Add exact process and generation checks to held install-grant custody with
exact requested rights, including zero. Reuse native installation and source
revocation lineage without adding endpoint policy or target-selection authority.
Split the control dispatcher and installation implementation by responsibility.

Exercise actual moved grants, two staged children, rejection custody and
revocation in host controls. Extend the isolated lifetime CPL3 fixture with
real control requests, user-side reply checks and complete added-custody cleanup.

Default and all-feature development and release tests, strict host and native
Clippy, ten native builds, private rustdoc, formatting and Markdown checks pass.
Matching-image VM execution and coordinated Procd adoption remain required.
fix: Prepare local fixture custody after native process start
All checks were successful
CI / markdown (push) Successful in 4s
CI / markdown (pull_request) Successful in 4s
CI / test (pull_request) Successful in 3m4s
CI / test (push) Successful in 3m4s
60da5858d7
Delay observer selection until its code and stack are installed and the
ordinary start transition has completed. Selecting the Created record early
made it Running and caused the subsequent start to reject fixture setup.

Keep all thirteen real control calls and their exact negative, authority and
cleanup checks. Host inputs are unchanged from the full strict matrix; both
native profiles pass strict Clippy and warning-denied builds. Matching-image
VM execution remains required for this correction.
erikinkinen changed title from WIP: Implement owned invocation transport and native lifetime custody to WIP: Implement owned invocations and process-bound installation 2026-09-15 10:21:16 +02:00
test: Exercise native staged creation and complete cleanup
All checks were successful
CI / markdown (push) Successful in 11s
CI / markdown (pull_request) Successful in 11s
CI / test (pull_request) Successful in 5m5s
CI / test (push) Successful in 5m8s
b981564273
Use the corrected bootstrap endpoint slot after all mandatory native roots.
Add an actual constructor regression and six CPL3 creation and disposal calls
to the lifetime fixture, checking native identity, bindings and custody.
Share control-call framing with the existing installation regression.

Strict host/native matrices and ten freestanding builds pass; matching VM
acceptance is tracked separately by Integration and capability ABI issue #3.
fix: Dispose parent receipts on refused staged creation
All checks were successful
CI / markdown (push) Successful in 12s
CI / markdown (pull_request) Successful in 11s
CI / test (push) Successful in 4m44s
CI / test (pull_request) Successful in 4m44s
b853d51cfb
Track successful parent endpoint and VSpace copies until creation commits.
On later refusal, destroy the child and dispose only those new copies in
reverse order, preserving pre-existing and overlapping output bindings.
Extract the construction transaction into its own documented module.

Eight constructor refusal cases preserve parent inventory and VSpace counts.
Full strict host/native matrices and ten native builds pass. The lifetime
fixture adds an actual late-refusal call; matching VM acceptance is tracked
separately by Integration.
erikinkinen changed title from WIP: Implement owned invocations and process-bound installation to WIP: Enforce native lifetime custody and atomic process construction 2026-09-15 11:59:46 +02:00
feat: Attenuate staged primary endpoints through actual grants
All checks were successful
CI / markdown (pull_request) Successful in 7s
CI / markdown (push) Successful in 7s
CI / test (push) Successful in 3m48s
CI / test (pull_request) Successful in 3m55s
d690eda817
Require exact live grant custody, process generation, primary endpoint and
current-rights coverage before narrowing the existing binding. Hold the
child lifecycle record through the allocation-free CSpace rights mutation,
preserving object identity, other aliases and revocation associations.

Six actual-object regressions and all strict host/native matrices pass.
Extend the CPL3 fixture with eight real attenuation calls and explicit
cleanup. Matching-image VM acceptance and Procd bootstrap remain separate
requirements; ordinary mediator start gates stay closed.
erikinkinen changed title from WIP: Enforce native lifetime custody and atomic process construction to WIP: Enforce native lifetime and staged endpoint authority 2026-09-15 12:49:14 +02:00
feat: Create staged processes without child root capabilities
All checks were successful
CI / markdown (pull_request) Successful in 11s
CI / markdown (push) Successful in 12s
CI / test (push) Successful in 4m51s
CI / test (pull_request) Successful in 4m52s
6d2ca19c48
Add a distinct Process-only constructor with explicit optional VSpace receipts,
including real slot zero. Register native TCB backing before dropping temporary
roots, return exactly one primary endpoint, and share tracked rollback with the
ordinary constructor while preserving its existing behavior.

Cover exact inventories, thirty valid layouts, refused outputs, actual caller
windows and mapped backing through both terminal paths. Extend the native CPL3
lifetime diagnostic with fourteen construction, attenuation and disposal calls.
Document the initial inventory and keep mediator bootstrap gates closed.

Pass strict default/all host and native development/release matrices, rustdoc,
formatting and ten freestanding builds. Native image acceptance and producer
adoption retain separate validation and review requirements.
erikinkinen changed title from WIP: Enforce native lifetime and staged endpoint authority to WIP: Enforce native lifetime and staged construction authority 2026-09-15 13:54:41 +02:00
build: Align dependencies for coherent runtime adoption
All checks were successful
CI / markdown (push) Successful in 14s
CI / markdown (pull_request) Successful in 12s
CI / test (push) Successful in 5m0s
CI / test (pull_request) Successful in 5m2s
6223e5dc40
Select the current original signed foundation commits in the existing Git
dependencies. Keep Rust implementation files unchanged and record the
separate product-image acceptance requirement in the roadmap.

The complete supported feature/profile matrix passes with formatting,
strict Clippy, unit tests, builds and private rustdoc. Product runtime
adoption remains pending the complete dependency graph.
fix: Enforce explicit native hardware execution permissions
All checks were successful
CI / markdown (pull_request) Successful in 18s
CI / markdown (push) Successful in 18s
CI / test (pull_request) Successful in 5m19s
CI / test (push) Successful in 5m20s
32c70109fe
Carry live execution selection through single-page, batched and permission-only
mapping paths. Keep data and construction aliases non-executable; preserve
neighbour restrictions when promoting or splitting ancestors and restore exact
saved entries. Validate and enable NX on the BSP and application processors.

Seven independent controls extend the suite to 666 default and 690 all-feature
unit tests, plus two external controls per configuration. The four strict
host/native matrices and ten native binaries pass without warnings. Matching
native permission/CPU validation and technical manual publication remain pending;
this local checkpoint does not establish whole-authority or guest-build acceptance.
refactor: Bind local capability queries to one caller context
All checks were successful
CI / markdown (push) Successful in 3s
CI / markdown (pull_request) Successful in 3s
CI / test (pull_request) Successful in 2m17s
CI / test (push) Successful in 2m17s
a2b13de0d5
Select the attributed TCB once and carry its checked window and explicit CSpace
through both metadata reads. Separate register-only introspection from dispatch,
clear descriptive error payloads, and share the pure checked window predicate.
Four new controls exercise private ownership, root shadows, missing callers,
malformed inputs and unchanged capabilities. Fifteen actual user-mode queries
extend the invocation fixture with saved-register and private stack canaries.

Formatting, strict host/native Clippy and private rustdoc pass in four matrices,
with 670 default or 694 all-feature units plus two external controls and three
existing ignores. Thirteen native builds pass without warnings. Matching-image
VM validation, manual publication and automatic CI classification remain pending;
this checkpoint does not establish generic syscall preservation or self-hosting.
fix: Select the owned query fixture stack before installing canaries
All checks were successful
CI / markdown (push) Successful in 3s
CI / markdown (pull_request) Successful in 3s
CI / test (pull_request) Successful in 2m16s
CI / test (push) Successful in 2m16s
e15a045d77
Set each diagnostic participant's RSP to its own mapped stack top before the
live canary reservation. Direct user entry and initial scheduled resume use
different return-slot shapes; the fixture must choose the interval it tests.
Preserve every exact status, metadata, GP, RSP and stack-memory comparison.

The first native failure is retained and tracked in issue 16. Four strict
host/native matrices and thirteen native builds pass without warnings, with
670 default or 694 all-feature units plus two external controls and three
existing ignores. Corrected-image invocation/lifetime validation and automatic
CI remain pending. Production query and scheduling behavior are unchanged.
fix: Establish forward direction before compiled kernel entry
All checks were successful
CI / markdown (push) Successful in 15s
CI / markdown (pull_request) Successful in 15s
CI / test (push) Successful in 5m11s
CI / test (pull_request) Successful in 5m16s
d4a8921fa8
Normalize live exception direction in shared entry assembly and explicitly
mask direction on syscall entry. Preserve the interrupted flags and existing
resumable page-fault frame. Consolidate repeated exception stubs without
changing their vector identity or adding capability authority.

Exercise all thirty caller-local query cases with direction clear and set,
checking returned flags alongside the existing register and stack canaries.
The selected UD2 diagnostic checks live direction and saved fault flags.
Four strict host/native matrices, 19 native builds and the invocation,
entry-direction and lifetime VM scenarios pass without build warnings.
Automatic CI and general syscall memory-preservation proof remain pending.
fix: Align terminal exception calls and bound frame reporting
Some checks failed
CI / markdown (pull_request) Successful in 3s
CI / markdown (push) Successful in 4s
CI / test (pull_request) Failing after 1m13s
CI / test (push) Successful in 2m22s
829b949dd5
Preserve the original hardware-frame pointer while aligning the compiled
call site and using a real return slot. Capture actual callee RSP in assembly
before any Rust prologue, and check the SysV entry residue in diagnostic
profiles. Report only the five saved words plus an optional error word.
The separate resumable page-fault path and saved flags retain their contracts;
no capability authority or mapping changes.

Four strict host/native matrices, 23 native builds and all three diagnostic
binary Clippy configurations pass. Native invocation, no-error direction,
error-frame IST and lifetime scenarios pass with the original 60-second bounds
and no build warnings. Complete automatic CI remains pending; finite native
evidence does not establish general memory preservation or a full guest build.
test: Own the entire modeled startup stack in receive fixtures
All checks were successful
CI / markdown (push) Successful in 8s
CI / markdown (pull_request) Successful in 7s
CI / test (push) Successful in 2m46s
CI / test (pull_request) Successful in 2m47s
0bf941cf8f
Reserve the production startup window instead of one aligned page, so modeled
frame backing cannot shadow neighbouring host receive allocations. Prove the
allocation boundary with a low synthetic entry address and check direct receive
buffers for partial overlap while retaining existing scheduling and authority
assertions. Production behavior and dependency selections remain unchanged.

The new boundary regression fails on the original fixture and passes after
the repair. Four strict development/release matrices pass 671 default and
695 all-feature unit tests, with the three existing ignored experiments and
both standalone controls preserved. Private-item rustdoc, formatting, native
Clippy and two freestanding builds pass without warnings. Follow original
automatic CI for the incomplete fixture correction tracked in issue 6.
refactor: Confine IPC diagnostics to live operation observations
Some checks failed
CI / markdown (pull_request) Successful in 6s
CI / markdown (push) Successful in 7s
CI / test (push) Failing after 3m24s
CI / test (pull_request) Successful in 4m17s
fb4e134f21
Remove the obsolete RTC post-exit observer, its retained reply-buffer state
and four lifecycle hooks. Keep ordinary IPC-route, process-exit and RTC-startup
diagnostics within their current operation contracts. Document the remaining
scalar selection and synchronous reply-header observations; format the touched
include fragments without changing endpoint scheduling or capability policy.

Four strict development/release matrices pass 671 default and 695 all-feature
unit tests plus both standalone controls, with three existing ignored tests.
Six trace-enabled native builds and binary Clippy selections pass without
warnings. Existing invocation and lifetime VM oracles pass on the exact
candidate with an explicit private trace-feature selection and unchanged
60-second gates. Original automatic CI and ordinary-image adoption remain
separate requirements; this is not a general syscall-memory proof.
test: Isolate VSpace fixtures from predecessor process attribution
All checks were successful
CI / markdown (push) Successful in 20s
CI / markdown (pull_request) Successful in 21s
CI / test (pull_request) Successful in 4m57s
CI / test (push) Successful in 4m58s
28dfaea227
Share explicit private-process predecessor setup across bootstrap fixtures,
then clear the current TCB before replacing the root CSpace. Keep ordinary
harness concurrency and all protocol, mapping, rights and lifetime assertions.
Partition the large mapping-test module into five documented thematic files
without changing test identities. Production attribution and dependencies
remain unchanged; the shared fixture helper is compiled only for host tests.

Both synthetic controls fail with the original setup; the wider original
mapping inventory retains its 27 failures. The corrected four strict matrices
pass 671 default and 695 all-feature units, both standalone controls and the
three existing ignored experiments. Formatting, private rustdoc, strict
host/native Clippy and two freestanding builds pass without warnings. Follow
original automatic CI for the newly reproduced fixture group in issue 17.
fix: Require owned resume capture before syscall dispatch
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / markdown (push) Successful in 11s
CI / test (pull_request) Successful in 5m22s
CI / test (push) Successful in 5m23s
f2489242be
Replace numeric saved-frame capture with a crate-internal borrow of the
complete initialized prefix. Construct initialized owning storage, reuse
stable copies without allocating, and extract frame ownership from general
TCB state. Assembly passes the complete prefix through its explicit unsafe
adapter. Failed capture clears switch/output state and returns before the
requested operation can mutate capabilities or select stale resume state.

Five new controls exercise real directory/frame allocation rejection,
capability-drop refusal, attribution, register layout, copy reuse and teardown.
Four strict matrices pass 676 default and 700 all-feature units plus both
standalone controls; three existing experiments remain ignored. Eight native
builds and native binary Clippy configurations pass without warnings. Existing
invocation/lifetime candidate scenarios pass unchanged 60-second gates, with
packaged entry bytes and normal stripping verified. Full automatic CI,
ordinary image adoption and general syscall-effect proof remain separate.
fix: Retain exact VSpace teardown progress and custody
All checks were successful
CI / markdown (push) Successful in 14s
CI / markdown (pull_request) Successful in 14s
CI / test (push) Successful in 5m40s
CI / test (pull_request) Successful in 5m39s
1af934ff48
Make VSpace retirement one-way and reject ordinary access, new aliases and
process-reference retention after cleanup starts. Record completed access
withdrawals before releasing backing, consume each successful frame release,
and retain the final process reference until its teardown succeeds.

Four owned host controls cover restoration, range and release refusal,
independent mapping lifetime and final-reference retry. Four strict matrices
pass 680/704 units plus both standalone controls; eight native builds and
Clippy selections and both original-budget invocation/lifetime candidates
pass without warnings. Update the component contract. Whole-process cleanup
and ordinary-image adoption retain their separate review requirements.
fix: Keep process identities owned through final cleanup
All checks were successful
CI / markdown (push) Successful in 3s
CI / markdown (pull_request) Successful in 3s
CI / test (push) Successful in 2m44s
CI / test (pull_request) Successful in 2m45s
c55ee8d6f1
Enter distinct aborting and destroying states before fallible disposal and
exclude them from ordinary TCB mutation and live IPC admission. Retain the
empty private CSpace until final VSpace release succeeds; validate the exact
TCB first and publish reusable identities only in the infallible final commit.
The release callback cannot access TCB or CSpace tables under their locks.

Extract cleanup into a documented module and preserve terminal status and
retry eligibility. Four new ownership controls, four strict 684/708-unit
matrices, both standalone controls, eight native build/Clippy selections
and both original-budget native candidates pass without warnings. Final
changes after candidate execution affect only rustdoc and are reviewed
separately. Update component contracts; ordinary-image and complete guest
build acceptance remain open.
feat: Preserve native terminal generations through queued observation
All checks were successful
CI / markdown (push) Successful in 9s
CI / markdown (pull_request) Successful in 9s
CI / test (pull_request) Successful in 3m5s
CI / test (push) Successful in 3m7s
5b20519a72
Capture the exact TCB generation with exit and kill and retain it through
queueing, destruction and ID reuse. Validate operation 55 before dequeue,
return the checked shared tuple and remove the generation-free selector.
Keep observation behind the existing Process endpoint authority.

Add actual queue/reuse controls and user-mode exit/kill, malformed, retired
selector and empty-queue calls to the bounded lifetime fixture. The fixture
checks endpoint rejection without inventing a reply and validates every
returned event word before its final marker.

Four strict matrices pass with 686/710 unit tests, host/native Clippy,
rustdoc and eight native builds. Corrected native-only refusal framing passes
both native profiles. Matching VM execution and consumer rollout remain open.
feat: Bind native process cleanup to the original generation
All checks were successful
CI / markdown (pull_request) Successful in 12s
CI / markdown (push) Successful in 12s
CI / test (pull_request) Successful in 4m51s
CI / test (push) Successful in 4m53s
bd81f0d8bb
Require the retained creation generation for terminal destruction and staged
abort. Match it under the record lock before entering cleanup custody, preserve
partial disposal retries, and retire ID-only selectors without reinterpretation.
Migrate native callers and strengthen the bounded CPL3 lifetime diagnostic with
malformed, stale, eligible, repeated and absent-instance cleanup checks.

Four strict host matrices pass 688/712 unit tests plus standalone controls.
All eight freestanding diagnostic builds and Clippy configurations pass with
warnings denied. Actual VM execution and coordinated service adoption remain
separate required validation; no runnable realm acceptance is claimed.
feat: Relocate caller-local move-only grants
All checks were successful
CI / markdown (push) Successful in 7s
CI / markdown (pull_request) Successful in 7s
CI / test (pull_request) Successful in 4m33s
CI / test (push) Successful in 4m33s
56d398e077
Add register-only syscall 0x54 for actual install and revocation grants inside
the Running caller CSpace and admitted slot window. Reuse native unique binding
owners under lifecycle serialization, preserving exact rights, child generation,
installation scope and revocation lineage without adding a foreign selector.

Seven literal host controls and all four strict matrices pass: 695 default and
719 all-feature units, both standalone controls, eight native builds, strict
Clippy, rustdoc and formatting. Add thirty-nine real CPL3 controls before the
existing installation and lifetime oracles; matching-image VM execution remains
pending. Service bootstrap and complete guest builds remain open.
feat: Admit owned requests against explicit receiver budgets
All checks were successful
CI / markdown (pull_request) Successful in 12s
CI / markdown (push) Successful in 14s
CI / test (pull_request) Successful in 5m3s
CI / test (push) Successful in 5m3s
7034572037
Bind REGISTER byte and capability limits to the actual receiver generation and
held RECV binding. Reject excess before request allocation, private custody or
selector acceptance. Preserve exact idempotence and conflicting registration
ownership. Consume checked packet descriptor iterators without a temporary Vec.

Seven new controls cover malformed/zero budgets, exact limits, immutable
registration, unique-grant custody, large requests and measured allocation.
All four strict 702/726-unit matrices, two standalone controls, eight native
builds, formatting, Clippy and rustdoc pass without warnings. Add ten actual
CPL3 controls while retaining every original VM oracle and deadline; execution
and live service adoption remain separately required.
build: Adopt coherent realm contract dependencies
All checks were successful
CI / markdown (pull_request) Successful in 18s
CI / markdown (push) Successful in 22s
CI / test (pull_request) Successful in 6m28s
CI / test (push) Successful in 6m30s
bd127228f6
Select original signed shared revisions so coordinated runtime images can
resolve one source identity for every dependency. Preserve the component
implementation and update the roadmap to keep consumer VM acceptance explicit.

Validate default and all-feature development/release tests, strict host/native
Clippy, freestanding builds, formatting and private-item rustdoc with warnings
denied. Full image and in-guest build acceptance remain separate requirements.
fix: Refuse process start when grant census fails
All checks were successful
CI / markdown (pull_request) Successful in 4s
CI / markdown (push) Successful in 4s
CI / test (push) Successful in 2m41s
CI / test (pull_request) Successful in 2m43s
b762e19d0c
Require a successful install-grant census before entering the native start
transition. Preserve definite live-grant denial and target lookup precedence;
map an unavailable census to its existing failure instead of assuming absence.
Normal bootstrap already initializes tracking fallibly before root admission.

Use the real dispatcher and staged child to check complete state and grant
preservation under a scoped host census fault, malformed target precedence,
and successful start only after actual grant disposal. Replace the older
success-only start test with the stronger disposition control.

Four strict matrices pass 704/728 library tests and both standalone controls,
with three existing ignored tests unchanged. All thirteen native builds, fmt,
strict host/native Clippy and private rustdoc pass without warnings. Original
CI and matching consumer-image validation remain required.
refactor: Share native terminal transition ownership
All checks were successful
CI / markdown (push) Successful in 16s
CI / markdown (pull_request) Successful in 16s
CI / test (pull_request) Successful in 5m0s
CI / test (push) Successful in 5m5s
37d9c74d6d
Consolidate exit and kill event reservation, lifetime preflight, exact native
generation recheck, terminal commit and receiver/invocation retirement in one
documented module. Preserve existing public behavior and root exit cleanup.
Keep terminal records and mappings separate from exact-generation destruction.
This provides a common boundary for proposed child-lifetime custody without
introducing that binding, a new ABI or additional authority.

Four strict matrices pass 704/728 library tests and both standalone controls,
with three existing ignored tests unchanged. All thirteen native builds,
formatting, strict host/native Clippy and private rustdoc pass without warnings.
Matching original native lifetime/invocation VMs and automatic CI remain
required; full mediator execution and both guest build generations stay open.
feat: Retain native child lifetime custody through supervisor loss
All checks were successful
CI / markdown (push) Successful in 20s
CI / markdown (pull_request) Successful in 20s
CI / test (pull_request) Successful in 4m57s
CI / test (push) Successful in 4m58s
1428885e6d
Bind the actual Running caller to an exact Created child using independent
Process authority and its held install grant. Consume only the selected
grant and preserve native identity and authority on failed admission.

Preflight descendant events and lifetime retirement before stopping the
cohort. Store nonrecursive links and pending disposal with admitted TCBs;
retain first errors through explicit abort failures and supervisor loss.
Reclaim only after outgoing accounting and user-memory borrows retire.

Four strict 718/742-test configurations, both standalone controls, thirteen
native build/Clippy profiles, formatting and private rustdoc pass without
warnings. Extend the maintained CPL3 lifetime fixture and document exact
custody and failure contracts. Native execution, consumer adoption and
complete lifecycle acceptance remain open in Kernel issue 19.
test: Exercise executing child ancestor termination in native mode
All checks were successful
CI / markdown (push) Successful in 15s
CI / markdown (pull_request) Successful in 14s
CI / test (push) Successful in 4m40s
CI / test (pull_request) Successful in 4m39s
6d1ccad9ee
Extend the maintained CPL3 lifetime scenario with nested binding, current-child
ancestor kill, deferred reclamation and exact terminal-event checks. Require
unrelated staged-process preservation and full disposal of all added mappings.
Keep ordinary scheduling, the existing VM deadline and all earlier controls.

Document the native observations and remaining idle and consumer-adoption gates.
fix: End control reply access when its caller becomes terminal
All checks were successful
CI / markdown (pull_request) Successful in 11s
CI / markdown (push) Successful in 13s
CI / test (push) Successful in 4m59s
CI / test (pull_request) Successful in 5m1s
dd9eace5b5
Parse synchronous Kernel control requests into owned values before dispatch and
check the original caller generation and terminal state before writing a reply.
Keep terminal completion in Kernel-owned registers with zero response length;
the ordinary native return boundary switches away from the stopped caller.

Preserve replies to surviving callers, add focused actual-object regressions,
and extend the maintained native ancestor-termination witness. Split control
dispatch from the tracing and endpoint-policy file and document the contract.
test: Verify native child cleanup without a userspace successor
All checks were successful
CI / markdown (pull_request) Successful in 10s
CI / markdown (push) Successful in 10s
CI / test (pull_request) Successful in 4m44s
CI / test (push) Successful in 4m48s
2cf5b34c77
Extend the maintained CPL3 lifetime scenario with a final bound child that
terminates its supervisor. Preserve all earlier checks and observe ordinary
return-boundary reclamation only after accounting closes and no runnable target
remains. Require exact child resource absence and unconsumed terminal events.

Keep the observation read-only and gated to the native diagnostic feature.
Report before halt without manufacturing cleanup, scheduling or interrupt
wakeup, and document the remaining hardware and consumer acceptance gates.
test: Exercise native terminal event allocation refusal
All checks were successful
CI / markdown (push) Successful in 33s
CI / markdown (pull_request) Successful in 31s
CI / test (push) Successful in 5m55s
CI / test (pull_request) Successful in 5m55s
ba03995fe0
Inject one allocator refusal during the second event reservation in the actual
CPL3 ancestor-kill sequence. Require resource exhaustion from ordinary dispatch,
complete reservation rollback and unchanged subtree records, caps and mappings.
Then retain every original terminal, reclamation and no-successor idle check.

Keep diagnostic fault preparation separate from read-only witnesses and absent
from ordinary images. Document the distinction between injected allocation-error
coverage, spontaneous heap exhaustion and independent release-failure recovery.
test: Exercise independent native child release recovery
All checks were successful
CI / markdown (pull_request) Successful in 20s
CI / markdown (push) Successful in 20s
CI / test (push) Successful in 5m53s
CI / test (pull_request) Successful in 5m58s
82d88b609b
Inject two distinct refusals at one exact child final VSpace-release callback
after unlinking. Ordinary observer yields require retained identity, original
first error and cleanup duty while the independent running child is absent.
Require normal third-attempt release before all original native assertions.

Keep fault control separate from read-only witnesses and absent from ordinary
images. Strict host and native build checks pass without warnings; matching
VM execution follows adoption of this original signed source.
fix: Make install grant authority explicit
All checks were successful
CI / markdown (pull_request) Successful in 3s
CI / markdown (push) Successful in 3s
CI / test (pull_request) Successful in 3m17s
CI / test (push) Successful in 3m18s
4a5333f760
Separate a grant capability's own rights from its child installation ceiling.
Creation preserves exact requested rights, including zero; derivation requires
actual MINT and cannot restore rights absent from the source. Coordinate the
checked wire fields and reject reserved creation/derivation metadata.

Add host authority matrices and actual CPL3 derivation, refusal and disposal
controls. Existing native moves and bound installation use GRANT-only grants.
Four strict 724/748-test configurations, both standalone controls and thirteen
native build profiles pass without warnings. Three existing ignores remain;
matching native execution and consumer adoption are still required.
feat: Retain acknowledged terminal CPU accounting
All checks were successful
CI / markdown (push) Successful in 11s
CI / markdown (pull_request) Successful in 10s
CI / test (push) Successful in 5m11s
CI / test (pull_request) Successful in 5m10s
5c89ff8f6e
Reserve final scalar CPU results with terminal events and preserve exact process
generations through resource reclamation. Bind repeat observations to the actual
original caller, release claims on observer death, and require explicit exact
acknowledgement. Complete the outgoing charge before native destruction; retain
measurement errors without restoring a charged interval.

Refactor descriptive identity and event storage into documented modules. Add
queue, dispatch, lifecycle and CPL3 accounting controls under Kernel #20. Four
strict configurations pass 736/760 unit tests and both standalone controls;
thirteen native build and Clippy profiles pass without warnings. Matching VM
execution, service-consumer adoption and manual updates remain required.
fix: Derive native request mappings from the declared layout
All checks were successful
CI / markdown (push) Successful in 9s
CI / markdown (pull_request) Successful in 9s
CI / test (pull_request) Successful in 5m11s
CI / test (push) Successful in 5m12s
a9bdf61638
Centralize the six owned request-page mappings and use that declared extent
for the independent final page census. The first terminal-accounting VM mapped
a new page but retained the five-page census, causing Kernel #21 after the
new CPL3 accounting checks. Preserve the failed image and original deadlines.

Four strict 736/760-unit matrices, both standalone controls and thirteen native
build and Clippy profiles pass without warnings. Corrected native execution
remains required before closing the regression.
test: Specify owned address spaces and mapping bit provenance
All checks were successful
CI / markdown (push) Successful in 11s
CI / markdown (pull_request) Successful in 9s
CI / test (pull_request) Successful in 4m44s
CI / test (push) Successful in 4m49s
5e818e8b6d
Define private root construction, activation, invalidation and retirement
requirements before replacing shared page-table permission replay. Link the
planned architecture to Kernel issue 22 and distinguish it from native proof.

Add an independent per-bit alias mapping regression covering inherited flags,
physical addresses and explicit permissions. Retain the existing production
encoder after an isolated code-generation experiment showed no improvement.

Validation passes four 737/761-test matrices, strict host and native Clippy,
13 native builds, private rustdoc, formatting and Markdown without warnings.
Independent roots, performance acceptance and self-hosting remain unproven.
refactor: Retain table allocation custody until publication
All checks were successful
CI / markdown (push) Successful in 9s
CI / markdown (pull_request) Successful in 9s
CI / test (pull_request) Successful in 5m0s
CI / test (push) Successful in 5m1s
2e744897de
Give unpublished page tables a unique cleanup owner through allocation,
translation and initialization. Empty installation and huge splits transfer
custody only when the parent entry is written. Preserve the shared hierarchy
lifetime, permission templates, interrupt masking and invalidation sites.

Remove duplicate huge-split initialization and the raw allocation-return API.
Document the ownership boundary and its limitations under Kernel issue 22.
Five controls verify allocation and translation failure, invalid geometry,
abandoned preparation and successful publication with actual storage disposal.

Validation passes four 742/766-test matrices, strict host/native Clippy,
private rustdoc, formatting, Markdown and all 13 native builds without warnings.
Matching native regression execution and owned VSpace roots remain required.
docs: Record native table custody regression evidence
All checks were successful
CI / markdown (push) Successful in 9s
CI / markdown (pull_request) Successful in 8s
CI / test (pull_request) Successful in 4m54s
CI / test (push) Successful in 4m57s
f50535bfcd
Record the retained lifetime, owned-invocation and mapping executions. The
isolation and sparse marker contracts share one capture with identical
runtime settings. Verify all fifteen original component signatures and
normal stripping equality for each packaged Kernel image.

Executable inputs are unchanged and retain their strict validation. The
Markdown and diff checks pass. Private VSpace roots, startup performance
and full guest toolchain builds remain separate acceptance requirements.
Validate the complete page after capability and alignment checks and before
backing lookup or mapping mutation. Both VSpace and Process dispatch paths
share the guard; retain the complete lower canonical range, including zero.

Add host denial, boundary and Process-child controls and actual CPL3 mapping,
read, unmap and capability cleanup witnesses. Retain private scratch backing
until the native diagnostic terminates and export only required grant rights.
Document the distinction from Kernel-selected bootstrap mapping provenance.

The strict host and native build matrix passes without warnings. Matching
native execution remains a prerequisite to publishing this checkpoint.
Give the native caller a MAP-only alias to its own VSpace after removing
root management handles, and include all three temporary grants in the
independent initial inventory. Drop the frame, VSpace alias and endpoint
through actual CPL3 calls. Keep the exact inventory and page census checks.

Factor scalar mapping-count observation so the Kernel witness can verify
retained process mappings after alias disposal without exporting authority.
The first signed fixture failed its initial inventory before user entry;
retain that image and failure. Repeat strict checks on this corrected tree.
Select unused slots 252 through 254 for the frame, endpoint and own-VSpace
MAP grant. The fixture retains its existing 200..264 admitted syscall window
and its exact capability inventory. Temporary setup source 255 is removed
before entry; all three caller grants still require actual syscall cleanup.

Only native diagnostic constants and their comment change. Both affected
native profiles pass strict Clippy and warning-denied builds, with native
private rustdoc and formatting. Exact unchanged host and production sources
retain the preceding strict matrices. Both earlier VM failures are retained.
fix: Reserve native mapping slots after the complete grant extent
Some checks failed
CI / markdown (pull_request) Successful in 4s
CI / markdown (push) Successful in 5s
CI / test (push) Has been cancelled
CI / test (pull_request) Has been cancelled
ef3fd9293e
Place mapping grants after every real and refused derivation destination
used by the earlier grant-authority fixture. Check the complete live grant
range against the unchanged caller window at compile time. Retain exact
initial inventory and actual three-grant cleanup without widening authority.

Only the native diagnostic modules change. Both affected profiles pass
strict Clippy, warning-denied builds, formatting and native private rustdoc.
Exact unchanged host and production modules retain their strict matrices.
All preceding failed images remain retained for the fixture regression.
docs: Record verified native mapping domain and cleanup evidence
All checks were successful
CI / markdown (push) Successful in 5s
CI / markdown (pull_request) Successful in 5s
CI / test (pull_request) Successful in 3m55s
CI / test (push) Successful in 3m56s
d0d9e25b71
Record the corrected actual CPL3 mapping boundary, complete grant disposal,
invocation and shared mapping/sparse capture. Retain all three failed native
fixture attempts and the final nonoverlapping layout within the original
caller window. Record the unchanged ordinary exec-successor VM acceptance.

Document exact explicit grant custody and preserve the distinction from
private hardware roots and guest toolchain rebuilding. Markdown and diff
checks pass; every executable source remains identical to the validated tree.
Check the live caller-local capability before ordinary map, protection and
unmap mutations. Preserve identity and retirement error precedence, frame
checks, and independent MAP-only access. Empty or MANAGE-only attenuations
retain object identity without regaining mapping authority.

Add five host controls and actual CPL3 denial/positive/cleanup witnesses.
Native requests preserve owned RW/NX backing and all previous lifetime
oracles within the original caller window and deadline. Strict host and
native build validation precedes this private checkpoint; exact-source
native execution remains required before publication.
docs: Record verified VSpace mapping authority evidence
All checks were successful
CI / markdown (push) Successful in 13s
CI / markdown (pull_request) Successful in 12s
CI / test (pull_request) Successful in 5m38s
CI / test (push) Successful in 5m42s
841583c562
Record current host, native and ordinary service acceptance after actual
execution. Keep every executable and source selection identical to the
validated signed implementation. Original caller windows, marker contracts,
guest deadlines and complete retained artifact checks remain authoritative.

Markdown and diff checks pass. Independent hardware roots, complete authority
cleanup and full guest toolchain rebuilding remain open.
Carry explicit READ through admission, activation and leaf encoding. Retain
no-access backing with USER and WRITE clear and NX set; reject unsupported
write-only and execute-only combinations before effects without adding READ.
Remove unreachable anonymous and fallback paths from ordinary backed mapping.

Cover attenuation, preserved refusal, reactivation and final allocation
release with owned host controls. Extend the native lifetime diagnostic with
24 CPL3 calls inside the original capability window, including MAP-only
frame derivation and unmap after final frame-grant disposal. Exact-source
VM acceptance remains required before publication.
docs: Record verified frame access and backing evidence
All checks were successful
CI / markdown (push) Successful in 5s
CI / markdown (pull_request) Successful in 4s
CI / test (push) Successful in 4m9s
CI / test (pull_request) Successful in 4m9s
b8568c51c4
Record current host, native and ordinary service acceptance after actual
execution. Keep every executable and source selection identical to the
validated signed implementation. Original caller windows, marker contracts,
guest deadlines and complete retained artifact checks remain authoritative.

Markdown and diff checks pass. Independent hardware roots, complete authority
cleanup and full guest toolchain rebuilding remain open.
Authorize ordinary mapping changes through the selected live frame grant
and exact managed allocation or device range. Remove historical access
ceilings and numeric slot equality while preserving READ, W^X, current
VSpace MAP, backing custody, kind boundaries and error precedence.

Add current-grant host controls and native managed-RAM execution, alias
and cleanup witnesses. Keep the existing caller window, request extent
and deadlines. Document separate anonymous materialization semantics.

Four strict configurations pass 766/790 tests with three existing ignored
cases. Thirteen native builds and binary Clippy profiles, formatting and
host/native private rustdoc pass without warnings. Exact-source VM
execution remains pending before publication of this checkpoint.
docs: Record verified protection restoration and disposal
All checks were successful
CI / markdown (push) Successful in 13s
CI / markdown (pull_request) Successful in 13s
CI / test (pull_request) Successful in 5m42s
CI / test (push) Successful in 5m45s
fa8eda1bcc
Record current host, native and ordinary service acceptance after actual
execution. Preserve all executable sources and catalog selections from
the signed implementation. Original caller windows, marker contracts,
guest deadlines and complete retained artifact checks remain required.

Markdown and diff checks pass. Independent hardware roots, full authority
cleanup, measured speedup and complete guest toolchain rebuilding remain
open acceptance requirements.
Make live VSpace records and production mapping tables non-cloneable.
Keep test snapshots limited to descriptive metadata and use independent
mapping tables for selector fixtures. Narrow managed and device selectors
to the table state they consume, preserving lock and authority boundaries.

Borrow live rows for leaf-encoder controls and exercise actual activation
in the warm-hint rights test. Preserve independent reference scans,
visit counts, identity checks, cleanup and error precedence. Document the
ownership boundary and separate the live record into a cohesive module.

Four strict host configurations pass 766/790 tests with three existing
ignored cases. Thirteen native builds and binary Clippy profiles, formatting
and host/native private rustdoc pass without warnings. Maintained VM
acceptance remains pending; independently owned roots remain open.
docs: Record VSpace ownership refactor validation
All checks were successful
CI / markdown (pull_request) Successful in 5s
CI / markdown (push) Successful in 5s
CI / test (push) Successful in 3m2s
CI / test (pull_request) Successful in 3m3s
14e38ec244
Record the strict host, native and ordinary service results after actual
execution and exact source/artifact verification. Preserve all executable
sources and catalog selections from the signed implementation. Existing
capability windows, marker contracts and guest deadlines remain required.

Markdown and diff checks pass. Independent hardware roots, full authority
cleanup, measured speedup and complete guest toolchain rebuilding remain
open acceptance requirements.
Replace the diagnostic's Kernel heap virtual addresses with an explicitly
validated lower-half window whose leaves must initially be empty. Remove
its unnecessary heap allocation and raw-pointer cleanup state. Preserve
the production domain guard and all 64-page occupancy, alias retirement,
hole reuse, physical-byte and partial-resource cleanup controls. Document
the fixture address selection separately from backing capability custody.

The original maintained native failure is retained in issue 28. Four strict
host configurations pass 766/790 tests with three existing ignored cases.
Fourteen native builds and binary Clippy profiles, formatting and private
rustdoc pass without warnings. Corrected maintained VM acceptance remains
pending; no complete guest build or authority-cleanup closure is claimed.
docs: Record native managed-frame diagnostic recovery
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / markdown (push) Successful in 9s
CI / test (pull_request) Successful in 5m0s
CI / test (push) Successful in 5m2s
e850c68221
Record both maintained allocator contracts passing against the corrected
signed graph with original deadlines and complete marker checks. Preserve
the original failing image separately. The ordinary exec-successor VM
passes against all 73 components; no image warnings or QEMU stderr remain.

Exact signatures, source membership and retained packaged artifact checks
pass. These documentation-only updates preserve all executable inputs and
catalog selections. Independent roots and full guest rebuilding remain open.
Share a restoring Kernel scratch window between frame scrubbing and
physical mapping-byte copies. Retain reservation or VSpace backing custody
while interrupts and page tables stay guarded through access and exact
restoration. Release scratch only after those guards. Read aliases deny
writes, all aliases deny user access and execution, and cache policy stays
WriteBack. No target-VA leaf or derived pointer authority escapes.

Remove unreachable raw-VA copy fallbacks and reject malformed backing
representations during complete preflight and per-page access. Add eight
host controls and native copies whose active and inactive pages share a
VA but have distinct backing, retaining prior markers and cleanup controls.
Give the existing permission probe explicit allocation imports.

Four strict configurations pass 774/798 tests with three existing ignored
cases. Fourteen native builds and binary Clippy profiles, formatting and
private rustdoc pass without warnings. Original development failures are
retained. Native execution and independent-root acceptance remain pending.
docs: Record native physical-window validation
All checks were successful
CI / markdown (push) Successful in 18s
CI / markdown (pull_request) Successful in 18s
CI / test (pull_request) Successful in 5m47s
CI / test (push) Successful in 5m48s
f59c88479d
Record six native executions satisfying seven existing scenario contracts
against the coordinated signed source graph. Both allocator contracts
require the new active/inactive backing control with every prior marker
and original deadline preserved. Retain all original artifacts and failures.

Exact signatures, source membership and packaged artifact checks pass.
These documentation-only updates preserve all executable inputs and
catalog selections. Independent roots, external toolchain rebuilding and
both full EriX guest-build generations remain open.
Capture and verify a supervisor hierarchy before Rootd preparation and RAM
seeding. Retain every copied table before linking its parent and rebase the
recursive entry. Preserve supervisor leaf permissions, cache policy and huge
pages while using WriteBack for new table storage. Reject user leaves and
malformed roots; all failed unpublished preparation retains exact rollback.
Share a typed aligned Box owner with existing table-page preparation instead
of requiring raw-pointer Send or Sync implementations.

Eleven added controls cover independent storage, partial failure, geometry,
source drift, owner links and table counts beyond the unrelated batch size.
Four strict 785/809-test configurations, fourteen native builds and binary
Clippy profiles, formatting and private rustdoc pass without warnings.
Native execution remains pending. This baseline is not installed in CR3;
per-VSpace population, activation and live-root retirement remain open.
docs: Record native supervisor baseline capture
Some checks failed
CI / markdown (pull_request) Successful in 5s
CI / markdown (push) Successful in 5s
CI / test (pull_request) Failing after 2m50s
CI / test (push) Successful in 3m26s
71e2ca157d
Record six native executions satisfying seven original scenario contracts.
Both allocator scenarios require verified pre-root capture with prior
markers, grants and deadlines preserved. Source signatures and retained
packaged artifacts pass; no image warnings or QEMU stderr remain.

This evidence-only change preserves executable inputs and catalog pins.
Per-VSpace population, CR3 activation, invalidation and live-root retirement
remain open, as do external toolchain and complete EriX guest rebuilding.
test: Isolate drop-local-cap setup from predecessor tasks
All checks were successful
CI / markdown (push) Successful in 7s
CI / markdown (pull_request) Successful in 6s
CI / test (push) Successful in 4m44s
CI / test (pull_request) Successful in 4m45s
12184850cd
Use the existing deterministic private-process predecessor initializer before
preparing the syscall window fixture. Reset task attribution before replacing
the root CSpace so capability setup cannot select a removed predecessor owner.
Preserve zero-slot and out-of-window rejection and ordinary harness concurrency.
Normalize rustfmt layout in the test fragment and document the CI correction.

The original PR failure and deterministic failing predecessor control remain
recorded in Kernel issue 29. Four strict 785/809-test configurations, fourteen
native builds and binary Clippy profiles, formatting and private rustdoc pass
without warnings. This changes host tests only; production sources, dependency
pins and native catalogs remain unchanged. Corrected-head CI remains required.
Share level-aware decoding across scalar and batched backing walks, huge
splitting, supervisor capture and diagnostic snapshots. Exclude huge PAT from
physical addresses and reencode it for small leaves. Preserve leaf permissions
and cache indices while new table references use their own WriteBack policy.
Reject reserved huge address bits before allocation or publication.

Eleven controls cover original failures, all cache indices, both split levels,
permissions, malformed geometry and address boundaries. A native probe retains
private backing and split storage through exact parent restoration, exercises
actual bytes and both translators, and never reprograms PAT or grants user
access. Four strict 796/820-test matrices, sixteen native build/Clippy profiles,
formatting and private rustdoc pass. Native execution remains required; no
private-root activation, performance gain or complete guest build is claimed.
docs: Record verified huge-leaf geometry correction
All checks were successful
CI / markdown (pull_request) Successful in 13s
CI / markdown (push) Successful in 17s
CI / test (pull_request) Successful in 5m44s
CI / test (push) Successful in 5m46s
df769a763c
Record six native executions satisfying seven original scenario contracts.
The new mapping witness verifies real huge-PAT translation, splitting and
restoration with prior markers, grants and deadlines preserved. Source signatures and retained
packaged artifacts pass; no image warnings or QEMU stderr remain.

This evidence-only change preserves executable inputs and catalog pins.
Per-VSpace population, CR3 activation, invalidation and live-root retirement
remain open, as do external toolchain and complete EriX guest rebuilding.
Prepare complete register arrays and directory custody before stack effects.
Publish only after initial stack admission succeeds, then consume startup
arguments. Preserve red-zone preflight and the synthetic return slot while
removing duplicate user register frames, saved-frame overlays and their scan.
Require registered writable custody for direct bootstrap stack access.

Eleven host controls cover independent storage, same-address VSpaces,
allocation and stack failure, all scheduler paths, and exact cleanup retry.
A native pre-capture witness requires actual user stack mutation and intact
owned first-start registers. Four strict 807/831-test matrices and sixteen
native build/Clippy profiles pass without warnings. Native execution,
private-root activation and complete guest rebuilding remain required.
docs: Record verified first-start register ownership
All checks were successful
CI / markdown (push) Successful in 7s
CI / markdown (pull_request) Successful in 7s
CI / test (pull_request) Successful in 3m51s
CI / test (push) Successful in 3m52s
ced94e2240
Record six native executions satisfying seven maintained scenario contracts.
Two actual user programs mutate their red zones before the pre-capture witness
checks all initial register words in independently owned Kernel storage.
Preserve prior grants, markers and deadlines. Verify exact source signatures
and retained packaged artifacts without image warnings or QEMU stderr.

This evidence-only change preserves executable sources and catalog selections.
Private-root activation, CPU residency and live-root retirement remain open,
as do external toolchain and complete EriX guest rebuilding.
All checks were successful
CI / markdown (push) Successful in 7s
CI / markdown (pull_request) Successful in 7s
CI / test (pull_request) Successful in 3m51s
CI / test (push) Successful in 3m52s
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/posix-compat:feature/posix-compat
git switch feature/posix-compat

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/posix-compat
git switch feature/posix-compat
git rebase main
git switch main
git merge --ff-only feature/posix-compat
git switch feature/posix-compat
git rebase main
git switch main
git merge --no-ff feature/posix-compat
git switch main
git merge --squash feature/posix-compat
git switch main
git merge --ff-only feature/posix-compat
git switch main
git merge feature/posix-compat
git push origin main
Sign in to join this conversation.
No description provided.