Implement desktop shell UI with dashboard and settings views#13
Merged
Adam Gurley (machine-squelch) merged 3 commits intomainfrom Mar 31, 2026
Merged
Conversation
Replaces the single-screen scrollable dashboard with a macOS desktop shell featuring persistent sidebar navigation and dedicated views: Dashboard, Context Vault, Preferences, Agents, Audit Log, and Settings. https://claude.ai/code/session_01ViQtUW7jVVA1JGPDkvvUEA
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Collaborator
Author
|
Claude (@claude) Toggle switches discard state changes silently _ToggleSwitch manages visual state locally via setState but has no onChanged callback, so toggling "Require Touch ID," "Auto-start REST server," or "MCP stdio adapter" animates the switch without persisting or propagating the change to any provider or business logic. Contrast this with _PrivacyToggle in the same file, which correctly accepts and invokes an onChanged callback to update userConfigProvider. |
Replace all hardcoded/mock data with real Riverpod providers and database queries: - Dashboard: vault stats from ContextVault.entryCount, PreferencesService count, and agentsProvider active count. Redaction stats computed from audit log entries. Agents and audit trail from live providers. - Context Vault: entries run through AutoRedactEngine at user's current privacy level, with live redaction counts per entry. - Preferences: loaded from PreferencesService with inferred scope tags. - Agents: fully driven by agentsProvider with live TTL computation. - Audit Log: rendered from auditProvider with highlighted [REDACTED] tags. - Settings: already wired to userConfigProvider (unchanged). Seed demo agents (cursor-mcp, claude-desktop, demo-agent) and 8 audit log entries on first launch so the UI is populated out of the box. Enriched seed preferences to match HTML mockup (added diet, airline, meeting_default). https://claude.ai/code/session_01ViQtUW7jVVA1JGPDkvvUEA
README, CONTRIBUTING, and SECURITY all referenced 117 tests but the actual count is 134 (89 engine + 31 integration + 11 security + 3 widget). Updated badge, test commands, directory breakdown, and security coverage table to match. https://claude.ai/code/session_01ViQtUW7jVVA1JGPDkvvUEA
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
This PR implements the complete desktop application shell and primary UI views, matching the HTML mockup design. It introduces a persistent sidebar navigation system and five main content views (Dashboard, Context Vault, Preferences, Agents, Audit Log, and Settings).
Key Changes
App Shell & Navigation
lib/features/shell/app_shell.dart): New main container with fixed left sidebar and swappable content areaAnimatedSwitcherselectedNavProvider(Riverpod)Dashboard View
lib/features/dashboard/dashboard_view.dart): Comprehensive overview matching desktop mockup_DashCardcomponent with title, badge, and content sectionsuserConfigProvider,agentsProvider)Settings View
lib/features/shell/views/settings_view.dart): Configuration management_ToggleSwitchcomponent with smooth animationsAdditional Views
lib/features/shell/views/context_vault_view.dart): Vault entry display with redaction markerslib/features/shell/views/preferences_view.dart): Structured preferences with scope tags and DB integrationlib/features/shell/views/agents_view.dart): Active/expired token management with TTL formattinglib/features/shell/views/audit_log_view.dart): Detailed event log with color-coded action typesNotable Implementation Details
_DashCard,_ContentHeader,_PrivacyToggle,_SettingRowfor consistent stylingAsyncValuewith proper loading/error statesTrulanaColorsandTrulanaThemefor consistent dark themeselectedNavProviderapp_router.dartto use new shell-based navigationDesign Consistency
All views follow the desktop HTML mockup with:
https://claude.ai/code/session_01ViQtUW7jVVA1JGPDkvvUEA
Note
Medium Risk
Moderate UI/navigation change that reroutes
/dashboardto a new shell and adds multiple new views; risk is mainly around routing and state-driven view switching/regressions, with limited data mutations (privacy level updates).Overview
Routes now render
AppShellat/dashboard(instead of the previousDashboardScreen), introducing a persistent sidebar layout with animated content switching.Adds a new
DashboardViewand five shell views (ContextVaultView,PreferencesView,AgentsView,AuditLogView,SettingsView) that implement the desktop mockup screens, including async loading/error states and wiring to existing providers/services for preferences, agents, and privacy-level updates.Written by Cursor Bugbot for commit 452c976. This will update automatically on new commits. Configure here.