feat(settings): editable NAS rclone remote + live test-connection - #30
Merged
Conversation
Make the Settings → NAS Remote section editable instead of read-only: - Pick the rclone remote from a dropdown of remotes detected via `rclone listremotes` (with a Refresh button that re-lists using the typed config path), and edit base root + optional `--config` path. - All three fields two-way-bind the draft nas block; the remote select converts None <-> "" at the binding boundary so the str field stays valid on Save while satisfying ui.select's option constraint. - The section is now always shown (after Equipment), so the remote can be configured before nas-mode equipment exists. - Test connection now probes the *typed* (unsaved) remote + config path directly via RcloneDriver.about(), independent of deps.equipment_probe (which the /setup/test-equipment endpoint still uses for saved config). Updates the settings/mount unit tests, the e2e UX catalog, and the regenerated docs/UX_INTERACTIONS.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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.
Context
The Settings → NAS Remote section was read-only: it displayed the configured rclone remote name (
nas.remote) and base root as static labels and only appeared when nas-mode equipment existed. Changing the remote meant hand-editingconfig.yaml. This makes the whole rclone connection configurable (and testable) from the GUI.What changed
src/exlab_wizard/ui/pages/settings.py)rclone listremotes, with a Refresh button that re-lists using the typed config path. The saved remote stays selectable even when not currently detected.rclone --config <path>) inputs.nasblock.settings_sections_forno longer gates on nas-mode equipment; the dead_nas_mode_equipmenthelper was removed.src/exlab_wizard/ui/mount.py)RcloneDriver.about()so a fresh selection can be validated before saving. This is intentionally independent ofdeps.equipment_probe(whichPOST /setup/test-equipmentstill uses against the saved config)._list_nas_remotesto back the Refresh affordance.tests/e2e/ux_catalog.pyand regenerateddocs/UX_INTERACTIONS.md.Note on one non-obvious fix
ui.selectrejects a value that isn'tNoneor in its options, butnas.remoteis astr(""when unset) and aNonereaching that field fails validation on Save. Resolved with aNone ↔ ""conversion at the binding boundary (forward/backward).Testing
tests/unit/ui/test_settings_nas_remote.py— 35 passedtests/unit/ui/test_mount.py— 182 passedtests/unit/ui— 447 passed, 19 skippedtests/e2e/test_ux_documentation.py— 4 passeduvx ruff checkon changed files — clean🤖 Generated with Claude Code