-
Notifications
You must be signed in to change notification settings - Fork 18
Feat/rosdistro release prep #169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+8,748
−45
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
d30349a
fix(gateway): add missing libssl-dev dependency to package.xml
mfaferek93 7ced79f
feat(gateway): vendor tl::expected v1.3.1 (CC0)
mfaferek93 25c3b22
feat(gateway): vendor jwt-cpp v0.7.0 (MIT)
mfaferek93 f783006
docs: generate CHANGELOG.rst for all packages
mfaferek93 e3011e4
fix(gateway): update package.xml comment from FetchContent to vendored
mfaferek93 9bd9001
docs: move changelog content to Forthcoming for 0.2.0 release
mfaferek93 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| Changelog for package ros2_medkit_diagnostic_bridge | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
|
||
| Forthcoming | ||
| ----------- | ||
| * Initial rosdistro release | ||
| * Bridge node converting standard ROS 2 /diagnostics to FaultManager fault reports | ||
| * Severity mapping: | ||
|
|
||
| * OK -> PASSED event (fault condition cleared) | ||
| * WARN -> WARN severity FAILED event | ||
| * ERROR -> ERROR severity FAILED event | ||
| * STALE -> CRITICAL severity FAILED event | ||
|
|
||
| * Auto-generated fault codes from diagnostic names (UPPER_SNAKE_CASE) | ||
| * Custom name_to_code mappings via ROS parameters | ||
| * Stateless design: always sends PASSED for OK status (handles restarts) | ||
| * Contributors: Michal Faferek | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
mfaferek93 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Changelog for package ros2_medkit_fault_manager | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
|
||
| Forthcoming | ||
| ----------- | ||
| * Initial rosdistro release | ||
| * Central fault management node with ROS 2 services: | ||
|
|
||
| * ReportFault - report FAILED/PASSED events with debounce filtering | ||
| * GetFaults - query faults with filtering by severity, status, correlation | ||
| * ClearFault - clear/acknowledge faults | ||
|
|
||
| * Debounce filtering with configurable thresholds: | ||
|
|
||
| * FAILED events decrement counter, PASSED events increment | ||
| * Configurable confirmation_threshold (default: -1, immediate) | ||
| * Optional healing support (healing_enabled, healing_threshold) | ||
| * Time-based auto-confirmation (auto_confirm_after_sec) | ||
| * CRITICAL severity bypasses debounce | ||
|
|
||
| * Dual storage backends: | ||
|
|
||
| * SQLite persistent storage with WAL mode (default) | ||
| * In-memory storage for testing/lightweight deployments | ||
|
|
||
| * Snapshot capture on fault confirmation: | ||
|
|
||
| * Topic data captured as JSON with configurable topic resolution | ||
| * Priority: fault_specific > patterns > default_topics | ||
| * Stored in SQLite with indexed fault_code lookup | ||
| * Auto-cleanup on fault clear | ||
|
|
||
| * Rosbag capture with ring buffer: | ||
|
|
||
| * Configurable duration, post-fault recording, topic selection | ||
| * Lazy start mode (start on PREFAILED) or immediate | ||
| * Auto-cleanup of bag files, storage limits (max_bag_size_mb) | ||
| * GetRosbag service for bag file metadata | ||
|
|
||
| * Fault correlation engine: | ||
|
|
||
| * Hierarchical mode: root cause to symptom relationships | ||
| * Auto-cluster mode: group similar faults within time window | ||
| * YAML-based configuration with pattern wildcards | ||
| * Muted faults tracking, auto-clear on root cause resolution | ||
|
|
||
| * FaultEvent publishing on ~/events topic for SSE streaming | ||
| * Wall clock timestamps (compatible with use_sim_time) | ||
| * Contributors: Bartosz Burda, Michal Faferek | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
mfaferek93 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Changelog for package ros2_medkit_fault_reporter | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
|
||
| Forthcoming | ||
| ----------- | ||
| * Initial rosdistro release | ||
| * FaultReporter client library with simple API: | ||
|
|
||
| * report(fault_code, severity, description) - report FAILED events | ||
| * report_passed(fault_code) - report fault condition cleared | ||
| * High-severity faults (ERROR, CRITICAL) bypass local filtering | ||
|
|
||
| * LocalFilter for per-fault-code threshold/window filtering: | ||
|
|
||
| * Configurable threshold (default: 3 reports) and time window (default: 10s) | ||
| * Prevents flooding FaultManager with duplicate reports | ||
| * PASSED events always forwarded (bypass filtering) | ||
|
|
||
| * Configuration via ROS parameters (filter_threshold, filter_window_sec) | ||
| * Thread-safe implementation with mutex-protected config access | ||
| * Contributors: Bartosz Burda, Michal Faferek | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
mfaferek93 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Changelog for package ros2_medkit_gateway | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
|
||
| Forthcoming | ||
| ----------- | ||
| * Initial rosdistro release | ||
| * HTTP REST gateway for ros2_medkit diagnostics system | ||
| * SOVD-compatible entity discovery with four entity types: | ||
|
|
||
| * Areas, Components, Apps, Functions | ||
| * HATEOAS links and capabilities in all responses | ||
| * Relationship endpoints (subareas, subcomponents, related-apps, hosts) | ||
|
|
||
| * Three discovery modes: | ||
|
|
||
| * Runtime-only: automatic ROS 2 graph introspection | ||
| * Manifest-only: YAML manifest with validation (11 rules) | ||
| * Hybrid: manifest as source of truth + runtime linking | ||
|
|
||
| * REST API endpoints: | ||
|
|
||
| * Fault management: GET/POST/DELETE /api/v1/faults | ||
| * Data access: topic sampling via GenericSubscription | ||
| * Operations: service calls and action goals via GenericClient | ||
| * Configuration: parameter get/set via ROS 2 parameter API | ||
| * Snapshots: GET /api/v1/faults/{code}/snapshots | ||
| * Rosbag: GET /api/v1/faults/{code}/snapshots/bag | ||
|
|
||
| * Server-Sent Events (SSE) at /api/v1/faults/stream: | ||
|
|
||
| * Multi-client support with thread-safe event queue | ||
| * Keepalive, Last-Event-ID reconnection, configurable max_clients | ||
|
|
||
| * JWT-based authentication with configurable policies | ||
| * HTTPS/TLS support via OpenSSL and cpp-httplib | ||
| * Native C++ ROS 2 serialization via ros2_medkit_serialization (no CLI dependencies) | ||
| * Contributors: Bartosz Burda, Michal Faferek | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| MIT License | ||
|
|
||
| Copyright (c) 2018 Dominik Thalhammer | ||
|
|
||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
|
|
||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
|
|
||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.