Skip to content

Commit 7cc1176

Browse files
authored
add: changelog
1 parent b04ccc4 commit 7cc1176

1 file changed

Lines changed: 89 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 89 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,93 @@
11
# Changelog
22

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)
487

588
### 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

Comments
 (0)