- Add tests for shell bridge to validate structured error reporting on spawn failures.
- Add broker tests to ensure proper rejection of malformed browser shell upgrades without leaking sensitive tokens.
- Update `.env.example` with `EDGE_PUBLIC_BROKER_URL` for public access configuration.
- Implement generation detection logic for Shelly devices using model codes, metadata, and type inference.
- Extend relay switch and inventory handling to include generation capabilities.
- Ensure compatibility with Gen1, Gen2, and Gen3 devices for relay control and diagnostics.
- Update unit tests to validate generation inference, fallback behavior, and API compatibility.
- Extend relay switch logic to include `toggle_after` parameter for timed toggles.
- Update unit tests in `SelfserveLanePortControllerTest` and `SelfserveRouteWiringTest` to validate timer behavior.
- Adjust Shelly API calls and assertions to handle timer values in both RPC and legacy endpoints.
- Introduce `expireTimedOutRelayStatusCommandJobs` to clean up long-pending relay status command jobs.
- Add `TIMED_OUT` status for relay command jobs and incorporate it into job status evaluations.
- Refactor command job finalization to support timeout-specific error messaging.
- Improve handling of fast-path failures in edge broker commands.
- Introduce `dispatchRelaySwitchWithTimer` and `dispatchRelaySwitchLocalOnlyWithTimer` methods for timed relay control.
- Extend `dispatchRelaySwitchWithOptions` to handle `toggleAfterSeconds` parameter.
- Update tests to validate timer functionality for local Shelly APIs.
- Ensure backwards compatibility with legacy APIs and adjust payloads accordingly.
- Correct test cases to ensure proper relay IDs are switched.
- Add robust local IP resolution for relay-device bindings, including caching and inventory backfill.
- Introduce fast-path options for relay status and switch dispatch.
- Validate PHP extensions (`curl`, `sqlite3`) in edge agent images.
Transitioned from obsolete gateway object classes (`edge_gateway_shell_action_jobs_o`, `edge_gateway_shell_events_o`, `edge_gateway_shell_sessions_o`, `edge_gateway_update_jobs_o`) to the new agent implementation (`edge-gateway-agent/agent.php`).
This commit introduces delivery metadata tracking for gateway commands, updates, and shells. Adds preferred delivery channel handling, refined validation for edge agents, improved relay management logic, and broker presence reporting. Includes schema changes, enhanced shell handling, and test coverage.
Refactored the edge agent to include robust update handling, verification, and rollback procedures. Enhanced test coverage for critical update flows and introduced support for background edge gateway refresh without disrupting current user actions.
This commit introduces unit tests, E2E tests, and implementation updates related to edge gateway lifecycle management, including update handling, artifact validation, and rollback mechanisms. It also refines routing, component interaction, and backend methods to improve update tracking, status transitions, and artifact management.
Introduced the Edge Broker service in the Docker Compose setup, configured to run on port 4300. Updated `.env.example` to include default environment variables for the Edge Broker and adjusted tests to validate the new configuration. Updated visual snapshot tests to reflect related UI changes.
- Introduced `waitFor` utility in edge agent tests for more reliable condition polling.
- Adjusted test assertions to use `waitFor` for verifying agent polling activity.
- Added separate GitHub Actions jobs for `edge-agent` and `edge-broker` to improve test isolation.
- Added `tableExists` and updated `columnExists` in schema bootstrap to avoid redundant queries.
- Enhanced `ApiFixtures` to cast the `processor` attribute as an integer.
- Introduced `products` table creation in `ApiSchemaBootstrap`.
- Added `ensureSupportingTables` method to create `departments`, `department_variables`, and `users` tables if they do not exist.
- Updated `department_daily_report_complaints_schema_bootstrap` to include supporting tables setup for schema consistency.
- Introduced `columnExists` helper to verify column presence before performing ALTER operations.
- Updated schema bootstrap logic to use `columnExists` for `wash_date` and `category` columns.
- Introduced `ApiSchemaBootstrap` class to ensure database schema for API tests.
- Modified GitHub Actions workflow to include schema bootstrapping configuration.
- Switched to Xdebug for test coverage in workflows and adjusted `ini-values` accordingly.
- Improved environment variable handling in `config.php` for enhanced runtime flexibility.