@@ -4,6 +4,99 @@ All notable changes to spar are documented here. Format follows
44[ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) and the project
55follows [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
7+ ## [ 0.8.0] — 2026-04-28
8+
9+ This release promotes the Track D Phase 1 (TSN/Ethernet WCTT analysis) and
10+ Track E (frozen-platform / mobile-application + hypothetical-rebinding
11+ oracle) features that have been on ` main ` since v0.7.1. Also adds the
12+ ` spar moves verify ` and ` spar moves enumerate ` user-facing CLIs.
13+
14+ ### Added — Track D Phase 1: TSN/Ethernet WCTT analysis (6/6 commits)
15+
16+ - ** New crate ` spar-network ` ** — Network Calculus primitives, NetworkGraph
17+ extraction from ` SystemInstance ` , and supporting types. All values in
18+ ` u64 ` picoseconds / bytes / bits-per-second — no floating-point drift.
19+ - ** ` Spar_Network::* ` property set** — ` Switch_Type ` (FIFO / Priority /
20+ TSN), ` Queue_Depth ` , ` Forwarding_Latency ` (Time_Range), ` Output_Rate ` ,
21+ ` WCTT_Budget ` . Switches are modelled as ` bus implementation ` carrying
22+ the ` Switch_Type ` discriminator (Option C of the design — AADL-spec-
23+ conformant, no grammar extension).
24+ - ** NC primitives** — ` ArrivalCurve ` , ` ServiceCurve ` , ` backlog_bound ` ,
25+ ` delay_bound ` , ` residual_service ` , ` output_bound ` . Closed-form for
26+ the affine + rate-latency case.
27+ - ** ` WcttAnalysis ` pass** — per-stream end-to-end traversal-time bounds
28+ across the device/bus graph. New diagnostics: ` WcttBound ` ,
29+ ` WcttExceedsBudget ` , ` WcttUnservable ` , ` WcttSwitchOverloaded ` .
30+ - ** ` latency.rs ` integration** — RTA-derived WCET on compute hops
31+ alternates with WCTT-derived bounds on network hops, end-to-end.
32+ ` Bus_Properties::Latency ` scalar remains the fallback for unannotated
33+ buses, preserving v0.7.x behaviour.
34+ - ** Lean theorems** — ` proofs/Proofs/Network/MinPlus.lean ` mirrors classical
35+ NC closed-forms with monotonicity proved + ` sorry ` -with-` TODO(v1.0.0) ` for
36+ the universally-quantified arithmetic statements.
37+
38+ Phase 2 (TSN-shaped service curves: TAS, CBS, frame preemption) is
39+ deferred to v0.8.x.
40+
41+ ### Added — Track E: hypothetical-rebinding oracle (7/8 commits)
42+
43+ - ** ` Spar_Migration::* ` property set** — ` Frozen ` , ` Mobile ` ,
44+ ` Allowed_Targets ` , ` Pinned_Reason ` . Plus ` is_frozen ` / ` is_mobile `
45+ helpers for HIR-level mobility queries.
46+ - ** ` BindingOverlay ` ** — HIR-level overlay so any analysis can run on a
47+ hypothetical binding without mutating the ` SystemInstance ` . Validates
48+ against Frozen / Allowed_Targets returning structured ` FrozenViolation ` /
49+ ` AllowedTargetsViolation ` diagnostics.
50+ - ** ` spar moves verify --component X --to Y ` ** — first user-facing
51+ surface of the migration oracle. Builds a ` BindingOverlay ` , runs
52+ validation + analyses, returns structured pass/fail JSON. Exit codes
53+ 0/1/2 distinguish ok / analysis-error / binding-violation.
54+ - ** ` spar moves enumerate --component X ` ** — design-space exploration.
55+ Lists every valid hypothetical rebinding target within ` Allowed_Targets `
56+ with verification status and a multi-objective ranking metric.
57+ - ** Multi-objective ranking** — `--objective max-response | total-load |
58+ total-power | total-weight | balanced` . Adds ` Spar_Power::Power_Budget`
59+ property. Score uses the same RTA + property-accessor machinery as
60+ direct verification, so ` verify ` and ` enumerate ` stay consistent.
61+ - ** Rivet variant integration** — both ` verify ` and ` enumerate ` accept
62+ ` --variant NAME ` (implicit; shells out to ` rivet ` ) or
63+ ` --variant-context PATH ` (explicit; reads JSON blob). Variant filter
64+ applies before overlay validation per the v1 contract's intersection
65+ semantics.
66+ - ** Documentation** — ` docs/cli/moves.md ` with flags, exit codes,
67+ output schemas, candidate-set derivation, ranking semantics, worked
68+ example.
69+
70+ Commit 8 (MCP tool surface for ` spar.verify_move ` / ` spar.enumerate_moves ` )
71+ is v0.9.0 scope by design — read-only / idempotent only, deterministic
72+ apply stays CLI-exclusive.
73+
74+ ### Added — Track F: SysML v2 / KerML community engagement strategy
75+
76+ - ` docs/designs/track-f-sysml-kerml-engagement.md ` — research-backed
77+ engagement plan for the OMG SysML v2 ecosystem. Anchors on the
78+ ` Systems-Modeling/SysML-v2-AADL-Release ` repo + named contacts at
79+ Galois / CMU-SEI / Ellidiss. Includes verified ` spar-sysml2 ` audit
80+ (production-grade with full requirements roundtrip) + Rust ecosystem
81+ positioning (` syster ` , ` Sysand ` , ` tree-sitter-sysml ` ).
82+
83+ ### Changed
84+
85+ - COMPLIANCE.md narrative updated for v0.8.0 release; v0.9.0 horizon
86+ noted (Track E commit 8 MCP, spar-insight, Track D Phase 2 conditional
87+ on demand, syster license clarification).
88+ - Test count: ~ 2200+ across 18 crates (previously ~ 1900+ across 17).
89+
90+ ### Documentation
91+
92+ - ` docs/cli/moves.md ` — comprehensive ` spar moves verify ` / ` enumerate ` reference.
93+ - ` docs/designs/v0.7.0-hierarchical-rta.md ` , ` track-d-tsn-wctt-research.md ` ,
94+ ` track-e-migration-research.md ` , ` track-f-sysml-kerml-engagement.md ` .
95+ - ` docs/contracts/rivet-spar-variant-v1.md ` — variant interchange contract.
96+ - ` proofs/README.md ` — proof tree overview.
97+
98+ ---
99+
7100## [ 0.7.1] — 2026-04-27
8101
9102This release closes the v0.7.x line. Headline: full IRQ-aware response-time
0 commit comments