Skip to content

Comments

Add VS Code devcontainer configuration#4

Merged
bburda merged 2 commits intomainfrom
add_devcontainer
Nov 17, 2025
Merged

Add VS Code devcontainer configuration#4
bburda merged 2 commits intomainfrom
add_devcontainer

Conversation

@bburda
Copy link
Collaborator

@bburda bburda commented Nov 17, 2025

  • Add Dockerfile to define the development image.
  • Add devcontainer.json to configure VS Code remote container settings.
  • Add setup-env.sh to source environment variables on container start.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a comprehensive VS Code devcontainer configuration for ROS2 Jazzy development, enabling developers to work in a consistent, containerized environment with all necessary tools pre-installed.

Key Changes:

  • Dockerfile creates Ubuntu 24.04-based image with ROS2 Jazzy Desktop Full, development tools, and Python linting/testing utilities
  • DevContainer configuration mounts workspace and SSH/git configs, installs VS Code extensions for C++/Python/ROS development
  • Setup script automatically configures shell environments to source ROS2 on container startup

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

File Description
.devcontainer/Dockerfile Defines development container image with ROS2 Jazzy, build tools, Python packages, and non-root user setup
.devcontainer/devcontainer.json Configures VS Code remote container with workspace mounts, extensions, and post-create setup command
.devcontainer/setup-env.sh Shell script to configure ROS2 environment variables in bash/zsh and verify installation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bburda bburda self-assigned this Nov 17, 2025
- Add Dockerfile to define the development image.
- Add devcontainer.json to configure VS Code remote container settings.
- Add setup-env.sh to source environment variables on container start.
Move git/zsh to devcontainer features and rosdep init to setup script.
Improve user creation logic.
@bburda bburda merged commit 22b3e9c into main Nov 17, 2025
@bburda bburda deleted the add_devcontainer branch November 17, 2025 21:40
@bburda bburda linked an issue Nov 17, 2025 that may be closed by this pull request
mfaferek93 added a commit that referenced this pull request Jan 21, 2026
- Add inline symptom codes support in YAML config (codes: [...] syntax)
- Refactor severity_to_string/severity_rank to shared types.hpp/cpp
- Add correlation.cleanup_interval_sec parameter (default 5.0s)
- Update TODO(#105) → TODO(#127) for pending_clusters cleanup
- Add PlantUML sequence diagrams to fault-correlation tutorial

Addresses review comments:
- Implement missing inline codes parsing (#1)
- Fix orphaned TODO reference (#2)
- Consolidate duplicated severity functions (#3)
- Parameterize magic number 5s (#4)
- Add flow diagrams to docs (#6)
mfaferek93 added a commit that referenced this pull request Jan 21, 2026
* feat(#105): add fault correlation engine for root-cause analysis

Implement hierarchical and auto-cluster correlation modes to reduce
fault noise by identifying root causes and grouping related faults.

Key features:
- Hierarchical mode: detect root cause → symptom relationships
- Auto-cluster mode: group similar faults within time window
- YAML-based configuration with pattern wildcards
- Muted faults tracking and auto-clear on root cause resolution
- Gateway API support with include_muted/include_clusters params

New messages: MutedFaultInfo.msg, ClusterInfo.msg
Extended: GetFaults.srv, ClearFault.srv, FaultEvent.msg

* docs(#105): add correlation endpoints to Postman collection

Add new requests demonstrating fault correlation query parameters:
- GET Faults with Correlation Data (include_muted + include_clusters)
- GET Faults with Muted Details Only
- GET Faults with Cluster Details Only

Update existing endpoint descriptions to document:
- muted_count/cluster_count fields in GET /faults response
- auto_cleared_codes in DELETE clear fault response
- Faults folder description with correlation feature overview

* docs(#105): add fault correlation tutorial

Add comprehensive tutorial covering:
- Hierarchical mode (root cause → symptom relationships)
- Auto-cluster mode (grouping similar faults)
- YAML configuration with patterns and rules
- REST API query parameters for correlation data
- Complete example configuration
- Troubleshooting guide

* style: fix clang-format and flake8 formatting issues

* fix(#105): address thread safety and retroactive cluster muting

- Fix data race in PatternMatcher::get_compiled() by adding mutex
  protection for the mutable compiled_cache_ member
- Add retroactive_mute_codes field to ProcessFaultResult for tracking
  faults that should have been muted before cluster activation
- Populate retroactive_mute_codes when cluster transitions from
  pending to active (reaches min_count threshold)
- Add debug logging for retroactive muting in fault_manager_node
- Add unit test AutoClusterRetroactiveMuting to verify behavior

* fix(#105): add periodic cleanup timer for correlation engine

Add 5-second timer to periodically call cleanup_expired() on the
correlation engine. This prevents stale pending root causes and
pending clusters from accumulating in memory when faults are
reported infrequently.

Add unit tests:
- CleanupExpiredRemovesPendingRootCauses
- CleanupExpiredRemovesPendingClusters

* perf(#105): minor optimizations and documentation

- Skip regex compilation for non-wildcard patterns (perf improvement)
- Add validation error for min_count=0 in auto-cluster rules
- Add TODO documenting known limitation: pending_clusters_ not cleaned
  up when fault is cleared before cluster reaches min_count

* fix(#105): address code review feedback for fault correlation

- Add inline symptom codes support in YAML config (codes: [...] syntax)
- Refactor severity_to_string/severity_rank to shared types.hpp/cpp
- Add correlation.cleanup_interval_sec parameter (default 5.0s)
- Update TODO(#105) → TODO(#127) for pending_clusters cleanup
- Add PlantUML sequence diagrams to fault-correlation tutorial

Addresses review comments:
- Implement missing inline codes parsing (#1)
- Fix orphaned TODO reference (#2)
- Consolidate duplicated severity functions (#3)
- Parameterize magic number 5s (#4)
- Add flow diagrams to docs (#6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add devcontainer for ROS 2 development

1 participant