Skip to main content

Module bundle_validate

Module bundle_validate 

Source
Expand description

Structural Armory Bundle Format (ABF) validator — ABF UI-alignment pass (docs/specs/SPEC_ABF_V0_2_PROVIDER_AWARE_COMPONENTS_AND_NATIVE_MEMORY_2026_08_10.md).

Pure functions only — no I/O, no Store access, same convention as bundle_export.rs / bundle_import.rs. Checks a bundle’s raw JSON columns for the classes of bug bundle_export.rs’s own review cycle found and fixed one at a time (unknown provider keys, unsafe/colliding paths, malformed JSON) — surfaced proactively here, before export time, rather than only as an export warning after the fact.

This is advisory only: a bundle can be saved with validation errors present. The bundle.validate RPC is a read-only, on-demand check the Memory → Bundles editor’s “Validate” button calls.

Structs§

ValidationIssue
ValidationReport

Enums§

IssueSeverity

Functions§

push_error 🔒
validate_bundle
Run every structural check against a bundle. A bundle carries no MCP servers (SPEC_BUNDLE_CONTENTS_MEMORY_NOT_MCP_2026_10_07.md §3.1), so there are none to check.
validate_context_files 🔒
Mirrors bundle_export.rs::export_bundle’s own context-file handling: each path must survive sanitize_context_relative_path (no absolute paths, no .. traversal, no drive letters), and no two entries may normalize to the same output path case-insensitively (the most common export/extract targets have case-insensitive filesystems).
validate_instructions_by_provider 🔒
Every key must resolve to a known harness provider (providers::get_provider handles both canonical ids and aliases). Unlike context_files’ arbitrary user-supplied paths, provider keys are always exact matches against providers.rs’s hardcoded registry/alias strings — none of which contain / or . — so a path-normalization collision between two valid keys structurally cannot happen here; no collision check needed.