The overflow-triggered migration path (a WIREBIND-attached identity's own drive running low on space) was scoped but never built -- only the trigger-detection call site was missing, per this section's own text. - capsule_wirebind.c now tracks the attached blkio_dev* alongside the already-tracked VM id, set in try_attach() and cleared in both EJECT/UNCLEAN paths. - New capsule_wirebind_overflow_idle_check(), called once per idle tick in repl.c right alongside blk_migration_idle_check() (same cadence): reads the attached drive's free/total via blk_get_device_free_blocks(), and if free space is below a fixed 10% threshold, extends the identity's pool with a one-time blk_firsttouch_claim() of 8 additional devblocks on Artemis's system-resident device. - New blk_owner_has_claim(owner_fp) in block_subsystem.c answers the debounce question blk_firsttouch_claim()'s own doc comment had left open: a disk scan, not a RAM flag, so the already-extended answer survives reboot/reattach, matching BMAPFMT's "ownership travels with the block" model. Premise checked before building (does a WIREBIND-attached drive actually give a real free/total signal, or does it stay PROVISIONAL/raw): traced repl.c's attach sequence and confirmed blk_subsys_attach_device() runs on the same dev pointer right after WIREBIND, and a WIREBIND-eligible drive is always already STFR/v2-formatted, so the signal is real. Premise held, unlike the BAM item's overstated one. Verified with the mandatory 3-arch QEMU acceptance (identical dictionary hashes, no regression) plus a live logic test of blk_owner_has_claim(): a temporary TEST-OWNER-CLAIM word, run once via SK_CMD and reverted, confirmed it correctly detects the claiming owner and rejects an unrelated one. The low-disk-space-triggers-a-claim path itself is not verified end-to-end -- that needs a real minted WIREBIND-user thumbdrive with deliberately tiny capacity, out of scope for this pass; noted as such in the FABRIC-2.md §I.2 closure note rather than overclaimed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018EjXFo7mPXjUMjfJeuUUz4
src/starkernel/
LithosAnanke — the bare-metal UEFI kernel that boots StarForth directly on
hardware (amd64/aarch64/riscv64). Built only via Makefile.starkernel; the
only valid acceptance test is the three-arch QEMU boot (see
.claude/CLAUDE.md), never make test.
kernel_main.c— kernel entry point, driving the boot milestones (console init, PMM, VMM, interrupts, timers, kmalloc heap, VM bootstrap).repl.c— kernel REPL.doe_log.c— kernel-side DoE (Design of Experiments) metrics logging.
Subdirectories:
arch/{amd64,aarch64,riscv64}/— per-architecture support (APIC/GIC/ PLIC interrupt controller, timers, boot/ISR assembly).boot/— UEFI loader, ELF loading, kernel command-line parsing.capsule/— capsule birth/run/load/validate pipeline.hal/— hardware-abstraction-layer implementation (console, framebuffer, VT100, memory, host services).hash/— XXHash64 content-addressing implementation.math/— kernel-build Q48.16 fixed-point arithmetic.memory/— physical/virtual memory managers and the kernel heap.pci/— PCI bus enumeration.virtio/— VirtIO block device driver.vm/— kernel VM subsystem (bootstrap, core interpreter, parity logging, capsule arena).
See include/starkernel/README.md for the corresponding headers.