Skip to content

feat(web-ui): polish interaction motion and view transitions #4735

feat(web-ui): polish interaction motion and view transitions

feat(web-ui): polish interaction motion and view transitions #4735

Triggered via pull request August 13, 2026 06:54
Status Cancelled
Total duration 11m 19s
Artifacts –

ci.yml

on: pull_request
Shell Deploy Scripts
17s
Shell Deploy Scripts
Frontend Build
3m 50s
Frontend Build
Matrix: cli-test
Matrix: rust-build-check
Fit to window
Zoom out
Zoom in

Annotations

11 errors
Frontend Build
Process completed with exit code 1.
src/infrastructure/config/components/ExternalMcpOverview.test.tsx > ExternalMcpOverview > surfaces degraded source diagnostics ahead of a misleading active status: src/web-ui/src/infrastructure/config/components/ExternalMcpOverview.test.tsx#L755
AssertionError: expected 'external.titleexternal.import.preview…' not to contain 'details' Expected: "details" Received: "external.titleexternal.import.previewdocsOpenCodeexternal.scope.projectexternal.status.degradedexternal.status.approvalRequiredexternal.details.source:OpenCode project MCPexternal.details.scope:external.scope.projectexternal.details.location:<workspace>/.opencode/opencode.jsonexternal.details.transport:external.transport.localStdio" ❯ src/infrastructure/config/components/ExternalMcpOverview.test.tsx:755:39
src/infrastructure/appearance/builtins/appearancePresetOutput.test.ts > builtin appearance preset output > keeps resolved preset objects stable across helper refactors: src/web-ui/src/infrastructure/appearance/builtins/appearancePresetOutput.test.ts#L149
Error: Snapshot `builtin appearance preset output > keeps resolved preset objects stable across helper refactors 1` mismatched - Expected + Received [ { - "hash": "b70ab1232690e55f3446d84c5c5d4459c508c6cd5f1e0bfe8565eba82e97ea6e", + "hash": "954317380f5baa31e8b0155564c72606a76ff6fa6d8a190615120668a8e3d388", "id": "bitfun-light", "type": "light", }, { - "hash": "6c426dc8aacd8095fdf5a69ed80b4d42c0235cf72f61b20186fc14d5ebcb320b", + "hash": "89abef6e2224b6fb86ac8bb34578c0d7ef725172ec1f29b29818038288b5dae0", "id": "bitfun-slate", "type": "dark", }, { - "hash": "db937836a31fb02d67f6035f1b3a036b8161f3833fdbe2634f37936ba7ef6357", + "hash": "953efa0aa939f0080429972c3c0a7c46131523e106e8135cf543ec073d2e9d70", "id": "bitfun-dark", "type": "dark", }, { - "hash": "e1455a17d5891da49f584ac1da6740a04db152afd6cdd571a9406f86811e6c8b", + "hash": "6b3d5817b0bf0568739ddfe2bbc5a7287d3db58761eda61379814f321195b7ed", "id": "bitfun-midnight", "type": "dark", }, { - "hash": "7944cb574fd2b30cd4ed766e1b25e86eabd4c90b4a0e054489231a68de5cc424", + "hash": "e2dff5cddb2442779ca59ba92280cc3f01384a732c010f2e3dab8c399402e487", "id": "bitfun-china-style", "type": "light", }, { - "hash": "f66e855842633612ca3aed2c30ff8df057dd0768eeb47e89e049efab8968f227", + "hash": "4fb76f4da97bd97213e5f9f1d35dc2e369cffb0d85a076541edbacbec1d85166", "id": "bitfun-china-night", "type": "dark", }, { - "hash": "b72278893e14c1b0cef86449facf7ba61b4f714f077c3923241ebb012a90e3c8", + "hash": "a443ee9e0d5fd27e35aaf42fae2de7ba2ebd96841b9380794159ce2306c2c8c6", "id": "bitfun-cyber", "type": "dark", }, { - "hash": "abcd6c91fdc1c03ea66d7d460401351620d672130e4742cce6a8be7f04b22626", + "hash": "e6b73a7c2569ffc251d0223f1bc57dc0c750b4ffbc9b1225ac8715b9a1f8fc5d", "id": "bitfun-tokyo-night", "type": "dark", }, ] ❯ src/infrastructure/appearance/builtins/appearancePresetOutput.test.ts:149:10
src/app/startup/startupPerformanceContract.test.ts > startup performance contract > keeps on-demand workspace utility dialogs out of startup-visible chunks: src/web-ui/src/app/startup/startupPerformanceContract.test.ts#L691
AssertionError: expected '/**\n * Main application layout.\n *\…' to contain '{showNewProjectDialog && (' - Expected + Received - {showNewProjectDialog && ( + /** + * Main application layout. + * + * Column structure (top to bottom): + * WorkspaceBody (flex:1) — contains NavBar (with WindowControls) + NavPanel + SceneArea + * OR StartupContent + * + * TitleBar removed; window controls moved to NavBar, dialogs managed here. + */ + + import React, { useState, useCallback, useEffect, useMemo, useRef, useContext, lazy, Suspense } from 'react'; + import { useWorkspaceContext } from '../../infrastructure/contexts/WorkspaceContext'; + import { useWindowControls } from '../hooks/useWindowControls'; + import { isWindowFullscreenShortcut } from '../hooks/windowFullscreenShortcut'; + import { useAssistantBootstrap } from '../hooks/useAssistantBootstrap'; + import { usePermissionRequestNotify } from '../hooks/usePermissionRequestNotify'; + import { useApp } from '../hooks/useApp'; + import { useSceneStore } from '../stores/sceneStore'; + import { useShortcut } from '@/infrastructure/hooks/useShortcut'; + import { configManager } from '@/infrastructure/config/services/ConfigManager'; + import { FlowChatManager } from '../../flow_chat/services/FlowChatManager'; + import WorkspaceBody from './WorkspaceBody'; + import { useToolbarModeContext } from '../../flow_chat/components/toolbar-mode/ToolbarModeContext'; + import { MCPInteractionDialog } from '../components/MCPInteractionDialog/MCPInteractionDialog'; + import { workspaceAPI } from '@/infrastructure/api'; + import { systemAPI } from '@/infrastructure/api/service-api/SystemAPI'; + import type { CloseBehavior } from '@/infrastructure/api/service-api/SystemAPI'; + import { confirmDialog, PresenceBoundary } from '@/component-library'; + import { createLogger } from '@/shared/utils/logger'; + import { DailyAppUpdateGate } from '@/infrastructure/update'; + import { useI18n } from '@/infrastructure/i18n'; + import { WorkspaceKind } from '@/shared/types'; + import { SSHContext } from '@/features/ssh-remote/SSHRemoteContext'; + import { shortcutManager, parseStoredKeybindings } from '@/infrastructure/services/ShortcutManager'; + import { useSessionModeStore } from '../stores/sessionModeStore'; + import { isMacOSDesktopRuntime } from '@/infrastructure/runtime'; + import { flowChatSessionConfigForWorkspace } from '../utils/projectSessionWorkspace'; + import { notificationService } from '@/shared/notification-system'; + import { AppearanceBackgroundMediaLayer, appearanceRuntime, useAppearance } from '@/infrastructure/appearance'; + import './AppLayout.scss'; + + type TransitionDirection = 'entering' | 'returning' | null; + + const log = createLogger('AppLayout'); + const NewProjectDialog = lazy(() => + import('../components/NewProjectDialog').then(module => ({ default: module.NewProjectDialog })) + ); + const ToolbarMode = lazy(() => + import('../../flow_chat/components/toolbar-mode/ToolbarMode').then(module => ({ + default: module.ToolbarMode, + })) + ); + const FloatingMiniChat = lazy(() => + import('./FloatingMiniChat').then(module => ({ default: module.FloatingMiniChat })) + ); + const AboutDialog = lazy(() => + import('../components/AboutDialog').then(module => ({ default: module.AboutDialog })) + ); + const WorkspaceManager = lazy(() => import('../../tools/workspace/components/WorkspaceManager')); + + interface AppLayoutProps { + className?: string; + } + + interface AcpSessionCreationEventDetail { + phase?: 'start' | 'finish'; + clientId?: string; + action?: 'create' | 'restore'; + requestId?: string; + succeeded?: boolean; + } + + interface WindowModeHint { + id: number; + title: string; + detail: string; + } + + const AppLayout: React.FC<AppLayoutProps> = ({ className = '' }) => { + const { t } = useI18n('components'); + const { t: tCommon } = useI18n('common'); + const currentAppearance = useAppearance().current; + const backgroundMedia = currentAppearance?.backgroundMedia; + usePermissionRequestNotify(); + const { + cu
Rust Build Check (windows-latest)
Canceling since a higher priority waiting request for ci-refs/pull/2257/merge exists
Rust Build Check (windows-latest)
The operation was canceled.
Rust Build Check (macos-15)
Canceling since a higher priority waiting request for ci-refs/pull/2257/merge exists
Rust Build Check (macos-15)
The operation was canceled.
CLI Tests (macos-15)
Canceling since a higher priority waiting request for ci-refs/pull/2257/merge exists
CLI Tests (macos-15)
The operation was canceled.
CI
Canceling since a higher priority waiting request for ci-refs/pull/2257/merge exists