elicitation v0.11.0
Elicitation 0.11.0 Release Notes
Overview
The headline story is the maturation of the Verified State Machine (VSM) toolchain into a complete, end-to-end developer workflow — from annotating your Rust code to running proofs across three backends with a single command. Alongside that, this release delivers a wave of new shadow crates, a production-quality database explorer application, and a complete formal GIS standards library.
🛠️ The elicitation generate + elicitation prove Workflow
The most impactful change for users doing formal verification. You can now go from annotated source to verified proofs without writing any boilerplate:
# Scan your VSMs and emit Kani/Verus/Creusot proof harnesses
elicitation generate kani --crate-path crates/my_crate
elicitation generate verus --crate-path crates/my_crate
elicitation generate creusot --crate-path crates/my_crate
# Run all backends with per-harness progress + CSV tracking
elicitation prove --kani --csv
elicitation prove --verus --csv
elicitation prove --creusot --csvKey capabilities:
- syn-based VSM scanner — reads
#[derive(VerifiedStateMachine)]and#[formal_method]annotations directly from source; no separate manifest required. - Precise import resolver — scans parent modules to emit correct
usepaths in generated files; generated code is immediatelyrustfmt-formatted and warning-free. - Per-harness CSV tracking with configurable
KANI_TIMEOUT(default 300s) and--resumesupport so interrupted runs pick up where they left off. - indicatif progress bar with per-harness status, elapsed time, and live spinner.
- Reliable process cleanup — on timeout,
libc::killpg+ recursive/proctree walk ensures cbmc and all its descendants are fully reaped. No more orphaned processes consuming RAM after a timeout. - Verus V13
assume_specificationpattern — generated Verus companions use the most powerful and composable spec-attachment mechanism available. - Creusot
extern_spec!architecture — generated companions use trusted premises rather than#[trusted]conclusions, producing real verification conditions.
✅ Proof Gallery Completions
All three backend galleries are now fully proven:
| Backend | Gallery levels | Harnesses |
|---|---|---|
| Kani | Gallery L1–L15 + all VSM harnesses | 221/221 passing |
| Creusot | C1–C24 | All Why3 goals closed |
| Verus | V1–V13 | All verified |
Notable gallery additions:
- Kani L15 — DFCC + bounded Vec blowup diagnosis; documents the exact CBMC failure modes so you know what patterns to avoid.
- Creusot C21–C24 — two-step composition proofs for full panel machine lifecycles.
- Verus V11–V13 — leaf-lemma + composition patterns for multi-step VSM transitions.
🔒 Verified State Machines
The #[derive(VerifiedStateMachine)] and #[formal_method] derive macros are now stable:
#[formal_method]gates#[instrument]behindcfg_attr(not(kani), ...)automatically, preventing tracing prologues from appearing in DFCC verification conditions.KaniComposederive macro generates depth-aware compositional harnesses (d0/d1/d2) — leaf proofs compose viastub_verifiedin ~4s vs ~33s for full leaf proofs.Established<P>: KaniCompose— theEstablishedwrapper participates in compositional proofs out of the box.- The archive module is fully covered by four VSMs (
ArchiveNav,ArchivePanel,ArchiveConnection,ArchiveOverlay) with generated harnesses for Kani, Verus, and Creusot.
🗄️ elicit_redb — Embedded Database Backend
A complete rewrite of elicit_redb as a proper shadow crate:
RedbBackendimplements the fullelicit_dbtrait suite — typed key-value operations, table management, and transactional semantics.- UUID-handle pattern —
RedbHandlewraps aUuidrather than a rawArc<Database>, making handles cheap to clone andSend + Synctrivially. ArchiveKvPlugin— 10 MCP tools exposing redb KV operations to AI agents and MCP clients directly from the archive module.
📊 Archive Application
The archive database explorer is now a full-featured application with three parallel frontends — egui/wgpu (native desktop), Leptos (browser), and ratatui (terminal):
Phase highlights shipped in this release:
- Interactive data grid with inline row edit/insert/delete
- SQL editor with syntax highlighting, query history, and saved queries
- Column statistics, EXPLAIN viewer, and query plan comparison
- ERD diagram view with FK enrichment and visual grid layout
- Monitor panel with SSE live polling, WAL stats, role management, and backup controls
- CSV/JSON/TSV/NDJSON export
- SSH tunnel + SSL connection profiles
- Multi-connection management
💰 GAAP / Financial Domain
elicit_server gains a first-class GAAP module with full ASC concordance:
- Four-phase ledger foundation: account types and chart of accounts, journal entries with typestate VSM, ledger storage with balance queries, financial statements with period analysis and ratios.
GaapBackendtrait + descriptor types + three-role trait interface.- Journal→GAAP bridge with proof composition impls for audit-traceable operations.
- PostgreSQL persistence layer.
🗺️ GIS Formal Standards Library
A comprehensive suite of formal contracts and trait interfaces for GIS standards:
| Standard | Coverage |
|---|---|
| ISO 19111 | Full CRS interface + 55 gap props (§21–29) + FV precondition props |
| OGC SFS | Contracts + three-role traits + finiteness guards + aggregate validity |
| ISO 19115 | Contracts + three-role traits + 21 FV gap props |
| RFC 7946 GeoJSON | 210 contracts + three-role trait interface |
| FGDC CSDGM | 160 props (§0–§10) + descriptor types |
All five standards integrate with the ProvableFrom credentialed proof-minting system.
📦 New Shadow Crates
0.11.0 adds MCP shadow crate coverage for:
| Crate | Tools |
|---|---|
elicit_axum |
4 plugins, 22 tools — FromRequest, IntoResponse, Router, Handler |
elicit_tower |
limit, retry, http, util, builder, balance, steer plugins |
elicit_leptos |
84 MCP tools; full Leptos 0.8 coverage |
elicit_wgpu |
Phase 2 primitives + 5 plugins, 17 tools |
elicit_winit |
11 types + 3 plugins; winit 0.30 |
elicit_bevy |
18+ Bevy 0.18 shadow types across render, input, scene, camera domains |
elicit_georaster |
Raster support + proof coverage |
elicit_rstar |
Core wrappers and tree factories + proof coverage |
elicit_proj |
Proj-types Phase 2 support |
elicit_wkt |
WKT read/write |
elicit_wkb |
WKB read/write |
elicit_geojson |
Spatial and GeoJSON transport helpers |
| SurrealDB | 62 tools across 7 plugins; SurrealDB 3.x complete |
elicit_csv |
7 primitive types, full MCP coverage |
elicit_toml |
Phase 1 + Phase 2 TOML ecosystem support |
| polars | 4 plugins, 72 tools |
elicit_uom |
Multi-param factory pattern for units-of-measure |
🔒 WCAG 2.2 Proof-Carrying Palette
- Full WCAG 2.2 concordance rewrite — all success criteria modelled as contracts.
ProvableFromcredential system — proof dependencies are tracked as ZST credential types at compile time.- Chain-of-custody proof tokens flow through all three rendering backends (egui, Leptos, ratatui).
proof_credential!macro for zero-cost ZST credential +ProvableFrombinding.
🔧 Infrastructure
- CI overhaul — feature-group matrix jobs, per-platform disk space management, split lint/test workflows,
cifeature flag for smoke tests. cargo-semver-checkswired intojust pre-release— API compatibility is checked against crates.io baseline before every release.elicitation_macrosretired — helpers moved toelicitation_kani;ELICITATION_MACROS.mdserves as the macro discovery document.just check-featurespowerset check fixed — no more false warnings from vendoredsurrealdb-types.
Upgrade Notes
- Workspace version bumped
0.10.0 → 0.11.0. All crates share this version. - The legacy
elicit_proofsrunner binary has been removed. Useelicitation prove --kani/--verus/--creusotinstead. elicitation_macrosis no longer a workspace member. Remove it from any direct dependencies..envis required forelicitation proveto locate proof packages. Copy.env.exampleto.envand setKANI_PACKAGE,CREUSOT_PACKAGE, andVERUS_PATH.