Improve React desktop startup and UI parity - #126
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (35)
📝 WalkthroughWalkthroughThis PR defers MCP tool loading to a background reload after web server startup (with config cloning for concurrency safety) and hardens the desktop sidecar's health-check parsing and window-show timing. The React web app is substantially reworked with i18next localization, boot screens, redesigned state management/thunks, new remote-connect/workspace/branch/automation-replay UI, updated chat/settings/channels/sidebar components, and new global styling. Estimated code review effort: 5 (Critical) | ~120 minutes ChangesBackend MCP Reload and Health Check
React Web App Overhaul
Sequence Diagram(s)sequenceDiagram
participant User
participant App
participant Store
participant Api
App->>Api: health()
Api-->>App: auth_required / needs_setup / session_id
alt gated
App->>User: show AuthGate/SetupView
User->>Api: verify token / complete setup
Api-->>App: success
end
App->>Store: loadWorkspaceState()
Store->>Api: loadModels/loadStatus/loadGoal/loadChannelState/...
App->>Store: replaySession(session_id)
Store->>Api: session(uuid)
Api-->>Store: SessionEntry[]
Store->>App: timeline rebuilt, isRunning=false
sequenceDiagram
participant CLI
participant Server
participant Goroutine
participant WSClient
CLI->>Server: start listening
CLI->>Server: ReloadMCPInBackground()
Server->>Goroutine: reloadMCPAndRebuild()
Goroutine->>Goroutine: cloneMCPServers(config)
Goroutine->>Server: reloadMCP(cloned)
Goroutine->>WSClient: broadcast mcp_changed
Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Improve React desktop startup and UI parity
Summary
Root Cause
The desktop shell waited for the Go sidecar health check before showing the main window, while the web server also synchronously initialized MCP tools during startup. Slow MCP/tool loading could therefore leave the Tauri window blank or hidden for an extended period. The React migration also still had several visual and state parity gaps versus the Vue UI.
Validation
go test ./internal/web ./internal/tools ./internal/commandpnpm --filter web-react typecheckpnpm --filter web-react buildcargo check --manifest-path desktop/src-tauri/Cargo.tomlgo build ./...,go vet ./...,golangci-lint,go test ./...Note: the React production build still reports the existing large chunk size warning from Vite.
Summary by CodeRabbit
New Features
Bug Fixes
Style