fix: ux improvements and fixes - #42
Merged
Merged
Conversation
This commit addresses two key issues and enhances the auto-start functionality: Issue #40: Settings save feedback - Added Toast notification system to UI package - Success toast shows when settings are saved - Error toast shows if save fails - Auto-dismiss after 3 seconds with manual close option - Added comprehensive unit and e2e tests for toast functionality Issue #39: Hidden console windows for docker servers - Fixed stdio servers opening visible terminal windows on Windows - Added CREATE_NO_WINDOW flag to child process creation - Only affects Windows builds via conditional compilation Auto-start improvements: - Changed default auto_launch to true for gateway apps - Auto-enable on first launch without requiring Settings UI interaction - Added startup.autostart_configured flag to respect user choices - User can still disable in Settings and it persists across launches Deep link registry documentation: - Updated spike doc with correct HKLM vs HKCU registry behavior - NSIS installs write to HKCU (per-user) - MSI installs write to HKLM (per-machine) - Both merge into HKCR at runtime Tests: - Added Toast component unit tests - Added useToast hook unit tests - Extended SettingsPage e2e tests for startup settings - Added toast visibility and dismissal tests Fixes #39, #40
Extended toast notification coverage to all user-facing save and change operations in the desktop app. Changes: - Added toast to ConfigEditorModal save operation (success/error) - Added toast to FeatureSetsPage create operation (success/error) - Added toast to FeatureSetsPage delete operation (success/error) - All toasts show descriptive messages with operation details - All toasts auto-dismiss after 3 seconds with manual close option Tests: - Added e2e tests for feature set create/delete toast notifications - Added e2e tests for config editor save toast notifications - Tests verify toast visibility, content, and auto-dismissal All save/change operations now provide consistent visual feedback to users.
Addressed GitHub code quality bot suggestions: - Removed unused import 'waitFor' from Toast.test.tsx - Removed unused variable 'saveButton' from featuresets.spec.ts Both variables were leftover from initial implementation and not needed for test logic.
Resolved timeout issue by temporarily switching to real timers during user interaction test, preventing conflicts between fake timers and userEvent's async operations.
The save button in FeatureSetPanel was silently refreshing the page without confirming the save to the user. Added success/error toasts and cleaned up unused edit state variables.
Added toast feedback to every mutation operation across the desktop app: - SpacesPage: create, delete, set active space - RegistryPage: install, uninstall server - ClientsPage: save config, delete client, toggle feature set grants, toggle individual features (also replaced custom toast with useToast) - SpaceSwitcher: set active space, create space - ServerLogViewer: clear logs, copy log path (replaced alert() calls)
Added Playwright e2e tests to verify toast notification presence and behavior across all pages: - BasePage: shared toast helper methods (waitForToast, getToastText, dismissToast) - SpacesPage: toast container, create/delete/set-active space toasts - RegistryPage: toast container, install/uninstall server toasts - ClientsPage: toast container, save config/remove/toggle grant toasts - ServersPage: server enable, clear logs, copy log path toasts - FeatureSetsPage: toast container, panel save/error toasts
Two bugs fixed: 1. appStore.setSpaces now validates that the persisted activeSpaceId still exists in the loaded spaces list. Previously it only checked for null/undefined, so a deleted space ID (e.g. from e2e tests) would persist and cause viewSpace to resolve to null, making the entire "My Servers" page and dashboard installed count show empty. 2. Gateway connected_backends count is now scoped to the viewing space. Added ServerManager.connected_count_for_space() and passed space_id through get_gateway_status command so Dashboard and ServersPage show the correct connected count for the space being viewed.
SpaceSwitcher in the sidebar also renders a ToastContainer, causing
Playwright strict mode violations when getByTestId('toast-container')
resolves to 2 elements. Scoped all toast locators to
page.getByRole('main') to target only the main content area.
- Always render startup settings section (show loading state instead of hiding) - Add data-testid="settings-startup-section" for e2e test targeting - Improve e2e test setup with proper wait for app shell and sidebar - Fix get_startup_settings to gracefully handle missing DB keys with defaults - Improve beforeEach to wait for section and toggles to be interactive These changes ensure the settings page is visible immediately and e2e tests can reliably find elements even when backend calls are slow. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This was
linked to
issues
Feb 7, 2026
This was referenced Feb 15, 2026
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.
No description provided.