feat(settings): add configurable timeout settings page#109
Open
JanZachmann wants to merge 3 commits intoomnect:mainfrom
Open
feat(settings): add configurable timeout settings page#109JanZachmann wants to merge 3 commits intoomnect:mainfrom
JanZachmann wants to merge 3 commits intoomnect:mainfrom
Conversation
- Add scanning, connecting, disconnecting, and saved-network management through the wifi-commissioning-service (unix domain socket) - E2E coverage: auth flow, WiFi operations, form interaction edge cases Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
…frastructure
- **Model & Synchronization:** Moved and from the persistent state to ephemeral . This ensures that these one-time notification flags do not persist across device reboots or accidental state synchronization cycles, preventing redundant modal popups.
- **Core Logic:** Implemented in the Crux Core to decouple the initial application hydration from subsequent polling cycles. This allows for a deterministic startup sequence where the UI can react to the device state immediately after WASM initialization.
- **Test Infrastructure:**
- Refactored and to utilize for modal suppression, replacing the fragile injection pattern.
- Introduced and in the harness to reduce boilerplate and improve reliability of complex network redirection tests.
- Standardized healthcheck mocking across all E2E tests to ensure consistent behavior during version-mismatch and rollback scenarios.
- **Backend & Utilities:** Added to handle cases where the backend returns valid JSON alongside non-2xx status codes (e.g., 503 during version mismatch).
Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
Adds a Settings page that allows users to view and modify the timeout values for device operations (reboot, factory reset, firmware update, network rollback). Settings are persisted on the backend via a JSON file and loaded on startup. - Backend: new settings service with get/save endpoints (`/settings`) - Core: new `TimeoutSettings` type, `SaveSettings` event and handler; model carries `timeout_settings` loaded from backend on init - Shell: Settings.vue page with number inputs and save/reset actions; TypeScript bindings updated; route added to sidebar nav - Optimistic update in Core prevents the form from reverting to old values after the POST response triggers a re-render - E2E tests cover: load from backend, save with POST capture, reset to defaults, and save failure error display Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
/data/omnect-ui/settings.json) and exposesGET /settings/POST /settingsendpointsSaveSettingsevent dispatches the POST and applies an optimistic update to prevent form revert on re-renderReason
Operation timeouts were previously hardcoded constants. Devices in different environments (slow networks, large firmware images) need tunable timeouts without requiring a firmware rebuild.
Verification
cargo test --features mock)scripts/build-frontend.sh)scripts/run-e2e-tests.sh settings.spec.ts)