Changelog
All notable changes to ros2_medkit are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
SOVD bulk-data endpoints for all entity types:
GET /{entity}/bulk-data- list available bulk-data categoriesGET /{entity}/bulk-data/{category}- list bulk-data descriptorsGET /{entity}/bulk-data/{category}/{id}- download bulk-data file
Inline
environment_datain fault response with:extended_data_records: First/last occurrence timestampssnapshots[]: Array of freeze_frame and rosbag entries
SOVD-compliant
statusobject in fault response with aggregatedStatus, testFailed, confirmedDTC, pendingDTC fieldsUUID identifiers for rosbag bulk-data items
x-medkitextensions with occurrence_count, severity_label
Changed
Fault response structure now SOVD-compliant with
itemwrapperRosbag downloads use SOVD bulk-data pattern instead of legacy endpoints
Rosbag IDs changed from timestamps to UUIDs
Removed
GET /faults/{code}/snapshots- useenvironment_datain fault responseGET /faults/{code}/snapshots/bag- use bulk-data endpointGET /{entity}/faults/{code}/snapshots- useenvironment_dataGET /{entity}/faults/{code}/snapshots/bag- use bulk-data endpoint
Breaking Changes:
Fault response structure changed - clients must update to handle
itemwrapper andenvironment_datastructureLegacy snapshot endpoints removed - migrate to inline snapshots and bulk-data
Rosbag identifiers changed from timestamps to UUIDs
[0.1.0] - 2026-02-01
First public release of ros2_medkit.
Added
Gateway (ros2_medkit_gateway)
REST API gateway exposing ROS 2 graph via SOVD-compatible endpoints
Discovery endpoints:
/areas,/components,/apps,/functionsData access: Read topic data, publish to topics
Operations: Call ROS 2 services and actions with execution tracking
Configurations: Read/write/reset ROS 2 node parameters
Faults: Query and clear faults from fault manager
Three discovery modes: runtime_only, hybrid, manifest_only
Manifest-based discovery with YAML system definitions
Heuristic app detection in runtime mode
JWT authentication with RBAC (viewer, operator, configurator, admin roles)
TLS/HTTPS support with configurable TLS 1.2/1.3
CORS configuration for browser clients
SSE (Server-Sent Events) for real-time fault notifications
Health check endpoint
Fault Manager (ros2_medkit_fault_manager)
Centralized fault storage and management node
ROS 2 services:
report_fault,list_faults,clear_faultAUTOSAR DEM-style debounce lifecycle (PREFAILED → CONFIRMED → HEALED → CLEARED)
Fault aggregation from multiple sources
Severity escalation
In-memory storage with thread-safe implementation
Fault Reporter (ros2_medkit_fault_reporter)
Client library for reporting faults from ROS 2 nodes
Local filtering with configurable threshold and time window
Fire-and-forget async service calls
High-severity bypass for immediate fault reporting
Diagnostic Bridge (ros2_medkit_diagnostic_bridge)
Bridge node converting
/diagnosticsmessages to fault manager faultsConfigurable severity mapping from diagnostic status levels
Support for diagnostic arrays with multiple status entries
Serialization (ros2_medkit_serialization)
Runtime JSON ↔ ROS 2 message serialization
Dynamic message introspection without compile-time type knowledge
Support for all ROS 2 built-in types, arrays, nested messages
Type caching for performance
Messages (ros2_medkit_msgs)
Fault.msg: Fault status message with severity, timestamps, sourcesFaultEvent.msg: Fault event for subscriptionsReportFault.srv: Service for reporting faultsListFaults.srv: Service for querying faults with filtersClearFault.srv: Service for clearing faults
Documentation
Sphinx documentation with Doxygen integration
Getting Started tutorial
REST API reference
Configuration reference (server, discovery, manifest)
Authentication and HTTPS tutorials
Docker deployment guide
Companion project tutorials (web-ui, mcp-server)
Tooling
Postman collection for API testing
VS Code tasks for build/test/launch
Development container configuration
GitHub Actions CI/CD pipeline
Companion Projects
sovd_web_ui: Web interface for entity browsing
ros2_medkit_mcp: MCP server for LLM integration
SOVD Compliance
This release implements a subset of the SOVD (Service-Oriented Vehicle Diagnostics) specification adapted for ROS 2:
Core discovery endpoints (areas, components)
Extended discovery (apps, functions) via manifest mode
Data access (read, write)
Operations (services, actions with executions)
Configurations (parameters)
Faults (query, clear) with environment_data
Bulk data transfer (rosbags via bulk-data endpoints)
Not yet implemented:
Software updates
Locks
Triggers
Communication logs