You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): JSON envelopes, MCP jail, and vacuous polarity (#1528)
## Summary
MPI Cycle 1 (all 14 perspectives) plus Cycle 2 Test Auditor and
Developer on one session branch. Agent-facing JSON, MCP jail, vacuous
polarity, Windows CLI tests, and CI pins.
## Product / agent contract
- Vacuous infer and check now use success: true plus acuous: true (exit
0). Agents should branch on acuous, not on success.
- CLI check --json keeps ile_info.vacuous and also emits top-level
success / acuous / acuous_reason (shared
�ssura_pipeline::vacuous_status).
- check-rust JSON includes success next to ok.
- infer --json -o write-ok envelopes include success and ok (status: ok
remains as an alias).
- MCP �ssura_infer returns a JSON envelope. Write
esult.text to a .assura file, not the whole object.
- MCP file jail: relative to process cwd, extensions .assura / .rs /
.ir, post-canonicalize extension check (symlink leak.rs to .env is
rejected).
- Jail and resolve errors are JSON with �rror_kind: PATH_NOT_ALLOWED,
SOURCE_TOO_LARGE, SOURCE_NOT_UTF8, MISSING_SOURCE, PROMPT_FAILED.
- Source reads capped at 16 MiB with ake(max+1) on CLI, MCP, and
check-rust.
- infer --function applies to .rs sources (unknown name exits 1).
- �udit --timeout is honored via �erify_typed.
- �erify.solver is accepted as an alias of smt-solver.
## Correctness / CI
- Parallel SMT verify injects sibling lemmas (same as the non-parallel
path).
- Codegen float/u128 detection walks all expression children.
- check-rust directory scan fails closed on unparseable .rs and names
the file.
- Auto-approve allowlists Dependabot and assura-auto-approve bots (not
any [bot]).
- CVC5 prebuilt pin cvc5-1.3.1; rust-cache v2.9.2; mdBook 0.5.4; fuzz
nightly pin.
- Dependabot ignore floors for ariadne >=0.7 and z3 >=0.21.
- LLM HTTP and parse errors do not dump provider bodies (�xtract_json no
longer panics when } precedes {).
## Windows
- workspace_root() walks two parents from CARGO_MANIFEST_DIR (no
Unix-slash replace).
- Write-fail tests use a file-as-parent path so mkdir fails on Windows
and Unix.
## Held
Release-please #1519 (0.4.4) is not part of this PR. Do not merge it
without an explicit yes.
Human/upstream leftovers unchanged: #1410, #1411, #1396, #436.
---------
Signed-off-by: Sebastien Tardif <SebTardif@ncf.ca>
0 commit comments