Repository navigation
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
Frontend Build
3m 50s
Matrix: cli-test
Matrix: rust-build-check
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
|