Migrating to 0.2.1¶
TrustWeave 0.2.1 carries forward the 0.2 hardening while preserving the product boundary: it reviews explicitly supplied declarations and local metadata without executing an agent, model, declared tool, MCP server, plugin, or network operation.
Upgrade¶
Install published 0.2.1 into a clean environment and confirm the package contract before using project artifacts:
python -m pip install --upgrade trustweave==0.2.1
trustweave --help
trustweave schema list
trustweave schema show agent-security-bundle-v1alpha1.schema.json
TrustWeave 0.2.1 is published and available from PyPI. Annotated v0.2.0 remains an immutable unpublished audit tag, was never published to PyPI, and has no GitHub Release; do not install, reuse, or treat it as a public release.
Contract changes¶
| Area | 0.2.1 behavior | Migration action |
|---|---|---|
| Findings | Built-in producers emit bounded, deeply immutable canonical findings validated against finding/v1alpha1 |
Revalidate stored generated artifacts and avoid adding undocumented finding fields |
| Chain manifests | Node kinds use exact field allowlists; ambiguous output nodes are not accepted |
Replace ambiguous nodes with a documented source, data, tool, sink, approval, or sanitizer role |
| Chain budgets | Paths, states, and edges stop before exceeding the configured budget | Treat TW-CHAIN-004 as incomplete analysis and review or raise limits deliberately |
| Policy v1alpha2 | Identifier, purpose-tag, classification-bound, capability, and control predicates are validated strictly | Correct invalid taxonomy references, duplicate predicates, unknown controls, and empty intersections |
| Rule guidance | Built-in review rules are registry-backed in JSON, Markdown, SARIF, and the rule catalog | Keep local extensions separate from built-in TW-* review identifiers |
| Historical bundle evidence | v1alpha1 bundles must satisfy the authentic historical semantic contract; v1alpha2 remains strict | Preserve valid historical artifacts, regenerate malformed evidence from source inputs, and generate current bundles rather than hand-editing them |
| Risk lifecycle documents | v1alpha2 decisions require valid v3 fingerprints, provenance, duplicate-free entries, and exact expiry behavior | Recreate decisions through the strict local lifecycle workflow; an expiry equal to review time is expired |
| Configuration | trustweave.toml is strict, typed, local-only, and bounded in discovery |
Rename baseline / candidate to baseline_bundle / candidate_bundle; remove unknown fields, remote includes, secret fields, and environment interpolation assumptions |
| CI stages | Fourteen named local stages are supported with declared input dependencies | Select only validate, scan, scenarios, policy_review, policy_coverage, diff, trace_review, mcp_profile_review, chain_review, risk, sarif, attestation, report, and summary |
| SARIF | Exports use local pinned-schema conformance tests and canonical fingerprint deduplication | Rebuild SARIF from source review artifacts rather than hand-editing exports |
Verify a migrated project¶
trustweave config validate --config trustweave.toml
trustweave --generated-at 2026-08-14T00:00:00+00:00 \
ci --config trustweave.toml --format json
Review every generated TW-CHAIN-004, policy coverage, baseline, or suppression result. Baselines and suppressions remain visible reviewer decisions; they are not remediation and do not make a runtime safe.
Removed and intentionally unsupported behavior¶
TrustWeave does not preserve an ambiguous chain output node. It also does not add automatic uploads, pull-request comments, live endpoint discovery, plugin loading, credential handling, remote policy/schema loading, or runtime enforcement. Those operations remain outside the local deterministic evidence boundary.