Files
deepseek-harness/apps/web/tsconfig.json
T
Feiyu XiaandZrs000 5f01833f80 fix(client): align floating panels with the visual viewport (#6666)
* fix(ui-primitives): keep tall menus inside the mobile viewport

* fix(client): anchor model picker with Floating UI

Use Floating UI for fixed model-menu placement and automatic viewport updates. Preserve top-end alignment and defer automatic focus until placement is ready. Guard asynchronous results across updates and menu teardown.

* fix(client): preserve menu blur under pinned group titles

Keep the current provider title outside the native scroll viewport so
model rows cannot bleed through during fast scrolling. Preserve the
enclosing menu fill and backdrop filter, and update both model pickers,
lifecycle tests and ARIA goldens.

Validation: doc-sync, full build, final type checks, focused lint and
all 12 model-picker browser checks pass. The full unit run has 42,597
passing tests and four failures in unchanged gateway, third-party-
notices and Inspector tests. The Inspector case passes in isolation.

* fix(client): stabilize floating panels during browser zoom

* fix(client): keep portal menus aligned during Safari zoom

* fix(client): commit floating menu positions before paint

* fix(client): unify floating panel positioning

* fix(client): validate grouped menu headings

* fix(client): hide inactive pinned menu headings

* test(client): await floating menu layout across consumers

* test(ui-chat): await folded reply menu positioning

* test(client): align current consumers with asynchronous panel layout

* fix(client): prevent mobile model search focus zoom

* refactor(client): inject mobile device state from layout

* fix(client): keep anchored panel layout synchronous

* fix(client): address panel review coverage and documentation

* fix(client): keep viewport changes focused on iOS zoom

* fix(client): cover anchored panel lifecycle and scrollbar colors

* fix(client): preserve zoomed model menu scrolling and alignment

* fix(client): hide empty model menus and stabilize viewport pan tests

* test(web): use native wheel input for zoomed viewport panning

* fix(client): keep automation pickers scrollable when zoomed

* fix(client): allow horizontal gestures across clock columns

* fix(client): ellipsize overflowing floating-panel labels

* test(web): make clock overflow fixture independent of system fonts

---------

Co-authored-by: Zrs000 <[email protected]>
2026-10-30 11:33:46 +08:00

271 lines
9.5 KiB
JSON

{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"rootDir": ".",
"outDir": "lib/types",
"jsx": "react-jsx",
"lib": [
"ES2024",
"DOM",
"DOM.Iterable"
],
"types": [
"node"
]
},
"include": [
"src",
"scripts",
"tests"
],
// The web e2e lane (scaffold + replay specs) boots the host spine and reads
// its Context merges — host-plane programs, checked in tsconfig.host.json;
// this client-registered project must not also hold them (one program
// cannot see both sides of the cordis Context merges).
"exclude": [
"tests/sidebar-drawer.e2e.ts",
"tests/creation-recommendations.e2e.ts",
"tests/plugin-recommendations.e2e.ts",
"tests/japanese-plugin-metadata.e2e.ts",
"tests/context-menus.e2e.ts",
"tests/additional-locales.e2e.ts",
"tests/rich-text-quotes.e2e.ts",
"tests/hover-input.e2e.ts",
"tests/collapse-timing.e2e.ts",
"tests/notice-wake-tail.e2e.ts",
"tests/fold-blank-matrix.e2e.ts",
"tests/chat-fold-opened-group.e2e.ts",
"tests/chat-flow-layout.e2e.ts",
"tests/layout-bottom.e2e.ts",
"tests/shortcuts-desktop.e2e.ts",
"tests/shortcuts-workspace.e2e.ts",
"tests/shortcuts-panels.e2e.ts",
"tests/shortcuts-fixed.e2e.ts",
"tests/shortcuts.e2e.ts",
"tests/composer-shortcuts.e2e.ts",
"tests/default-product-isolation.e2e.ts",
"tests/diff-context.e2e.ts",
"tests/search-empty-include.e2e.ts",
"tests/code-card-layout.e2e.ts",
"tests/code-language.snapshot.ts",
"tests/scaffold.ts",
"tests/clock.e2e.ts",
"tests/connection-recovery.e2e.ts",
"tests/server-restart.e2e.ts",
"tests/voice-input.e2e.ts",
"tests/cot-translation.e2e.ts",
"tests/cot-translation-paid.e2e.ts",
"tests/forge-panel.e2e.ts",
"tests/voice-setup.e2e.ts",
"tests/voice-download.e2e.ts",
"tests/prefix-proxy.ts",
"tests/auto-review-fixture.ts",
"tests/scaffold-generation.spec.ts",
"tests/scaffold-hermetic.e2e.ts",
"tests/startup-rpc-budget.e2e.ts",
"tests/minimal-preset.snapshot.ts",
"tests/message-feedback-protocol.snapshot.ts",
"tests/preset-migration.snapshot.ts",
"tests/subagent-fork-schedule.snapshot.ts",
"tests/live-interactions.e2e.ts",
"tests/question-composer.e2e.ts",
"tests/question-composer-recommended.e2e.ts",
"tests/question-ptc.e2e.ts",
"tests/approval-composer.e2e.ts",
"tests/ptc-escalation.e2e.ts",
"tests/standalone-string-editor.e2e.ts",
"tests/official-subagent-bundle.e2e.ts",
"tests/plan-control-row.e2e.ts",
"tests/plan-review.e2e.ts",
"tests/steering.e2e.ts",
"tests/navigation-panes.e2e.ts",
"tests/shell-command-details.e2e.ts",
"tests/terminal-command-browser.ts",
"tests/focus-rings.e2e.ts",
"tests/chat-scroll-fixture.ts",
"tests/trajectory-virtualization.e2e.ts",
"tests/lifecycle-chrome.e2e.ts",
"tests/reasoning-preview.e2e.ts",
"tests/details-session-lifecycle.e2e.ts",
"tests/sessionless-header.e2e.ts",
"tests/document-preview.e2e.ts",
"tests/file-browser.e2e.ts",
"tests/file-browser-composition.e2e.ts",
"tests/excel-opc.e2e.ts",
"tests/office-fixture.ts",
"tests/sidebar-browser.e2e.ts",
"tests/jobs-menu-layering.e2e.ts",
"tests/plugin-config.e2e.ts",
"tests/input-plugin-extensions.e2e.ts",
"tests/plugin-manager.e2e.ts",
"tests/plugin-market-toolbar.e2e.ts",
"tests/plugin-sticky-motion.e2e.ts",
"tests/entry-customization.e2e.ts",
"tests/cua-optin.e2e.ts",
"tests/bundle-platform.e2e.ts",
"tests/cua-permissions.e2e.ts",
"tests/schedule-header.e2e.ts",
"tests/schedule-phone.e2e.ts",
"tests/schedule-pickers.e2e.ts",
"tests/worktree-opt-in.e2e.ts",
"tests/session-inspector.e2e.ts",
"tests/shared-inspector.e2e.ts",
"tests/inspector-late-enable.e2e.ts",
"tests/devtools-frontend.e2e.ts",
"tests/inspector-panels.e2e.ts",
"tests/inspector-source-build.e2e.ts",
"tests/plugin-install-cancel.e2e.ts",
"tests/plugin-install-approve.e2e.ts",
"tests/plugin-hmr-lifecycle.e2e.ts",
"tests/plugin-install-registry.e2e.ts",
"tests/plugin-install-github.e2e.ts",
"tests/plugin-install-silent-failure.e2e.ts",
"tests/client-plugin-live.e2e.ts",
"tests/icon-skin.e2e.ts",
"tests/draft-initialization.e2e.ts",
"tests/settings-chrome.e2e.ts",
"tests/session-log-upload.e2e.ts",
"tests/caption-overlays.e2e.ts",
"tests/settings-appearance.e2e.ts",
"tests/menu-material.e2e.ts",
"tests/desktop-locale.e2e.ts",
"tests/settings-import.e2e.ts",
"tests/desktop-updates.e2e.ts",
"tests/developer-tools-settings.e2e.ts",
"tests/models-settings.e2e.ts",
"tests/deepseek-messages-settings.e2e.ts",
"tests/model-badge.e2e.ts",
"tests/deepseek-messages-chat.e2e.ts",
"tests/models-settings-recovery.e2e.ts",
"tests/default-model.e2e.ts",
"tests/model-menu-observer.e2e.ts",
"tests/default-workspace.e2e.ts",
"tests/new-session-refused.e2e.ts",
"tests/github-ready-review.e2e.ts",
"tests/streaming-fence-highlight.e2e.ts",
"tests/declared-reasoning.e2e.ts",
"tests/onboarding-deepseek-config.e2e.ts",
"tests/onboarding-native.e2e.ts",
"tests/desktop-onboarding.e2e.ts",
"tests/bonus-notice.e2e.ts",
"tests/account-login.e2e.ts",
"tests/onboarding-usable-provider.e2e.ts",
"tests/remote-settings.e2e.ts",
"tests/public-mount.e2e.ts",
"tests/workspace-new-session-folding.e2e.ts",
"tests/workspace-management.e2e.ts",
"tests/workspace-recency.e2e.ts",
"tests/session-unarchive.e2e.ts",
"tests/session-archive-active.e2e.ts",
"tests/replay-round-trip.e2e.ts",
"tests/session-replay-reload.e2e.ts",
"tests/hmr-live.e2e.ts",
"tests/preview-boot.e2e.ts",
"tests/seeded-history.e2e.ts",
"tests/stats-paged-history.e2e.ts",
"tests/stats-truncated-tooltip.e2e.ts",
"tests/sidebar-scrollbar.e2e.ts",
"tests/sidebar-alignment.e2e.ts",
"tests/sidebar-title-hover-scroll.e2e.ts",
"tests/rail-search-expand.e2e.ts",
"tests/conversation-column-overflow.e2e.ts",
"tests/ptc-round.e2e.ts",
"tests/present.e2e.ts",
"tests/present-svg.e2e.ts",
"tests/present-after-closing-reply.e2e.ts",
"tests/autolink-cjk-punctuation.e2e.ts",
"tests/composer-draft-scroll.e2e.ts",
"tests/composer-focus.e2e.ts",
"tests/composer-placeholder.e2e.ts",
"tests/context-meter.e2e.ts",
"tests/cordis-tool-round.e2e.ts",
"tests/web-search-round.e2e.ts",
"tests/file-upload-round.e2e.ts",
"tests/message-actions.e2e.ts",
"tests/open-in-app-ssh.e2e.ts",
"tests/fork-mid-turn.e2e.ts",
"tests/message-feedback.e2e.ts",
"tests/markdown-images.e2e.ts",
"tests/markdown-image-refresh.e2e.ts",
"tests/markdown-file-links.e2e.ts",
"tests/user-text-secret-mask.e2e.ts",
"tests/reference-composer.e2e.ts",
"tests/markdown-wide-table.e2e.ts",
"tests/thinking-markdown.e2e.ts",
"tests/math-rendering.e2e.ts",
"tests/markdown-cjk-strong.e2e.ts",
"tests/markdown-inline-code-links.e2e.ts",
"tests/clickable-links-gallery.e2e.ts",
"tests/queue-actions.e2e.ts",
"tests/prompt-admission.e2e.ts",
"tests/idle-submission-handoff.e2e.ts",
"tests/cold-blank-session.e2e.ts",
"tests/blank-writer-reuse.e2e.ts",
"tests/blank-preset-reuse.e2e.ts",
"tests/queue-image.e2e.ts",
"tests/skill-invocation-policy.e2e.ts",
"tests/skill-user-invoke.e2e.ts",
"tests/skill-menu-plugin-change.e2e.ts",
"tests/permission-policy-context.e2e.ts",
"tests/access-confirmation.e2e.ts",
"tests/agent-preset-selection.e2e.ts",
"tests/agent-preset-authoring.e2e.ts",
"tests/shipped-composition.e2e.ts",
"tests/schedule-after.e2e.ts",
"tests/schedule-manual.e2e.ts",
"tests/feedback-command.e2e.ts",
"tests/feedback-release.e2e.ts",
"tests/agent-team-panel.e2e.ts",
"tests/client-ui-stats-panel.e2e.ts",
"tests/sidebar-right.e2e.ts",
"tests/sidebar-terminal.e2e.ts",
"tests/startup-auto-selection.e2e.ts",
"tests/changed-files-turn.e2e.ts",
"tests/produced-file-mentions.e2e.ts",
"tests/goal-bar.e2e.ts",
"tests/goal-command-presentation.e2e.ts",
"tests/subagent-conversation.e2e.ts",
"tests/subagent-interrupt.e2e.ts",
"tests/subagent-interrupt-ui.e2e.ts",
"tests/sidebar-subagent-activity.e2e.ts",
"tests/background-job-list.e2e.ts",
"tests/live-job-stream.e2e.ts",
"tests/auto-review-approval.e2e.ts",
"tests/auto-review-denial.e2e.ts",
"tests/bash-abort-row.e2e.ts",
"tests/interrupted-turn.e2e.ts",
"tests/skill-tool-row.e2e.ts",
"tests/tool-details.e2e.ts",
"tests/turn-tail-actions.e2e.ts",
"tests/goal-multi-turn-actions.e2e.ts",
"tests/chat-scroll-fixture.ts",
"tests/chat-scroll-contract.e2e.ts",
"tests/chat-long-interactions.e2e.ts",
"tests/chat-continuous-conversation.e2e.ts",
"tests/composer-tab-geometry.e2e.ts",
"tests/conversation-view-tabs.e2e.ts",
"tests/window-drag-coverage.e2e.ts",
"tests/complex-history.perf.ts",
"tests/pwsh-terminal.e2e.ts",
"tests/workflow-run.e2e.ts"
],
"references": [
{ "path": "../../packages/experimental/auto-review" },
{
"path": "../../packages/client/store"
},
{
"path": "../../packages/client/web"
},
{
"path": "../../packages/client/modules"
},
{
"path": "../../packages/test-support/client-runtime"
},
{
"path": "../../packages/test-support/remote-mock"
}
]
}