Skip to content

release: v3.1.0 — evidence interop + compliance/OTel export + output guards + agent tooling#81

Merged
escapeboy merged 10 commits into
masterfrom
feat/roadmap-wave1
Jul 18, 2026
Merged

release: v3.1.0 — evidence interop + compliance/OTel export + output guards + agent tooling#81
escapeboy merged 10 commits into
masterfrom
feat/roadmap-wave1

Conversation

@escapeboy

Copy link
Copy Markdown
Owner

Release v3.1.0 — additive, no breaking changes. Implements the first two waves of the "make Boruna more useful" roadmap, mined from adjacent tooling (Temporal / LangGraph / Langfuse / Credo AI / SLSA / in-toto / Sigstore) and the agentlanguages.dev peer catalogue, each mapped onto Boruna's determinism + evidence moat.

Deepen the evidence/audit moat

  • boruna evidence attest — in-toto Statement + DSSE envelope (predicateType boruna.dev/runtime-provenance/v1), ed25519-signed; makes runtime provenance consumable by cosign / in-toto-verify. Additive; native bundle unchanged.
  • boruna evidence report --framework eu-ai-act|nist|iso42001 — verifies a bundle, maps contents to the specific obligation each satisfies (EU AI Act Art. 12/19/26, NIST AI RMF, ISO 42001), honestly flags gaps. Technical mapping, not a compliance certificate.
  • boruna evidence otel — OTLP/JSON span export (no SDK/network) with tamper-evidence attributes + gen_ai.* spans; be the notarized upstream to any OTel backend.
  • Sealed contract + guard verdictsrequires/ensures now record ContractCheck events into the hash-chained log; new __builtin_guard(value, passed, label) runs a deterministic output check, traps fail-closed, and seals the verdict.

Strengthen agent authoring

  • std-guard (14th lib) — pure deterministic output validators.
  • MCP tools → 14boruna_symbols (exact .ax signatures) + boruna_run_sealed (compile + run + replay-verify → verifiable record). LangGraph/Temporal adapter examples under examples/adapters/.
  • Agent corpusllms.txt, .ax teaching primer, static agent portal.

Hardening & docs

  • Quickfix-coverage CI gate; evidence threat model + runtime-execution-provenance positioning; ax-language.md grammar-drift fix (verified with boruna lang check).

Verification

Full workspace: cargo fmt --check clean · clippy -D warnings zero warnings · cargo test --workspace = 1445 passed / 0 failed (the one intermittent failure was the pre-existing parallel-tracing flake, which passes single-threaded).

https://claude.ai/code/session_01BEk2VHyMr1MrSPitnhox5o

escapeboy added 10 commits July 18, 2026 14:21
Add `boruna evidence otel <bundle-dir> [--out spans.json]` emitting a
run as OpenTelemetry spans in OTLP/JSON — the file format any OTel
collector ingests, with no SDK dependency and no network (keeps v3.0
local-only). Root span carries tamper-evidence attributes
(boruna.bundle_hash, boruna.audit_log_hash, boruna.signature.keyid) so a
span in a tracing backend links back to a record verifiable by
`evidence verify`. Child spans come from the VM event log; llm.* calls
map to gen_ai.* (OTel GenAI semantic conventions), contract checks fold
onto the root as span events. Deterministic: trace/span IDs derived from
run_id + event index hashes, ordinal times.

Claude-Session: https://claude.ai/code/session_01BEk2VHyMr1MrSPitnhox5o
@escapeboy
escapeboy merged commit 30865d7 into master Jul 18, 2026
4 of 5 checks passed
@escapeboy
escapeboy deleted the feat/roadmap-wave1 branch July 18, 2026 13:42
@github-actions

Copy link
Copy Markdown

Bench compare

Threshold for regression: ≥ 10% slower mean.

Benchmark Mean change 99% CI
compile_crud_admin_template +6.91% [+4.89%, +9.19%]
compile_medium_program +2.49% [+1.33%, +3.59%]
compile_small_program +36.96% [+28.62%, +44.61%]
evidence_build_5_steps -7.46% [-12.34%, -1.24%]
evidence_build_empty -22.65% [-32.82%, -14.56%]
evidence_verify_10_steps -15.28% [-25.29%, -3.22%]
evidence_verify_5_steps -46.17% [-52.53%, -38.38%]
vm_call_dispatch_loop/iters=1000 -45.91% [-47.14%, -44.51%]
vm_call_dispatch_loop/iters=10000 -46.16% [-47.95%, -44.07%]
vm_pure_loop/iters=1000 -9.32% [-10.68%, -7.90%]
vm_pure_loop/iters=10000 -15.49% [-18.49%, -12.60%]
vm_pure_loop/iters=100000 -21.51% [-25.03%, -18.03%]
vm_record_loop/iters=1000 -30.50% [-34.57%, -26.13%]
vm_record_loop/iters=10000 -28.12% [-32.11%, -23.37%]

⚠️ 1 benchmark(s) regressed past threshold:

  • compile_small_program

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant