Commit 6b58e17
## Proof-obligation map (#84) — Tiers 0–3, batched
Full lowest-tier-first. Entire workspace: `cargo clippy --workspace
--all-targets` clean, `cargo test --workspace` all green.
### Tier 0 — foundations
- **0.1 panic-freedom (#86)** — 6 operational `unwrap`/`expect` removed;
`cfg_attr(not(test), deny(clippy::unwrap_used, expect_used))` on every
crate.
- **0.2 numeric containment (#87)** — proptest no-NaN/Inf for
`esn::step`, `lsm::step`, sensors IIR.
- **0.3 unsafe discipline** — `deny`/`forbid` (on main).
### Tier 1 — core algorithmic correctness
- **1.1 Echo State Property (#88)** — true spectral radius via power
iteration (merged in #101).
- **1.2 LSM bounded dynamics (#89)** — same spectral-radius fix in lsm +
membrane/spike-history bounds proptest.
- **1.3 bridge soundness (#90)** — totality / determinism /
bounded-output proptest.
### Tier 2 — system orchestration
- **2.1 lifecycle (#91)** — compile-time **typestate**
(`Created→Active→Down`, terminal shutdown); illegal transitions don't
compile. Matches `proofs/tla/Lifecycle.tla`.
- **2.2 concurrency (#92)** — no-lost-updates stress test (8×250);
data-race & deadlock freedom argued from safe-Rust + single-lock.
- **2.3 resource/affine (#93)** — design spec (`proofs/affine/`); Rust
ownership gives acquire-release-once today, AffineScript linear handles
deferred.
### Tier 3 — trust boundary
- **3.1 data-egress (#94)** — egress allow-list test (API key stays a
header; no device/sensor fields in body) +
neural-context-not-sent-when-disabled.
- **3.2 bounded external interaction (#95)** — saturating/capped backoff
(fixes a latent `pow` overflow); injection-safety via typed JSON.
Closes #86 #87 #89 #90 #91 #92 #94 #95 (1.1/#88 already merged via #101;
2.3/#93 remains a tracked spec).
_The two Kotlin banned-language CI checks are red from `main`'s
`android/` app (tracked in #83), not from this PR._
https://claude.ai/code/session_01Gu1JFCZHuBtBhAWPr4sMQw
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 78013d5 commit 6b58e17
20 files changed
Lines changed: 674 additions & 259 deletions
File tree
- .machine_readable/agent_instructions
- crates
- bridge
- src
- tests
- claude-client/src
- esn
- src
- tests
- llm/src
- lsm
- src
- tests
- neurophone-core
- benches
- src
- tests
- sensors
- src
- tests
- proofs/affine
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
28 | 41 | | |
29 | 42 | | |
30 | 43 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
0 commit comments