Desktop UI: accessibility, previews, and UX fixes 3 months ago
Authored
Max Weinbach 6/18/2026, 2:33:08 AM Multiple desktop app improvements: clamp saved window bounds to the display work area to avoid oversized windows on smaller screens; add a skip-to-content link, main-content ARIA/keyboard handling, and other accessibility/ARIA tweaks. Improve code and file previews: add truncation for large code previews with an "Open externally" action, code-block copy/expand controls, line-count handling, and lazy-loading for PPTX slide images. Replace blocking alerts with inline prompt error UI in Canvas and spreadsheet canvases, and add InlineErrorBoundary wrappers around file/preview components to avoid whole-panel crashes. Misc UX refinements: global reduced-motion guard for Tailwind utilities, scroll/restore optimizations (useLayoutEffect and synchronous scroll restore), composer/mention menu keyboard/scroll handling, minor styling and focus-ring fixes, and various small cleanups across chat, sidebar, and animator components. Parent53d6136
65 files changed
apps/desktop/electron/services/windowState.ts +13 −9 apps/desktop/src/App.tsx +27 −3 apps/desktop/src/components/ai-elements/conversation.tsx +1 −1 apps/desktop/src/components/ai-elements/tool.tsx +47 −4 apps/desktop/src/styles.css +15 −0 apps/desktop/src/ui/Canvas.tsx +17 −2 apps/desktop/src/ui/ChatView.tsx +30 −22 apps/desktop/src/ui/CodeFilePreview.tsx +60
−21
apps/desktop/src/ui/ContextSidebar.tsx +5 −2
apps/desktop/src/ui/FilePreviewModal.tsx +13 −8
apps/desktop/src/ui/PptxPreview.tsx +1 −0
apps/desktop/src/ui/PromptModal.tsx +11 −8
apps/desktop/src/ui/Sidebar.tsx +9 −5
apps/desktop/src/ui/UniverSpreadsheetCanvas.tsx +14 −3
apps/desktop/src/ui/chat/ActivityGroupCard.tsx +11 −4
apps/desktop/src/ui/chat/ChatComposer.tsx +4 −2
apps/desktop/src/ui/chat/ChatFeed.tsx +16 −6
apps/desktop/src/ui/chat/ChatThreadHeader.tsx +1 −0
apps/desktop/src/ui/chat/ComposerMentionInput.tsx +28 −26
apps/desktop/src/ui/chat/ComposerMentionMenu.tsx +30 −2
apps/desktop/src/ui/chat/ComposerModelSelector.tsx +1 −1
apps/desktop/src/ui/chat/FeedRow.tsx +88 −12
apps/desktop/src/ui/chat/SandboxApprovalCard.tsx +27 −1
apps/desktop/src/ui/chat/a2ui/A2uiRenderer.tsx +7 −3
apps/desktop/src/ui/markdown/DesktopMarkdown.tsx +64 −9
apps/desktop/src/ui/onboarding/DesktopOnboarding.tsx +80 −21
apps/desktop/src/ui/plugins/InstallPluginDialog.tsx +7 −7
apps/desktop/src/ui/plugins/PluginCardGrid.tsx +1 −1
apps/desktop/src/ui/plugins/PluginDetailDialog.tsx +15 −3
apps/desktop/src/ui/quickChat/QuickChatShell.tsx +4 −1
apps/desktop/src/ui/research/ResearchDetailPane.tsx +199 −196
apps/desktop/src/ui/research/ResearchExportMenu.tsx +59 −97
apps/desktop/src/ui/research/ResearchSourcesList.tsx +11 −3
apps/desktop/src/ui/settings/SettingsShell.tsx +33 −3
apps/desktop/src/ui/settings/pages/AdvancedMemoryPanel.tsx +35 −1
apps/desktop/src/ui/settings/pages/ArchivedChatsPage.tsx +1 −1
apps/desktop/src/ui/settings/pages/DeveloperPage.tsx +12 −1
apps/desktop/src/ui/settings/pages/McpServersPage.tsx +18 −6
apps/desktop/src/ui/settings/pages/MemoryPage.tsx +49 −9
apps/desktop/src/ui/settings/pages/OpenAiNativeConnectorsPage.tsx +5 −1
apps/desktop/src/ui/settings/pages/SubagentsPage.tsx +16 −4
apps/desktop/src/ui/settings/pages/WorkspacesPage.tsx +32 −36
apps/desktop/src/ui/sidebar/SidebarOneOffChatItem.tsx +0 −14
apps/desktop/src/ui/sidebar/SidebarWorkspaceItem.tsx +1 −14
apps/desktop/src/ui/sidebar/ThreadOverflowMenu.tsx +41 −19
apps/desktop/src/ui/skills/SkillDetailDialog.tsx +12 −2
apps/desktop/src/ui/skills/SkillsCatalogPage.tsx +69 −66
apps/desktop/test/desktop-onboarding.test.tsx +39 −0
apps/desktop/test/memory-page.test.ts +3 −2
apps/desktop/test/plugins-catalog-page.test.ts +1 −1
apps/desktop/test/research-export-menu.test.tsx +16 −6
apps/desktop/test/settings-shell.test.ts +18 −1
apps/desktop/test/skills-catalog-page.test.ts +1 −1
apps/desktop/test/subagents-page.test.ts +3 −2
apps/desktop/test/thread-overflow-menu.test.tsx +7 −21
apps/desktop/test/window-state.test.ts +18 −8
apps/mobile/src/app/(app)/(tabs)/skills/index.tsx +64 −66
apps/mobile/src/app/(app)/settings/index.tsx +2 −1
apps/mobile/src/app/(app)/settings/mcp.tsx +28 −18
apps/mobile/src/app/(app)/thread/[id].tsx +11 −13
apps/mobile/src/app/(app)/workspace/general.tsx +7 −4
apps/mobile/src/components/ComposerBar.tsx +1 −0
apps/mobile/src/components/ui/screen.tsx +24 −3
apps/mobile/src/components/workspace/workspace-switcher.tsx +10 −2
test/mobile.thread-toolbar.test.tsx +293 −0