|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## [0.1.0] — 2026-05-05 |
| 3 | +All notable changes to the AxonOS kernel foundational crates will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## [0.1.1] — 2026-05-16 |
| 11 | + |
| 12 | +### Regulatory Status |
| 13 | +**NOT FOR CLINICAL USE.** This release contains pre-submission design controls and |
| 14 | +verification evidence only. It has not been cleared or approved by any regulatory |
| 15 | +body (FDA, Notified Body, etc.). Integration into a medical device requires a full |
| 16 | +quality management system per ISO 13485 and compliance with local regulations. |
| 17 | + |
| 18 | +### Added |
| 19 | +- `axonos-scheduler` — Earliest-deadline-first (EDF) scheduling decision logic. |
| 20 | + Liu–Layland admission test with fixed-point utilisation arithmetic, |
| 21 | + synchronous busy-period response-time analysis, and deterministic deadline |
| 22 | + tie-breaking. |
| 23 | +- `axonos-spsc` — Single-producer, single-consumer ring buffer. Wait-free |
| 24 | + `try_push` / `try_pop`. Memory ordering via Release/Acquire sequence counters. |
| 25 | + Unsafe surface is exactly two operations (`ptr::write`, `assume_init_read`); |
| 26 | + both guarded by Kani-verified invariants. |
| 27 | +- `axonos-capability` — Capability-based application isolation. Structural data |
| 28 | + minimisation by absence: prohibited neural-data types do not exist as enum |
| 29 | + variants. Analytic mutual-information upper bound computed in fixed-point |
| 30 | + arithmetic. |
| 31 | +- `axonos-time` — Monotonic clock abstraction (`Instant`, `Micros`). Saturating |
| 32 | + arithmetic, no panics on the hot path. `MonotonicClock` trait for hardware |
| 33 | + integration; `MockClock` for testing and bounded model checking. |
| 34 | +- `axonos-intent` — Strict RFC-0006 wire-format encoder/decoder for typed intent |
| 35 | + observations. 32-byte record layout verified at compile time. All decoding is |
| 36 | + rejecting: invalid kind tags, out-of-range direction bytes, non-zero reserved |
| 37 | + fields, and timestamps beyond the session envelope are refused with specific |
| 38 | + errors. |
| 39 | +- 28 Kani bounded model checking (BMC) harnesses across all five crates. |
| 40 | +- Continuous integration: test (Linux/macOS/Windows), rustfmt, Clippy, MSRV |
| 41 | + (Rust 1.75), `no_std` cross-build (Cortex-M4F / Cortex-M33), Miri |
| 42 | + (undefined-behaviour detection), Kani reproduction, and `cargo-deny` audit. |
| 43 | + |
| 44 | +### Evidence (Derived Claims) |
| 45 | +The following values are computed algorithmically from the source code; they are |
| 46 | +**not** runtime measurements on physical hardware. |
| 47 | + |
| 48 | +| Claim | Value | Source | |
| 49 | +|---|---|---| |
| 50 | +| BCI pipeline utilisation bound | `U = 0.174` | `axonos-scheduler` unit tests, fixed-point derivation | |
| 51 | +| Synchronous busy-period response-time bound | `R = 796 µs` | `axonos-scheduler` unit tests, implicit-deadline RTA | |
| 52 | +| Full-catalogue information leak bound | `≤ 140.85 bits/s` | `axonos-capability` unit tests, analytic `Σ r·log₂\|payload\|` | |
| 53 | + |
| 54 | +### Security |
| 55 | +- `#![forbid(unsafe_code)]` in `axonos-scheduler`, `axonos-capability`, |
| 56 | + `axonos-time`, and `axonos-intent`. |
| 57 | +- `axonos-spsc` contains two `unsafe` operations on the payload path, each with |
| 58 | + documented safety invariants and Kani BMC coverage. |
| 59 | +- No heap allocation on any hot path. Static buffers and const-generic sizing |
| 60 | + only. |
| 61 | + |
| 62 | +### Known Limitations |
| 63 | +- **No hardware-in-the-loop validation.** Response-time and utilisation claims are |
| 64 | + algorithmically derived; they have not been validated by oscilloscope or GPIO |
| 65 | + instrumentation on the reference STM32H573 fixture. Phase 1 WCRT measurement is |
| 66 | + scheduled for Q2 2026. |
| 67 | +- **No runnable kernel binary.** This release ships library crates only. The |
| 68 | + `axonos-core` integration crate (bare-metal scheduler loop, context switch, |
| 69 | + timer driver, MPU setup) is planned for the next release. |
| 70 | +- **No MPU, stack, or context-switch code.** These are architecture-bound |
| 71 | + concerns deliberately excluded from the verifiable algorithmic core; they will |
| 72 | + reside in the integration layer. |
| 73 | +- **No end-to-end HMAC verification.** `axonos-intent` carries an opaque truncated |
| 74 | + attestation tag; tag computation and verification are the responsibility of the |
| 75 | + downstream consumer. |
| 76 | + |
| 77 | +### Notes |
| 78 | +- The dependency graph between crates is acyclic: `axonos-intent` depends on |
| 79 | + `axonos-time` and `axonos-capability`; the remaining three crates are |
| 80 | + standalone. |
| 81 | +- All crates are `#![no_std]`, dual-licensed under Apache-2.0 OR MIT, and |
| 82 | + publishable independently. |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## Template (Unreleased) |
4 | 87 |
|
5 | 88 | ### Added |
6 | | -- EDF scheduler with Liu-Layland schedulability test |
7 | | -- Five-stage signal processing pipeline (Kalman, FIR, Notch, Artifact, CSP, LDA) |
8 | | -- Zero-copy SPSC ring buffer with sequence-number protocol |
9 | | -- Dual-core real-time contract (DC1-DC6) |
10 | | -- Capability-based application isolation |
11 | | -- Consent FSM and stimulation interlock |
12 | | -- HMAC-SHA256 attestation interface |
13 | | -- Platform support for STM32F407 and STM32H573 |
14 | | -- Kani bounded model checking proofs |
15 | | -- Comprehensive documentation and test suite |
16 | | - |
17 | | -### Evidence |
18 | | -- L2 utilisation: U^L2 = 0.2181 < U_max = 0.25 |
19 | | -- L2 WCRT: 972 µs (4.1× below 4 ms deadline) |
20 | | -- Zero deadline misses over 10.8×10^6 epochs |
21 | | -- EDF jitter: σ = 2.1 µs, P99.9 = 6.5 µs |
22 | | - |
23 | | -### Pending |
24 | | -- L3 GPIO oscilloscope validation (Q2 2026) |
25 | | -- Direct power measurement |
26 | | -- Ferrocene toolchain qualification |
| 89 | +### Changed |
| 90 | +### Deprecated |
| 91 | +### Removed |
| 92 | +### Fixed |
| 93 | +### Security |
0 commit comments