Added 256-byte ring buffer to capture UART input and prevent character loss.
Changes:
- core/rumpk/hal/uart.zig:
* Added input_buffer ring (256 bytes)
* Implemented poll_input() to move UART → buffer
* Modified read_byte() to consume from buffer
Design:
- Buffer captures chars from boot, holds until userland reads
- poll_input() called on every read_byte() to refill
- Prevents timing issues where input arrives before NipBox starts
Status:
- ✅ Buffer implementation complete
- ✅ No crashes, system stable
- ⚠️ QEMU stdin not reaching UART registers (config issue)
Next: Investigate QEMU serial configuration or test with manual typing in interactive session.
- Rumpk Core: Complete exorcism of LwIP/NET ghosts. Transitioned to ION nomenclature.
- ABI Sync: Synchronized Zig HAL and Nim Logic Ring Buffer layouts (u32 head/tail/mask).
- Invariant Shield: Hardened HAL pipes with handle-based validation and power-of-2 sync.
- Immune System: Verified Blink Recovery (Self-Healing) with updated ION Control Plane.
- NexShell: Major refactor of Command Plane for Sovereign Ring access.
- Architecture: Updated SPEC files and Doctrines (Silence, Hexagonal Sovereignty).
- Purge: Removed legacy rumk and nip artifacts for a clean substrate.
- Web: Updated landing page vision to match Rumpk v1.1 milestones.
- Implemented Sovereign Syscall Table at 0x801FFF00
- Added cooperative yielding (s_yield) for Guest/Kernel concurrency
- Initialized Guest RX Ring and flows in Kernel
- Bridged LwIP in Guest via net_glue and ion_client overrides
- Validated TCP handshake and data transmission (Subject Zero -> Host)
- Confirmed 'Hello from the Membrane!' via UART and Network