v0.2.0
What's New
Contract-first readiness reporting
bagx now positions itself as a readiness checker for recorded ROS2 bags — answering whether a bag is usable for SLAM, navigation, perception, manipulation, Autoware validation, or your custom robot stack.
Structured findings (eval --json)
JSON output now includes a machine-readable findings array with stable ids, alongside the human-facing recommendations:
{
"id": "sync.delay.high",
"severity": "warning",
"category": "sync_quality",
"domain": "slam",
"affected_topics": ["/imu", "/lidar"],
"evidence": [{"metric": "mean_delay_ms", "observed": 25.6, "expected": "<20", "unit": "ms"}]
}Ids follow <domain>.<area>.<qualifier> so passing states are also benchmark-checkable.
Benchmark expected_findings
Benchmark manifests can now gate on stable finding ids instead of recommendation text:
{"expect": {"expected_findings": [{"id": "nav2.detected", "severity": "info"}]}}Custom rules
- Load custom domain rules from JSON files,
BAGX_RULE_PLUGIN_PATH, or installedbagx.rulesentry points - Bundled plugin:
warehouse_botexample - Schema validation reports all errors at once with field paths
bagx rules listCLI command
Generic action / service / workflow observability
- Auto-detects
action_msgs/msg/GoalStatusArray, action result topics, and service events - Reports success rate, terminal failures, and top failure reasons
- Workflow findings emitted as
workflow.<topic>.{action_failures,result_failures,missing_service_responses}
Generic control-loop evaluation
- Domain-agnostic input → output latency measurement
- Works on bags without Nav2/Autoware/MoveIt topic names
Non-SLAM domain expansion
- New built-in domains:
perception,robotarm - Expanded Nav2/Autoware/MoveIt detection (e.g. relaxed Autoware to 1
/sensing/topic)
Versioned report contract
- JSON outputs include
schema_version(now 1.1.0),report_type,bagx_version, andfinding_ids - Benchmark suites:
benchmarks/open_data_suite.json,benchmarks/non_slam_suite.json
Tests & dogfooding
- 378 tests
- CLI and batch regression tests
- Dogfooded against real Nav2, Autoware, MoveIt bags