Skip to content

merge dev into main #6

Merged
damnthonyy merged 25 commits into
mainfrom
development
May 19, 2026
Merged

merge dev into main #6
damnthonyy merged 25 commits into
mainfrom
development

Conversation

@damnthonyy

Copy link
Copy Markdown
Member

#5

KelianHalleray and others added 25 commits February 26, 2026 12:26
Co-authored-by: Antoine <damnthonyy@users.noreply.github.com>
feat(sim): add Docker environment for ROS2 Humble + Gazebo Fortress w…
Co-authored-by Antoine Mahassadi <dmantoinepro@gmail.com>
feat(back): create packages for ROS2 exec
- Add unit tests for event formatting, sinks, state store, and telemetry service

- Implemented unit tests for EventFormatter to ensure required fields, action, actor, ID, timestamp, and payload flattening.

- Added tests for ConsoleSink and FileSink to verify logging behavior and file writing.

- Created tests for RobotState and RobotStateStore to validate state management and updates.

- Developed tests for TelemetryService to check state updates and connection event emissions.

- Removed outdated test files for MessageRouter, MissionStateMachine, ModeManager, RobotStateStore, Schema Validation, TeleopService, and WatchdogService.

- Introduced configuration loading tests to validate YAML parameter handling and environment overrides.

- Implemented Config class to manage configuration loading and access with typed getters.

- Updated setup.py to include testing dependencies.

- Added configuration files for backend, common, mock, and real environments.

Assisted-by : Claude :)
This reverts commit dd388fc, reversing
changes made to 351d7b6.
- enhance battery level calcul
- update tests
- update readme

Co-authored-by: Kelian <kelianhalleray@gmail.com>
…er, update BackendContext for dependency injection

Co-authored-by: Kelian <kelianhalleray@gmail.com>
Refactor codebase structure 
**Ok for Yann**
@damnthonyy damnthonyy requested a review from KelianHalleray May 19, 2026 09:46
@qodo-code-review

Copy link
Copy Markdown

Review Summary by Qodo

Complete backend refactor with rosbridge integration, telemetry pipeline, and audit logging

✨ Enhancement 🧪 Tests 📝 Documentation

Grey Divider

Walkthroughs

Description
• **Complete backend architecture redesign** with clean separation of concerns: adapters layer
  (robot communication), modules layer (business logic), and app layer (WebSocket server)
• **ROS integration via rosbridge** with RosbridgeClient providing WebSocket transport, connection
  fallback, exponential backoff reconnection, and latency measurement
• **Robot adapter pattern** with abstract RobotAdapter interface, RosbridgeRobotAdapter for real
  hardware, and MockRobotAdapter for development
• **Telemetry pipeline** converting ROS battery messages to state updates with voltage-to-percentage
  conversion, watchdog timeout detection, and audit event emission
• **Audit logging system** with multi-sink dispatch (ConsoleSink, FileSink), in-memory history,
  and WebSocket broadcasting for frontend consumption
• **WebSocket server** with client management, message routing (ping, state queries, teleoperation,
  emergency stop), and real-time state/audit broadcasting
• **Configuration system** with YAML merging, environment-specific overrides, and typed getters for
  flexible deployment across mock/sim/real environments
• **Comprehensive test coverage** including unit tests for all components, integration tests for
  service wiring, and real rosbridge tests (skipped in CI)
• **Extensive documentation** with architecture guides, extension instructions, and configuration
  reference for adapters, robot module, audit system, app layer, and configuration
• **Removed legacy code** including old infrastructure layer, mission state machine, mode manager,
  and obsolete adapter implementations
Diagram
flowchart LR
  ROS["ROS Topics<br/>via rosbridge"]
  RC["RosbridgeClient<br/>WebSocket"]
  RA["RobotAdapter<br/>Domain Logic"]
  TS["TelemetryService<br/>State Updates"]
  AS["AuditService<br/>Event History"]
  SS["StateStore<br/>Single Source"]
  WS["WebSocketHandler<br/>Client Broadcast"]
  FE["Frontend<br/>Clients"]
  
  ROS -->|subscribe| RC
  RC -->|battery msg| RA
  RA -->|on_battery| TS
  TS -->|update state| SS
  TS -->|emit event| AS
  SS -->|state changed| WS
  AS -->|event recorded| WS
  WS -->|broadcast| FE
Loading

Grey Divider

File Changes

1. src/robocoop_backend/robocoop_backend/adapters/rosbridge_client.py ✨ Enhancement +150/-0

WebSocket transport layer for rosbridge protocol

• Implements RosbridgeClient class for WebSocket communication with rosbridge protocol
• Handles connection management with primary/secondary URL fallback and exponential backoff
 reconnection
• Provides subscribe() method to listen to ROS topics and dispatch messages to callbacks
• Includes measure_ping() method to measure latency to the rosbridge server

src/robocoop_backend/robocoop_backend/adapters/rosbridge_client.py


2. src/robocoop_backend/robocoop_backend/adapters/rosbridge_adapter.py ✨ Enhancement +134/-0

Robot adapter for ROS battery telemetry and watchdog

• Implements RosbridgeRobotAdapter wrapping RosbridgeClient with domain logic
• Converts battery voltage (9–12V) to percentage (0–100%) with clamping
• Implements battery watchdog that detects disconnection after timeout
• Manages subscription lifecycle and notifies TelemetryService of state changes

src/robocoop_backend/robocoop_backend/adapters/rosbridge_adapter.py


3. src/robocoop_backend/robocoop_backend/adapters/base_adapter.py ✨ Enhancement +18/-0

Abstract base class for robot adapters

• Defines abstract RobotAdapter interface with three methods: connect(), disconnect(),
 is_connected()
• Serves as contract for all adapter implementations (mock, rosbridge, future transports)

src/robocoop_backend/robocoop_backend/adapters/base_adapter.py


View more (126)
4. src/robocoop_backend/robocoop_backend/adapters/mock_adapter.py ✨ Enhancement +17/-0

Mock robot adapter for development

• Implements no-op MockRobotAdapter for development without physical robot
• Always returns is_connected() = True and succeeds on connect/disconnect

src/robocoop_backend/robocoop_backend/adapters/mock_adapter.py


5. src/robocoop_backend/robocoop_backend/adapters/factory.py ✨ Enhancement +36/-0

Adapter factory with configuration-driven instantiation

• Factory function create_adapter() instantiates correct adapter based on adapter_type config
• Supports mock and rosbridge types with case-insensitive matching
• Reads rosbridge configuration (URLs, topics, timeouts) from config dict
• Raises ValueError for unknown adapter types

src/robocoop_backend/robocoop_backend/adapters/factory.py


6. src/robocoop_backend/robocoop_backend/modules/robot/state_store.py ✨ Enhancement +44/-0

Robot state store with dataclass and update semantics

• Defines RobotState dataclass with fields: is_connected, battery_level, ping_ms,
 last_updated
• Implements RobotStateStore for thread-safe state updates and JSON serialization
• Provides update() method for partial updates and reset() for initialization

src/robocoop_backend/robocoop_backend/modules/robot/state_store.py


7. src/robocoop_backend/robocoop_backend/modules/robot/telemetry_service.py ✨ Enhancement +82/-6

Telemetry pipeline with state updates and audit events

• Implements TelemetryService to process incoming telemetry and update state store
• Emits audit events on connection state changes (robot.connected/disconnected)
• Monitors battery level and fires battery.low event once when below threshold (20%)
• Broadcasts state updates to WebSocket clients asynchronously

src/robocoop_backend/robocoop_backend/modules/robot/telemetry_service.py


8. src/robocoop_backend/robocoop_backend/modules/audit/audit_event.py ✨ Enhancement +13/-0

Audit event data model

• Defines AuditEvent dataclass with auto-generated UUID and timestamp
• Fields: action, actor, payload (optional), id, timestamp

src/robocoop_backend/robocoop_backend/modules/audit/audit_event.py


9. src/robocoop_backend/robocoop_backend/modules/audit/event_formatter.py ✨ Enhancement +26/-7

Audit event serialization formatter

• Implements EventFormatter.format() to serialize AuditEvent to JSON-serializable dict
• Flattens payload fields at top level for frontend consumption

src/robocoop_backend/robocoop_backend/modules/audit/event_formatter.py


10. src/robocoop_backend/robocoop_backend/modules/audit/sinks.py ✨ Enhancement +50/-6

Audit sink implementations for console and file output

• Defines abstract AuditSink interface for audit output destinations
• Implements ConsoleSink for stdout logging (dev/debug)
• Implements FileSink for JSONL file appending with non-blocking background thread writes

src/robocoop_backend/robocoop_backend/modules/audit/sinks.py


11. src/robocoop_backend/robocoop_backend/modules/audit/audit_logger.py ✨ Enhancement +32/-4

Audit logger with multi-sink dispatch

• Implements AuditLogger to dispatch AuditEvent to multiple sinks
• Swallows sink failures so audit never blocks critical operations

src/robocoop_backend/robocoop_backend/modules/audit/audit_logger.py


12. src/robocoop_backend/robocoop_backend/modules/audit/audit_service.py ✨ Enhancement +83/-6

High-level audit service with history and broadcasting

• Implements AuditService with in-memory history (deque, max 100 events)
• Provides record() (fire-and-forget) and get_history(limit) methods
• Broadcasts audit events to WebSocket clients asynchronously
• Swallows all exceptions to prevent audit from blocking critical ops

src/robocoop_backend/robocoop_backend/modules/audit/audit_service.py


13. src/robocoop_backend/robocoop_backend/app/contracts.py 📝 Documentation +114/-0

WebSocket message contracts and type constants

• Defines WebSocket message type constants for frontend↔backend communication
• Documents message schemas for ping/pong, state queries, teleoperation, emergency stop
• Lists audit action types: robot.connected/disconnected, battery.low, emergency_stop

src/robocoop_backend/robocoop_backend/app/contracts.py


14. src/robocoop_backend/robocoop_backend/app/websocket_handler.py ✨ Enhancement +95/-9

WebSocket handler with client management and routing

• Implements WebSocketHandler class managing client connections and message routing
• Handles message types: ping, get_state, get_activity, teleop.move, emergency_stop
• Broadcasts state updates and audit events to all connected clients
• Removes disconnected clients automatically on send failure

src/robocoop_backend/robocoop_backend/app/websocket_handler.py


15. src/robocoop_backend/robocoop_backend/app/backend_context.py ✨ Enhancement +51/-17

Dependency injection container for backend services

• Implements BackendContext dependency injection container
• Wires together: RobotStateStore, AuditService, TelemetryService, adapter
• Provides connect(), disconnect(), set_websocket_handler() lifecycle methods

src/robocoop_backend/robocoop_backend/app/backend_context.py


16. src/robocoop_backend/robocoop_backend/app/server.py ✨ Enhancement +85/-14

WebSocket server entrypoint with lifecycle management

• Implements RobocopServer class with WebSocket server lifecycle
• Loads config from YAML, initializes BackendContext, handles graceful shutdown
• Registers signal handlers (SIGTERM, SIGINT) for clean teardown
• Starts WebSocket server on configured host/port

src/robocoop_backend/robocoop_backend/app/server.py


17. src/robocoop_backend/robocoop_backend/utils/config.py ✨ Enhancement +89/-6

Configuration loader with YAML merging and typed getters

• Implements Config class for loading and merging YAML configuration files
• Supports environment-specific overrides (common.params.yaml + {env}.params.yaml)
• Provides typed getters: get_str(), get_int(), get_float(), get_bool()
• Loads .env file for environment variables without overwriting existing vars

src/robocoop_backend/robocoop_backend/utils/config.py


18. src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_rosbridge_client.py 🧪 Tests +198/-0

Unit tests for rosbridge WebSocket client

• Unit tests for RosbridgeClient covering connection, subscription, message dispatch
• Tests reconnection logic with max attempts and exponential backoff
• Verifies secondary URL fallback on primary failure

src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_rosbridge_client.py


19. src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_rosbridge_adapter.py 🧪 Tests +169/-0

Unit tests for rosbridge robot adapter

• Unit tests for RosbridgeRobotAdapter covering voltage conversion, watchdog, callbacks
• Tests battery level clamping (9V→75%, 12V→100%, <9V→0%, >12V→100%)
• Verifies watchdog timeout detection and connection state management

src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_rosbridge_adapter.py


20. src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_mock_adapter.py 🧪 Tests +23/-0

Unit tests for mock robot adapter

• Unit tests for MockRobotAdapter verifying always-connected behavior
• Tests instance independence

src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_mock_adapter.py


21. src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_factory.py 🧪 Tests +65/-0

Unit tests for adapter factory

• Unit tests for adapter factory covering mock and rosbridge instantiation
• Tests configuration parameter passing and defaults
• Verifies case-insensitive adapter type matching and error handling

src/robocoop_backend/robocoop_backend/tests/unit/adapters/test_factory.py


22. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_state_store.py 🧪 Tests +75/-0

Unit tests for robot state store

• Unit tests for RobotState and RobotStateStore covering defaults, updates, serialization
• Tests partial updates, unknown field handling, timestamp refresh

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_state_store.py


23. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_telemetry_service.py 🧪 Tests +92/-0

Unit tests for telemetry service

• Unit tests for TelemetryService covering state updates, connection events, battery threshold
• Tests battery.low event fires once and resets after recovery

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_telemetry_service.py


24. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_audit_event.py 🧪 Tests +38/-0

Unit tests for audit event model

• Unit tests for AuditEvent dataclass covering auto-generated UUID/timestamp and payload

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_audit_event.py


25. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_audit_logger.py 🧪 Tests +43/-0

Unit tests for audit logger

• Unit tests for AuditLogger covering multi-sink dispatch and failure isolation

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_audit_logger.py


26. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_audit_service.py 🧪 Tests +70/-0

Unit tests for audit service

• Unit tests for AuditService covering record, history retrieval, and limit enforcement
• Tests newest-first ordering and max history size

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_audit_service.py


27. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_event_formatter.py 🧪 Tests +48/-0

Unit tests for event formatter

• Unit tests for EventFormatter covering field inclusion, payload flattening, ISO timestamp

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_event_formatter.py


28. src/robocoop_backend/robocoop_backend/tests/unit/modules/test_sinks.py 🧪 Tests +61/-0

Unit tests for audit sinks

• Unit tests for ConsoleSink and FileSink covering logging and JSONL file appending
• Tests parent directory creation and multi-line appending

src/robocoop_backend/robocoop_backend/tests/unit/modules/test_sinks.py


29. src/robocoop_backend/robocoop_backend/tests/unit/app/test_websocket_handler.py 🧪 Tests +142/-0

Unit tests for WebSocket handler

• Unit tests for WebSocketHandler covering client registration, message routing, broadcasting
• Tests all message types and disconnected client removal

src/robocoop_backend/robocoop_backend/tests/unit/app/test_websocket_handler.py


30. src/robocoop_backend/robocoop_backend/tests/unit/app/test_backend_context.py 🧪 Tests +74/-0

Unit tests for backend context

• Unit tests for BackendContext covering dependency injection and service wiring
• Tests lifecycle methods and handler registration

src/robocoop_backend/robocoop_backend/tests/unit/app/test_backend_context.py


31. src/robocoop_backend/robocoop_backend/tests/unit/utils/test_config.py 🧪 Tests +130/-0

Unit tests for configuration loader

• Unit tests for Config covering YAML loading, merging, typed getters, .env handling
• Tests deep merge preserving sibling keys and environment-specific overrides

src/robocoop_backend/robocoop_backend/tests/unit/utils/test_config.py


32. src/robocoop_backend/robocoop_backend/tests/integration/test_telemetry_pipeline.py 🧪 Tests +74/-0

Integration tests for telemetry pipeline

• Integration tests wiring real objects (adapter → telemetry → audit → state store)
• Tests full data flow from battery message to audit event and state update

src/robocoop_backend/robocoop_backend/tests/integration/test_telemetry_pipeline.py


33. src/robocoop_backend/robocoop_backend/tests/integration/test_context_lifecycle.py 🧪 Tests +44/-0

Integration tests for context lifecycle

• Integration tests for BackendContext lifecycle and service wiring
• Tests connect/disconnect and state visibility across services

src/robocoop_backend/robocoop_backend/tests/integration/test_context_lifecycle.py


34. src/robocoop_backend/robocoop_backend/tests/real/test_rosbridge_live.py 🧪 Tests +64/-0

Real rosbridge integration tests

• Real integration tests requiring live rosbridge server (skipped in CI)
• Tests connection, subscription, and message reception from actual ROS topics

src/robocoop_backend/robocoop_backend/tests/real/test_rosbridge_live.py


35. src/robocoop_backend/robocoop_backend/tests/conftest.py 🧪 Tests +60/-0

Pytest configuration and shared fixtures

• Pytest fixtures for common test objects: state store, audit service, telemetry service
• Mock WebSocket fixtures for handler testing

src/robocoop_backend/robocoop_backend/tests/conftest.py


36. src/robocoop_backend/robocoop_backend/adapters/README.md 📝 Documentation +183/-0

Adapter layer documentation and extension guide

• Documents adapter layer architecture and two-layer design (adapter vs client)
• Provides step-by-step guides for subscribing to new ROS topics and publishing messages
• Explains how to add new adapter types

src/robocoop_backend/robocoop_backend/adapters/README.md


37. src/robocoop_backend/setup.py Dependencies +5/-0

Add test dependencies to setup.py

• Adds test dependencies: pytest, pytest-asyncio, pytest-mock

src/robocoop_backend/setup.py


38. run_backend.sh ⚙️ Configuration changes +51/-0

Backend launch script with environment support

• Bash launch script for backend server with environment validation
• Supports mock, sim, real environments with config directory override

run_backend.sh


39. README.md 📝 Documentation +116/-116

Comprehensive README with setup and architecture

• Completely rewritten with architecture overview, setup instructions, and testing guide
• Documents WebSocket message contracts, configuration, and robot connection
• Provides quick start examples and environment variable reference

README.md


40. src/robocoop_backend/robocoop_backend.egg-info/SOURCES.txt Miscellaneous +28/-0

Package metadata sources list

• Auto-generated package metadata listing all source files

src/robocoop_backend/robocoop_backend.egg-info/SOURCES.txt


41. src/robocoop_backend/robocoop_backend.egg-info/PKG-INFO Miscellaneous +19/-0

Package metadata info

• Auto-generated package metadata with version, dependencies, and extras

src/robocoop_backend/robocoop_backend.egg-info/PKG-INFO


42. src/robocoop_backend/robocoop_backend/modules/robot/README.md 📝 Documentation +107/-0

Robot state and telemetry pipeline module documentation

• Comprehensive documentation of the robot state management module with state_store.py and
 telemetry_service.py
• Explains the single source of truth pattern for robot state and the telemetry data pipeline
• Provides step-by-step guide for adding new ROS topics with code examples
• Documents the battery alert edge-triggering mechanism and threshold checking pattern

src/robocoop_backend/robocoop_backend/modules/robot/README.md


43. src/robocoop_backend/robocoop_backend/app/README.md 📝 Documentation +93/-0

Application layer and WebSocket server architecture documentation

• Documents the application layer architecture including server lifecycle and WebSocket handling
• Explains BackendContext as the dependency injection container and service wiring pattern
• Details the WebSocket message routing table and how to add new message types
• Describes the startup sequence and the role of contracts.py as the API reference

src/robocoop_backend/robocoop_backend/app/README.md


44. src/robocoop_backend/robocoop_backend/modules/audit/README.md 📝 Documentation +96/-0

Audit logging and event recording system documentation

• Documents the audit event recording system with AuditEvent dataclass and data model
• Explains the event serialization with payload flattening and current event types
• Provides instructions for recording new events and adding custom audit sinks
• Details the event flow from recording through WebSocket broadcast to frontend

src/robocoop_backend/robocoop_backend/modules/audit/README.md


45. src/robocoop_bringup/config/README.md 📝 Documentation +108/-0

Configuration system and YAML parameters documentation

• Documents the YAML configuration loading order and environment-based overrides
• Explains key configuration values for WebSocket, battery thresholds, and rosbridge settings
• Provides instructions for adding new environments and ROS topics to configuration
• Shows how to access config values in code using dot notation

src/robocoop_bringup/config/README.md


46. .github/PR_TEMPLATE.md ⚙️ Configuration changes +36/-0

GitHub pull request template for standardized PR format

• Provides a standardized pull request template with sections for troubleshooting, summary, and
 description
• Includes guidance on grouping changes by domain and highlighting key files for review
• Specifies sections for testing instructions, screenshots, and related issues

.github/PR_TEMPLATE.md


47. .github/workflows/ci.yml ⚙️ Configuration changes +34/-0

GitHub Actions CI workflow for automated testing

• Defines CI/CD pipeline that runs on push and pull requests to main and development branches
• Tests against Python versions 3.11, 3.12, 3.13, and 3.14 using pytest
• Installs package with test dependencies and runs tests excluding real hardware tests

.github/workflows/ci.yml


48. src/robocoop_bringup/config/real.params.yaml ⚙️ Configuration changes +9/-9

Real robot hardware configuration parameters

• Replaces TODO comments with actual rosbridge configuration for real robot hardware
• Specifies primary and secondary rosbridge URLs pointing to robot IP 10.10.220.79
• Defines connection parameters including timeout, reconnect interval, and max attempts
• Maps the battery topic to /battery

src/robocoop_bringup/config/real.params.yaml


49. src/robocoop_bringup/config/common.params.yaml ⚙️ Configuration changes +11/-6

Common configuration parameters for all environments

• Replaces TODO comments with actual shared configuration values
• Defines WebSocket server host and port (0.0.0.0:8765)
• Specifies battery warning threshold (20%), critical threshold (10%), and watchdog timeout (15s)
• Sets audit log path to /var/log/robocoop/audit.jsonl

src/robocoop_bringup/config/common.params.yaml


50. .env.example ⚙️ Configuration changes +10/-0

Environment variables example file

• Provides example environment variables file with French comments
• Sets default ROBOCOOP_ENV=mock for development without hardware
• Includes optional configuration for custom config directory and local rosbridge URL override

.env.example


51. pyproject.toml ⚙️ Configuration changes +8/-0

Pytest configuration for test discovery and markers

• Configures pytest with test path pointing to src/robocoop_backend/robocoop_backend/tests
• Enables asyncio mode for async test support
• Defines three test markers: unit, integration, and real for test categorization

pyproject.toml


52. src/robocoop_bringup/config/mock.params.yaml ⚙️ Configuration changes +1/-6

Mock adapter configuration for development

• Replaces TODO comments with minimal mock adapter configuration
• Sets adapter_type: "mock" for development without real robot connection

src/robocoop_bringup/config/mock.params.yaml


53. src/robocoop_backend/robocoop_backend.egg-info/requires.txt Dependencies +10/-0

Package dependencies and extras configuration

• Specifies core dependencies: websockets and pyyaml
• Defines optional ros extra with rclpy for ROS integration
• Defines optional test extra with pytest, pytest-asyncio, and pytest-mock

src/robocoop_backend/robocoop_backend.egg-info/requires.txt


54. src/robocoop_backend/robocoop_backend.egg-info/top_level.txt Miscellaneous +1/-0

Package metadata top-level declaration

• Declares robocoop_backend as the top-level package name

src/robocoop_backend/robocoop_backend.egg-info/top_level.txt


55. src/robocoop_backend/robocoop_backend.egg-info/dependency_links.txt Miscellaneous +1/-0

Package metadata dependency links

• Empty dependency links file (standard egg-info metadata)

src/robocoop_backend/robocoop_backend.egg-info/dependency_links.txt


56. src/robocoop_backend/requirements.txt Additional files +0/-0

...

src/robocoop_backend/requirements.txt


57. src/robocoop_backend/robocoop_backend/adapters/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/adapters/init.py


58. src/robocoop_backend/robocoop_backend/app/auth.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/app/auth.py


59. src/robocoop_backend/robocoop_backend/app/message_router.py Additional files +0/-13

...

src/robocoop_backend/robocoop_backend/app/message_router.py


60. src/robocoop_backend/robocoop_backend/app/rate_limiter.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/app/rate_limiter.py


61. src/robocoop_backend/robocoop_backend/infrastructure/adapters/adapter_factory.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/infrastructure/adapters/adapter_factory.py


62. src/robocoop_backend/robocoop_backend/infrastructure/adapters/m3pro_robot_adapter.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/adapters/m3pro_robot_adapter.py


63. src/robocoop_backend/robocoop_backend/infrastructure/adapters/m3pro_topic_map.py Additional files +0/-13

...

src/robocoop_backend/robocoop_backend/infrastructure/adapters/m3pro_topic_map.py


64. src/robocoop_backend/robocoop_backend/infrastructure/adapters/mock_robot_adapter.py Additional files +0/-7

...

src/robocoop_backend/robocoop_backend/infrastructure/adapters/mock_robot_adapter.py


65. src/robocoop_backend/robocoop_backend/infrastructure/adapters/robot_adapter.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/adapters/robot_adapter.py


66. src/robocoop_backend/robocoop_backend/infrastructure/adapters/sim_robot_adapter.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/adapters/sim_robot_adapter.py


67. src/robocoop_backend/robocoop_backend/infrastructure/ros/emergency_stop_node.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/emergency_stop_node.py


68. src/robocoop_backend/robocoop_backend/infrastructure/ros/launch_manager.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/launch_manager.py


69. src/robocoop_backend/robocoop_backend/infrastructure/ros/mode_bridge_node.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/mode_bridge_node.py


70. src/robocoop_backend/robocoop_backend/infrastructure/ros/robot_state_node.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/robot_state_node.py


71. src/robocoop_backend/robocoop_backend/infrastructure/ros/telemetry_bridge_node.py Additional files +0/-11

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/telemetry_bridge_node.py


72. src/robocoop_backend/robocoop_backend/infrastructure/ros/teleop_bridge_node.py Additional files +0/-6

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/teleop_bridge_node.py


73. src/robocoop_backend/robocoop_backend/infrastructure/ros/watchdog_node.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/ros/watchdog_node.py


74. src/robocoop_backend/robocoop_backend/infrastructure/schemas/error_messages.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/infrastructure/schemas/error_messages.py


75. src/robocoop_backend/robocoop_backend/infrastructure/schemas/events.py Additional files +0/-17

...

src/robocoop_backend/robocoop_backend/infrastructure/schemas/events.py


76. src/robocoop_backend/robocoop_backend/infrastructure/schemas/inbound.py Additional files +0/-4

...

src/robocoop_backend/robocoop_backend/infrastructure/schemas/inbound.py


77. src/robocoop_backend/robocoop_backend/infrastructure/schemas/outbound.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/infrastructure/schemas/outbound.py


78. src/robocoop_backend/robocoop_backend/infrastructure/schemas/validation.py Additional files +0/-7

...

src/robocoop_backend/robocoop_backend/infrastructure/schemas/validation.py


79. src/robocoop_backend/robocoop_backend/modules/audit/domain/audit_event.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/modules/audit/domain/audit_event.py


80. src/robocoop_backend/robocoop_backend/modules/mission/domain/mission_failure.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/modules/mission/domain/mission_failure.py


81. src/robocoop_backend/robocoop_backend/modules/mission/domain/mission_state.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/modules/mission/domain/mission_state.py


82. src/robocoop_backend/robocoop_backend/modules/mission/mission_service.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/modules/mission/mission_service.py


83. src/robocoop_backend/robocoop_backend/modules/mission/mission_state_machine.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/modules/mission/mission_state_machine.py


84. src/robocoop_backend/robocoop_backend/modules/mission/mission_state_store.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/modules/mission/mission_state_store.py


85. src/robocoop_backend/robocoop_backend/modules/mode/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/modules/mode/init.py


86. src/robocoop_backend/robocoop_backend/modules/mode/mode_manager.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/modules/mode/mode_manager.py


87. src/robocoop_backend/robocoop_backend/modules/mode/mode_service.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/modules/mode/mode_service.py


88. src/robocoop_backend/robocoop_backend/modules/robot/domain/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/modules/robot/domain/init.py


89. src/robocoop_backend/robocoop_backend/modules/robot/domain/connection_state.py Additional files +0/-6

...

src/robocoop_backend/robocoop_backend/modules/robot/domain/connection_state.py


90. src/robocoop_backend/robocoop_backend/modules/robot/domain/robot_mode.py Additional files +0/-7

...

src/robocoop_backend/robocoop_backend/modules/robot/domain/robot_mode.py


91. src/robocoop_backend/robocoop_backend/modules/robot/domain/robot_state.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/modules/robot/domain/robot_state.py


92. src/robocoop_backend/robocoop_backend/modules/robot/domain/teleop_command.py Additional files +0/-7

...

src/robocoop_backend/robocoop_backend/modules/robot/domain/teleop_command.py


93. src/robocoop_backend/robocoop_backend/modules/robot/robot_state_store.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/modules/robot/robot_state_store.py


94. src/robocoop_backend/robocoop_backend/modules/robot/teleop_service.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/modules/robot/teleop_service.py


95. src/robocoop_backend/robocoop_backend/modules/safety/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/modules/safety/init.py


96. src/robocoop_backend/robocoop_backend/modules/safety/domain/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/modules/safety/domain/init.py


97. src/robocoop_backend/robocoop_backend/modules/safety/domain/alert.py Additional files +0/-11

...

src/robocoop_backend/robocoop_backend/modules/safety/domain/alert.py


98. src/robocoop_backend/robocoop_backend/modules/safety/emergency_service.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/modules/safety/emergency_service.py


99. src/robocoop_backend/robocoop_backend/modules/safety/watchdog_service.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/modules/safety/watchdog_service.py


100. src/robocoop_backend/robocoop_backend/services/.gitkeep Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/services/.gitkeep


101. src/robocoop_backend/robocoop_backend/tests/fixtures/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/tests/fixtures/init.py


102. src/robocoop_backend/robocoop_backend/tests/fixtures/fake_messages.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/tests/fixtures/fake_messages.py


103. src/robocoop_backend/robocoop_backend/tests/fixtures/fake_mission_data.py Additional files +0/-6

...

src/robocoop_backend/robocoop_backend/tests/fixtures/fake_mission_data.py


104. src/robocoop_backend/robocoop_backend/tests/fixtures/fake_robot_state.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/tests/fixtures/fake_robot_state.py


105. src/robocoop_backend/robocoop_backend/tests/integration/test_emergency_stop_flow.py Additional files +0/-12

...

src/robocoop_backend/robocoop_backend/tests/integration/test_emergency_stop_flow.py


106. src/robocoop_backend/robocoop_backend/tests/integration/test_mock_adapter_flow.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/tests/integration/test_mock_adapter_flow.py


107. src/robocoop_backend/robocoop_backend/tests/integration/test_sim_adapter_flow.py Additional files +0/-10

...

src/robocoop_backend/robocoop_backend/tests/integration/test_sim_adapter_flow.py


108. src/robocoop_backend/robocoop_backend/tests/integration/test_websocket_teleop_flow.py Additional files +0/-11

...

src/robocoop_backend/robocoop_backend/tests/integration/test_websocket_teleop_flow.py


109. src/robocoop_backend/robocoop_backend/tests/real/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/tests/real/init.py


110. src/robocoop_backend/robocoop_backend/tests/unit/adapters/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/tests/unit/adapters/init.py


111. src/robocoop_backend/robocoop_backend/tests/unit/app/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/tests/unit/app/init.py


112. src/robocoop_backend/robocoop_backend/tests/unit/modules/__init__.py Additional files +0/-0

...

src/robocoop_backend/robocoop_backend/tests/unit/modules/init.py


113. src/robocoop_backend/robocoop_backend/tests/unit/test_message_router.py Additional files +0/-7

...

src/robocoop_backend/robocoop_backend/tests/unit/test_message_router.py


114. src/robocoop_backend/robocoop_backend/tests/unit/test_mission_state_machine.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/tests/unit/test_mission_state_machine.py


115. src/robocoop_backend/robocoop_backend/tests/unit/test_mode_manager.py Additional files +0/-9

...

src/robocoop_backend/robocoop_backend/tests/unit/test_mode_manager.py


116. src/robocoop_backend/robocoop_backend/tests/unit/test_robot_state_store.py Additional files +0/-7

...

src/robocoop_backend/robocoop_backend/tests/unit/test_robot_state_store.py


117. src/robocoop_backend/robocoop_backend/tests/unit/test_schema_validation.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/tests/unit/test_schema_validation.py


118. src/robocoop_backend/robocoop_backend/tests/unit/test_teleop_service.py Additional files +0/-8

...

src/robocoop_backend/robocoop_backend/tests/unit/tes...

@damnthonyy damnthonyy merged commit 0183923 into main May 19, 2026
8 checks passed
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.

3 participants