refactor(settings): group presentation and form-control owners (#37796)

This commit is contained in:
Neil
2026-11-03 03:42:05 -08:00
committed by GitHub
parent 4e3ee00eda
commit fced292c55
523 changed files with 2080 additions and 1992 deletions
+2 -2
View File
@@ -22,9 +22,9 @@
1 src/renderer/src/components/right-sidebar/ssh-forwarded-ports-section.tsx
1 src/renderer/src/components/right-sidebar/ssh-ports-panel.tsx
1 src/renderer/src/components/settings/CodexLoginLinkNotice.tsx
1 src/renderer/src/components/settings/GeneralSupportSection.tsx
1 src/renderer/src/components/settings/general/GeneralSupportSection.tsx
1 src/renderer/src/components/settings/HostAccountSignInPrompt.tsx
1 src/renderer/src/components/settings/ReleaseChannelSection.tsx
1 src/renderer/src/components/settings/updates/ReleaseChannelSection.tsx
1 src/renderer/src/components/settings/bitbucket-credentials-dialog.tsx
1 src/renderer/src/components/settings/bitbucket-integration-card.tsx
1 src/renderer/src/components/stats/ShareUsageButton.tsx
+10 -10
View File
@@ -72,32 +72,32 @@
1 src/renderer/src/components/settings/BaseRefPicker.tsx
1 src/renderer/src/components/settings/bitbucket-credentials-dialog.tsx
1 src/renderer/src/components/settings/bitbucket-integration-card.tsx
2 src/renderer/src/components/settings/BrowserPane.tsx
2 src/renderer/src/components/settings/browser/BrowserPane.tsx
3 src/renderer/src/components/settings/cli-source-control-integration-cards.tsx
1 src/renderer/src/components/settings/CliSkillRuntimeSetup.tsx
1 src/renderer/src/components/settings/GeneralPane.tsx
1 src/renderer/src/components/settings/general/GeneralPane.tsx
1 src/renderer/src/components/settings/IntegrationsPane.tsx
3 src/renderer/src/components/settings/jira-integration-card.tsx
1 src/renderer/src/components/settings/linear-agent-skill-install-cta.tsx
3 src/renderer/src/components/settings/LinearAgentSkillPane.tsx
1 src/renderer/src/components/settings/provider-account-scope.ts
4 src/renderer/src/components/settings/RuntimeEnvironmentsPane.tsx
2 src/renderer/src/components/settings/settings-setup-guide-progress.ts
2 src/renderer/src/components/settings/setup-guide/settings-setup-guide-progress.ts
2 src/renderer/src/components/settings/Settings.tsx
1 src/renderer/src/components/settings/SettingsSetupGuidePane.tsx
1 src/renderer/src/components/settings/SettingsSidebar.tsx
1 src/renderer/src/components/settings/ShortcutsPane.tsx
1 src/renderer/src/components/settings/setup-guide/SettingsSetupGuidePane.tsx
1 src/renderer/src/components/settings/navigation/SettingsSidebar.tsx
1 src/renderer/src/components/settings/shortcuts/ShortcutsPane.tsx
1 src/renderer/src/components/settings/source-control-preflight-card-status.ts
2 src/renderer/src/components/settings/task-tracker-integration-cards.tsx
2 src/renderer/src/components/settings/TasksPane.tsx
2 src/renderer/src/components/settings/token-source-control-integration-cards.tsx
2 src/renderer/src/components/settings/use-integration-provider-status-refresh.ts
1 src/renderer/src/components/settings/use-runtime-environment-mutation-actions.ts
2 src/renderer/src/components/settings/use-settings-navigation-model.ts
3 src/renderer/src/components/settings/use-settings-store-model.ts
2 src/renderer/src/components/settings/use-settings-terminal-model.ts
2 src/renderer/src/components/settings/navigation/use-settings-navigation-model.ts
3 src/renderer/src/components/settings/page/use-settings-store-model.ts
2 src/renderer/src/components/settings/page/use-settings-terminal-model.ts
4 src/renderer/src/components/settings/use-task-source-provider-readiness.ts
1 src/renderer/src/components/settings/WorkspaceDirectorySetting.tsx
1 src/renderer/src/components/settings/general/WorkspaceDirectorySetting.tsx
1 src/renderer/src/components/setup-guide/SetupGuideModal.tsx
1 src/renderer/src/components/setup-guide/SetupGuideTelemetryObserver.tsx
2 src/renderer/src/components/setup-guide/use-setup-guide-progress.ts
+3 -3
View File
@@ -4,9 +4,9 @@
1 src/renderer/src/components/automations/AutomationRunsDashboard.tsx
1 src/renderer/src/components/right-sidebar/AiVaultPanelControls.tsx
1 src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.tsx
1 src/renderer/src/components/settings/BrowserSessionCookiesSection.tsx
1 src/renderer/src/components/settings/BrowserSshWorkspaceRoutingSetting.tsx
1 src/renderer/src/components/settings/QuickCommandsToolbar.tsx
1 src/renderer/src/components/settings/browser/profiles/BrowserSessionCookiesSection.tsx
1 src/renderer/src/components/settings/browser/routing/BrowserSshWorkspaceRoutingSetting.tsx
1 src/renderer/src/components/settings/quick-commands/QuickCommandsToolbar.tsx
1 src/renderer/src/components/settings/repository/execution/RepositoryHostSetupsSection.tsx
1 src/renderer/src/components/sidebar/AddRemoteHostSshConfigPicker.tsx
4 src/renderer/src/components/status-bar/SshStatusSegment.tsx
+16 -16
View File
@@ -1,104 +1,104 @@
[
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "Idioma",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "Langue",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "Dil",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "Sprache",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "언어",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "言語",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "語言",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/appearance-search.ts",
"filePath": "src/renderer/src/components/settings/appearance/appearance-search.ts",
"kind": "object-property:keywords",
"text": "语言",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/terminal-advanced-platform-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/platform/terminal-advanced-platform-search.ts",
"kind": "object-property:keywords",
"text": "ghostty",
"dynamic": false,
"count": 2
},
{
"filePath": "src/renderer/src/components/settings/terminal-advanced-platform-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/platform/terminal-advanced-platform-search.ts",
"kind": "object-property:keywords",
"text": "Ghostty",
"dynamic": false,
"count": 2
},
{
"filePath": "src/renderer/src/components/settings/terminal-advanced-platform-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/platform/terminal-advanced-platform-search.ts",
"kind": "object-property:keywords",
"text": "Kitty",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/terminal-advanced-platform-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/platform/terminal-advanced-platform-search.ts",
"kind": "object-property:keywords",
"text": "kitty",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/terminal-advanced-platform-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/platform/terminal-advanced-platform-search.ts",
"kind": "object-property:keywords",
"text": "kitty.conf",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/terminal-pane-appearance-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/appearance/terminal-pane-appearance-search.ts",
"kind": "object-property:keywords",
"text": "ghostty",
"dynamic": false,
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/terminal-pane-appearance-search.ts",
"filePath": "src/renderer/src/components/settings/terminal/appearance/terminal-pane-appearance-search.ts",
"kind": "object-property:keywords",
"text": "Ghostty",
"dynamic": false,
@@ -133,7 +133,7 @@
"count": 1
},
{
"filePath": "src/renderer/src/components/settings/ChatFontFamilySetting.tsx",
"filePath": "src/renderer/src/components/settings/appearance/chat/ChatFontFamilySetting.tsx",
"kind": "jsx-text",
"text": "fontFamily",
"dynamic": false,
+20 -16
View File
@@ -1541,17 +1541,19 @@
"coveredProviders": [],
"coverageNotes": "Actual GeneralPane, update/version and remote-status components with mocked store/API; actual autosave form. Windows runtime on/off simulated. No physical updater, paired host, settings write or native input.",
"motivatingLinks": [
"https://github.com/stablyai/orca/blob/main/src/renderer/src/components/settings/GeneralPane.tsx"
"https://github.com/stablyai/orca/blob/main/src/renderer/src/components/settings/general/GeneralPane.tsx"
],
"invariant": "A matching General settings section retains its owner and state as preceding search results disappear; an actually removed section releases its owner and reloads when shown again.",
"oracle": "Across 14 matching searches the Updates section keeps the same DOM node and the version-read and remote-refresh counts do not grow, instead of six each. Store-published remote update state still reaches the retained section. Explicit refresh and genuine hide/reopen still read; drafts yield to externally changed saved settings; a removed owner cannot publish its late version.",
"commands": [
"ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/GeneralPane.section-lifetime.test.tsx"
"ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/general/GeneralPane.section-lifetime.test.tsx"
],
"testFiles": [
"src/renderer/src/components/settings/general/GeneralPane.section-lifetime.test.tsx"
],
"testFiles": ["src/renderer/src/components/settings/GeneralPane.section-lifetime.test.tsx"],
"assertionRefs": [
{
"file": "src/renderer/src/components/settings/GeneralPane.section-lifetime.test.tsx",
"file": "src/renderer/src/components/settings/general/GeneralPane.section-lifetime.test.tsx",
"assertions": [
"keeps showing store-published remote update state without a remount",
"keeps explicit remote refresh and true hide/reopen reads",
@@ -1566,6 +1568,7 @@
"runner": "local",
"platform": "macos",
"command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/GeneralPane.section-lifetime.test.tsx",
"currentCommand": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/general/GeneralPane.section-lifetime.test.tsx",
"result": "passed",
"durationSeconds": 1.89,
"summary": "7 tests/1 suite pass after the shared SettingsSectionStack adoption. Read-count oracles restated as node identity plus non-growing counts; original main fails both retained-section cases, the draft, the release-picker reveal and the late-version publish."
@@ -1693,20 +1696,20 @@
"coveredProviders": [],
"coverageNotes": "Actual TerminalPane, ManageSessionsSection, health listener and scrollback form with mocked store/provider and display/action boundaries. Unix/Windows and Mac-client/Windows-host flags simulated; no physical provider, process-stop or native input coverage.",
"motivatingLinks": [
"https://github.com/stablyai/orca/blob/main/src/renderer/src/components/settings/TerminalPane.tsx"
"https://github.com/stablyai/orca/blob/main/src/renderer/src/components/settings/terminal/TerminalPane.tsx"
],
"invariant": "A matching settings section retains its state when preceding sections are filtered away; a section removed from search releases its owner and refreshes when shown again. A retained section still refreshes when another surface invalidates the session inventory. Diagnostic inventory never becomes authority for process death.",
"oracle": "Across 15 matched search edits the matched section keeps the same DOM node and the inventory/health read counts do not grow, instead of six reads each. A foreign inventory invalidation still reads once on the retained section and not after unmount. A draft and pending target survive matched search; actual hide/reopen reloads, explicit Refresh still reads, and hidden/unmounted health listeners do not fire.",
"commands": [
"ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/TerminalPane.section-lifetime.test.tsx src/renderer/src/components/settings/TerminalTccAttributionNotice.test.tsx"
"ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/terminal/TerminalPane.section-lifetime.test.tsx src/renderer/src/components/settings/developer-permissions/TerminalTccAttributionNotice.test.tsx"
],
"testFiles": [
"src/renderer/src/components/settings/TerminalPane.section-lifetime.test.tsx",
"src/renderer/src/components/settings/TerminalTccAttributionNotice.test.tsx"
"src/renderer/src/components/settings/terminal/TerminalPane.section-lifetime.test.tsx",
"src/renderer/src/components/settings/developer-permissions/TerminalTccAttributionNotice.test.tsx"
],
"assertionRefs": [
{
"file": "src/renderer/src/components/settings/TerminalPane.section-lifetime.test.tsx",
"file": "src/renderer/src/components/settings/terminal/TerminalPane.section-lifetime.test.tsx",
"assertions": [
"refreshes a retained section when another surface invalidates the inventory",
"refreshes explicitly, reloads genuinely hidden sections, and removes focus listeners",
@@ -1721,6 +1724,7 @@
"runner": "local",
"platform": "macos",
"command": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/TerminalPane.section-lifetime.test.tsx src/renderer/src/components/settings/TerminalTccAttributionNotice.test.tsx",
"currentCommand": "ORCA_BACKGROUND_LAUNCH=1 pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/settings/terminal/TerminalPane.section-lifetime.test.tsx src/renderer/src/components/settings/developer-permissions/TerminalTccAttributionNotice.test.tsx",
"result": "passed",
"durationSeconds": 1.48,
"summary": "12 tests/2 suites pass after the shared SettingsSectionStack adoption and the inventory-invalidation subscription. Read-count oracles restated as node identity plus non-growing read counts; original main fails all three simulated platform cases, the draft, the pending target and the foreign-invalidation refresh."
@@ -10641,7 +10645,7 @@
"invariant": "Only an explicit user change in Settings > Remote Orca Servers > Advanced > Active Server may mutate activeRuntimeEnvironmentId. Connecting, pairing, disconnecting, selecting or revealing a workspace or terminal, browser/mobile handoff, remote navigation, and reconnect must use transient or target-owner routing and must never rewrite the durable preference. Every Add Project selected host must satisfy canSelectAddRepoHost; paired web has no local filesystem fallback, so no valid host means Browse, Clone, and Create remain disabled. Every operation stays on the host selected when it began, even if preference or catalog state changes. Generic settings mutation cannot bypass the dedicated preference IPC.",
"oracle": "Start with Active Server=Local desktop, connect and navigate Windows 2, then reveal a local terminal and assert it succeeds while the persisted preference remains local before and after restart. Repeat transient routing and selected-runtime Add Project operations with exact-ID host decoys and completion reordering. Separately pair the real web client to an isolated headed host, then make its sole still-listed runtime compatibility-blocked and unavailable. Require a null authoritative selection, a disabled host option, and disabled Browse, Clone, and Create actions with no local fallback. Repeat against headless serve. Run the byte-identical selector/action contract on latest main, candidate, and candidate with the eligibility seam disabled.",
"commands": [
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/settings.test.ts src/main/ipc/runtime-environments/runtime-environments-pairing.test.ts src/renderer/src/store/slices/settings.test.ts src/renderer/src/store/slices/browser-session-host-selection.test.ts src/renderer/src/components/settings/browser-session-host-selection.test.ts src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts src/renderer/src/hooks/useIpcEvents-terminal-create-surfacing.test.ts src/renderer/src/web/web-preload-api-runtime-environment.test.ts --maxWorkers=1",
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/settings.test.ts src/main/ipc/runtime-environments/runtime-environments-pairing.test.ts src/renderer/src/store/slices/settings.test.ts src/renderer/src/store/slices/browser-session-host-selection.test.ts src/renderer/src/components/settings/browser/profiles/browser-session-host-selection.test.ts src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts src/renderer/src/hooks/useIpcEvents-terminal-create-surfacing.test.ts src/renderer/src/web/web-preload-api-runtime-environment.test.ts --maxWorkers=1",
"pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/sidebar/AddProjectFromFolderDialog.test.tsx src/renderer/src/components/sidebar/NonGitFolderDialog.test.tsx src/renderer/src/components/sidebar/AddRepoDialog.default-checkout.test.ts src/renderer/src/components/sidebar/project-added-default-checkout.test.ts src/renderer/src/components/sidebar/worktree-list/listing/host-filtering.test.ts src/renderer/src/lib/resolved-worktree-execution-host.test.ts src/renderer/src/lib/worktree-runtime-owner.test.ts src/renderer/src/store/slices/repos-catalog-reconciliation.test.ts src/renderer/src/store/slices/repos-project-groups.test.ts src/renderer/src/store/slices/repos-selected-owner-routing.test.ts src/renderer/src/store/slices/selected-host-active-workspace-identity.test.ts src/renderer/src/store/slices/worktrees-fetch-owner-routing.test.ts --maxWorkers=1",
"pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/sidebar/add-repo-browse-authority.test.ts src/renderer/src/components/sidebar/AddRepoStartSteps.test.tsx --maxWorkers=1",
"pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/sidebar/AddProjectFromFolderDialog.test.tsx src/renderer/src/components/sidebar/NonGitFolderDialog.test.tsx src/renderer/src/components/sidebar/AddRepoDialog.default-checkout.test.ts src/renderer/src/components/sidebar/project-added-default-checkout.test.ts src/renderer/src/components/sidebar/worktree-list/listing/host-filtering.test.ts src/renderer/src/lib/resolved-worktree-execution-host.test.ts src/renderer/src/lib/worktree-runtime-owner.test.ts src/renderer/src/store/slices/repos-catalog-reconciliation.test.ts src/renderer/src/store/slices/repos-project-groups.test.ts src/renderer/src/store/slices/repos-selected-owner-routing.test.ts src/renderer/src/store/slices/selected-host-active-workspace-identity.test.ts src/renderer/src/store/slices/worktrees-fetch-owner-routing.test.ts --maxWorkers=1",
@@ -10655,7 +10659,7 @@
"src/main/ipc/runtime-environments/runtime-environments-pairing.test.ts",
"src/renderer/src/store/slices/settings.test.ts",
"src/renderer/src/store/slices/browser-session-host-selection.test.ts",
"src/renderer/src/components/settings/browser-session-host-selection.test.ts",
"src/renderer/src/components/settings/browser/profiles/browser-session-host-selection.test.ts",
"src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts",
"src/renderer/src/components/sidebar/add-repo-browse-authority.test.ts",
"src/renderer/src/hooks/useIpcEvents-terminal-create-surfacing.test.ts",
@@ -10711,7 +10715,7 @@
]
},
{
"file": "src/renderer/src/components/settings/browser-session-host-selection.test.ts",
"file": "src/renderer/src/components/settings/browser/profiles/browser-session-host-selection.test.ts",
"assertions": [
"a removed transient server override falls back to an available host instead of leaving browser settings on an invalid option"
]
@@ -10796,7 +10800,7 @@
"runner": "local",
"platform": "macos",
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/settings.test.ts src/main/ipc/runtime-environments/runtime-environments-pairing.test.ts src/renderer/src/store/slices/settings.test.ts src/renderer/src/store/slices/browser.test.ts src/renderer/src/components/settings/browser-session-host-selection.test.ts src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts src/renderer/src/components/status-bar/SshStatusSegment.test.ts src/renderer/src/hooks/useIpcEvents-terminal-create-surfacing.test.ts src/renderer/src/web/web-preload-api-runtime-environment.test.ts --maxWorkers=1",
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/settings.test.ts src/main/ipc/runtime-environments/runtime-environments-pairing.test.ts src/renderer/src/store/slices/settings.test.ts src/renderer/src/store/slices/browser-session-host-selection.test.ts src/renderer/src/components/settings/browser-session-host-selection.test.ts src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts src/renderer/src/hooks/useIpcEvents-terminal-create-surfacing.test.ts src/renderer/src/web/web-preload-api-runtime-environment.test.ts --maxWorkers=1",
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/settings.test.ts src/main/ipc/runtime-environments/runtime-environments-pairing.test.ts src/renderer/src/store/slices/settings.test.ts src/renderer/src/store/slices/browser-session-host-selection.test.ts src/renderer/src/components/settings/browser/profiles/browser-session-host-selection.test.ts src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts src/renderer/src/hooks/useIpcEvents-terminal-create-surfacing.test.ts src/renderer/src/web/web-preload-api-runtime-environment.test.ts --maxWorkers=1",
"result": "passed",
"durationSeconds": 6.55,
"summary": "Ten files and 282 tests passed, including the composed Local -> Windows 2 navigation -> local reveal -> restart regression, dedicated-only preference persistence, removed transient-host fallback, multi-client browser routing, late host-operation suppression, and web pairing/preference separation."
@@ -20879,7 +20883,7 @@
"invariant": "A packaged macOS daemon runs from the verified signed helper copy for its build, which the updater never touches, and never beside a job that may own the endpoint; the fork fallback still fits the startup gate. A copy is deleted only when lsof proves it unused.",
"oracle": "Deterministic launch, fallback-deadline, per-build copy, retirement and status tests, plus the signed launcher validation recorded in #25848.",
"commands": [
"ORCA_BACKGROUND_LAUNCH=1 pnpm test src/main/daemon/macos-daemon-bundle.test.ts src/main/daemon/macos-daemon-launchd.test.ts src/main/daemon/daemon-init-macos-stable-launch-fallback.test.ts src/main/daemon/macos-daemon-job-state.test.ts src/main/daemon/macos-daemon-bundle-retirement.test.ts src/main/daemon/daemon-full-disk-access-status.test.ts config/scripts/macos-folder-usage-descriptions.test.mjs src/renderer/src/components/settings/DeveloperPermissionsPane.test.tsx"
"ORCA_BACKGROUND_LAUNCH=1 pnpm test src/main/daemon/macos-daemon-bundle.test.ts src/main/daemon/macos-daemon-launchd.test.ts src/main/daemon/daemon-init-macos-stable-launch-fallback.test.ts src/main/daemon/macos-daemon-job-state.test.ts src/main/daemon/macos-daemon-bundle-retirement.test.ts src/main/daemon/daemon-full-disk-access-status.test.ts config/scripts/macos-folder-usage-descriptions.test.mjs src/renderer/src/components/settings/developer-permissions/DeveloperPermissionsPane.test.tsx"
],
"testFiles": [
"src/main/daemon/macos-daemon-bundle.test.ts",
@@ -20889,7 +20893,7 @@
"src/main/daemon/macos-daemon-bundle-retirement.test.ts",
"src/main/daemon/daemon-full-disk-access-status.test.ts",
"config/scripts/macos-folder-usage-descriptions.test.mjs",
"src/renderer/src/components/settings/DeveloperPermissionsPane.test.tsx"
"src/renderer/src/components/settings/developer-permissions/DeveloperPermissionsPane.test.tsx"
],
"assertionRefs": [
{
@@ -20921,7 +20925,7 @@
"runner": "local",
"platform": "macos",
"command": "ORCA_BACKGROUND_LAUNCH=1 pnpm test src/main/daemon/macos-daemon-bundle.test.ts src/main/daemon/macos-daemon-launchd.test.ts src/main/daemon/daemon-init-macos-stable-launch-fallback.test.ts src/main/daemon/macos-daemon-job-state.test.ts src/main/daemon/macos-daemon-bundle-retirement.test.ts src/main/daemon/daemon-full-disk-access-status.test.ts src/main/daemon/daemon-pty-adapter-full-disk-access.test.ts config/scripts/macos-folder-usage-descriptions.test.mjs src/renderer/src/components/settings/DeveloperPermissionsPane.test.tsx",
"currentCommand": "ORCA_BACKGROUND_LAUNCH=1 pnpm test src/main/daemon/macos-daemon-bundle.test.ts src/main/daemon/macos-daemon-launchd.test.ts src/main/daemon/daemon-init-macos-stable-launch-fallback.test.ts src/main/daemon/macos-daemon-job-state.test.ts src/main/daemon/macos-daemon-bundle-retirement.test.ts src/main/daemon/daemon-full-disk-access-status.test.ts config/scripts/macos-folder-usage-descriptions.test.mjs src/renderer/src/components/settings/DeveloperPermissionsPane.test.tsx",
"currentCommand": "ORCA_BACKGROUND_LAUNCH=1 pnpm test src/main/daemon/macos-daemon-bundle.test.ts src/main/daemon/macos-daemon-launchd.test.ts src/main/daemon/daemon-init-macos-stable-launch-fallback.test.ts src/main/daemon/macos-daemon-job-state.test.ts src/main/daemon/macos-daemon-bundle-retirement.test.ts src/main/daemon/daemon-full-disk-access-status.test.ts config/scripts/macos-folder-usage-descriptions.test.mjs src/renderer/src/components/settings/developer-permissions/DeveloperPermissionsPane.test.tsx",
"result": "passed",
"durationSeconds": 2.38,
"summary": "All 82 focused launch, fallback-deadline, per-build copy, retirement, status and packaging tests passed."
+66 -66
View File
@@ -8930,7 +8930,7 @@
"src/renderer/src/components/settings/AccountsPane.test.tsx": 2701,
"src/renderer/src/components/settings/AdvancedNetworkSettingsSection.interaction.test.tsx": 2206,
"src/renderer/src/components/settings/AdvancedNetworkSettingsSection.test.ts": 1969,
"src/renderer/src/components/settings/AdvancedPane.test.tsx": 599,
"src/renderer/src/components/settings/advanced/AdvancedPane.test.tsx": 599,
"src/renderer/src/components/settings/AgentDefaultSurfaceSection.test.tsx": 3070,
"src/renderer/src/components/settings/AgentLaunchChoiceEditor.test.tsx": 1565,
"src/renderer/src/components/settings/AgentLaunchDefaultsEditor.test.tsx": 1320,
@@ -8942,23 +8942,23 @@
"src/renderer/src/components/settings/AgentsPane.test.tsx": 3230,
"src/renderer/src/components/settings/AntigravityAccountsSection.test.tsx": 2722,
"src/renderer/src/components/settings/AntigravityChatSignInRow.test.tsx": 3258,
"src/renderer/src/components/settings/AppearanceChatContrastControls.draft.test.tsx": 795,
"src/renderer/src/components/settings/AppearanceChatContrastControls.test.tsx": 1122,
"src/renderer/src/components/settings/AppearanceChatSection.test.tsx": 1633,
"src/renderer/src/components/settings/AppearancePane.test.tsx": 2066,
"src/renderer/src/components/settings/ArtifactsSettingsPane.test.tsx": 862,
"src/renderer/src/components/settings/AutomationsSettingsPane.test.tsx": 602,
"src/renderer/src/components/settings/BrowserClientHostedRemoteSetting.test.tsx": 841,
"src/renderer/src/components/settings/BrowserPane.search-catalog.test.tsx": 774,
"src/renderer/src/components/settings/BrowserPane.test.ts": 44,
"src/renderer/src/components/settings/BrowserProfileRow.google-cookie-clear.test.tsx": 27636,
"src/renderer/src/components/settings/BrowserSitePermissionsSetting.test.tsx": 739,
"src/renderer/src/components/settings/BrowserUserAgentSetting.test.tsx": 2325,
"src/renderer/src/components/settings/ChatBehaviorSetting.test.tsx": 2783,
"src/renderer/src/components/settings/ChatNamingSetting.test.tsx": 2454,
"src/renderer/src/components/settings/ChatPermissionSetting.test.tsx": 834,
"src/renderer/src/components/settings/ChatSettingsSection.navigation.test.tsx": 2540,
"src/renderer/src/components/settings/ChatSettingsSection.test.tsx": 2718,
"src/renderer/src/components/settings/appearance/chat/AppearanceChatContrastControls.draft.test.tsx": 795,
"src/renderer/src/components/settings/appearance/chat/AppearanceChatContrastControls.test.tsx": 1122,
"src/renderer/src/components/settings/appearance/chat/AppearanceChatSection.test.tsx": 1633,
"src/renderer/src/components/settings/appearance/AppearancePane.test.tsx": 2066,
"src/renderer/src/components/settings/artifacts/ArtifactsSettingsPane.test.tsx": 862,
"src/renderer/src/components/settings/automations/AutomationsSettingsPane.test.tsx": 602,
"src/renderer/src/components/settings/browser/routing/BrowserClientHostedRemoteSetting.test.tsx": 841,
"src/renderer/src/components/settings/browser/BrowserPane.search-catalog.test.tsx": 774,
"src/renderer/src/components/settings/browser/BrowserPane.test.ts": 44,
"src/renderer/src/components/settings/browser/profiles/BrowserProfileRow.google-cookie-clear.test.tsx": 27636,
"src/renderer/src/components/settings/browser/BrowserSitePermissionsSetting.test.tsx": 739,
"src/renderer/src/components/settings/browser/BrowserUserAgentSetting.test.tsx": 2325,
"src/renderer/src/components/settings/chat/ChatBehaviorSetting.test.tsx": 2783,
"src/renderer/src/components/settings/chat/ChatNamingSetting.test.tsx": 2454,
"src/renderer/src/components/settings/chat/ChatPermissionSetting.test.tsx": 834,
"src/renderer/src/components/settings/chat/ChatSettingsSection.navigation.test.tsx": 2540,
"src/renderer/src/components/settings/chat/ChatSettingsSection.test.tsx": 2718,
"src/renderer/src/components/settings/CliSection.install-failure.test.tsx": 2250,
"src/renderer/src/components/settings/CliSection.test.tsx": 2135,
"src/renderer/src/components/settings/CliSkillRuntimeSetup.test.tsx": 1670,
@@ -8966,17 +8966,17 @@
"src/renderer/src/components/settings/CodexHistorySharingSetting.test.tsx": 539,
"src/renderer/src/components/settings/CodexLoginLinkNotice.test.tsx": 494,
"src/renderer/src/components/settings/CommitMessageAiPane.test.tsx": 3099,
"src/renderer/src/components/settings/DeveloperPermissionsPane.test.tsx": 2135,
"src/renderer/src/components/settings/developer-permissions/DeveloperPermissionsPane.test.tsx": 2135,
"src/renderer/src/components/settings/EphemeralVmRuntimesSection.test.tsx": 2270,
"src/renderer/src/components/settings/EphemeralVmsPane.test.tsx": 1025,
"src/renderer/src/components/settings/GeneralPane.section-lifetime.test.tsx": 1546,
"src/renderer/src/components/settings/GeneralPane.test.ts": 1266,
"src/renderer/src/components/settings/GeneralWorkspaceSettingsSection.test.tsx": 1989,
"src/renderer/src/components/settings/general/GeneralPane.section-lifetime.test.tsx": 1546,
"src/renderer/src/components/settings/general/GeneralPane.test.ts": 1266,
"src/renderer/src/components/settings/general/GeneralWorkspaceSettingsSection.test.tsx": 1989,
"src/renderer/src/components/settings/GrokAccountsSection.test.tsx": 623,
"src/renderer/src/components/settings/HostAccountSignInPrompt.test.tsx": 309,
"src/renderer/src/components/settings/HostAgentLaunchSettings.test.tsx": 7498,
"src/renderer/src/components/settings/KagiSessionLinkForm.test.ts": 403,
"src/renderer/src/components/settings/LocalNetworkConnectionTest.test.tsx": 592,
"src/renderer/src/components/settings/browser/KagiSessionLinkForm.test.ts": 403,
"src/renderer/src/components/settings/developer-permissions/LocalNetworkConnectionTest.test.tsx": 592,
"src/renderer/src/components/settings/MachineNameField.test.tsx": 557,
"src/renderer/src/components/settings/McpConfigSection.host-owner.test.tsx": 1736,
"src/renderer/src/components/settings/MobilePairingConnectionOptions.test.tsx": 924,
@@ -8984,24 +8984,24 @@
"src/renderer/src/components/settings/MobilePairingSetupSection.test.tsx": 1414,
"src/renderer/src/components/settings/MobilePane.test.tsx": 1581,
"src/renderer/src/components/settings/NodeDistMirrorDialog.test.tsx": 2412,
"src/renderer/src/components/settings/NotificationHostToggles.test.tsx": 646,
"src/renderer/src/components/settings/NotificationsPane.test.tsx": 1898,
"src/renderer/src/components/settings/notifications/NotificationHostToggles.test.tsx": 646,
"src/renderer/src/components/settings/notifications/NotificationsPane.test.tsx": 1898,
"src/renderer/src/components/settings/OrchestrationPane.test.tsx": 2437,
"src/renderer/src/components/settings/OrchestrationSkillAgentCoverage.test.tsx": 320,
"src/renderer/src/components/settings/PluginsSettingsSection.lifecycle.test.tsx": 5402,
"src/renderer/src/components/settings/ProjectWindowsRuntimeSetting.test.tsx": 712,
"src/renderer/src/components/settings/QuickCommandsList.test.tsx": 622,
"src/renderer/src/components/settings/ReleaseBuildPicker.test.tsx": 1084,
"src/renderer/src/components/settings/ReleaseChannelSection.test.tsx": 2701,
"src/renderer/src/components/settings/quick-commands/QuickCommandsList.test.tsx": 622,
"src/renderer/src/components/settings/updates/ReleaseBuildPicker.test.tsx": 1084,
"src/renderer/src/components/settings/updates/ReleaseChannelSection.test.tsx": 2701,
"src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts": 297,
"src/renderer/src/components/settings/RuntimeHostAccessForm.test.tsx": 379,
"src/renderer/src/components/settings/RuntimePairingGeneratorForm.test.tsx": 461,
"src/renderer/src/components/settings/SessionHistorySettingsPane.test.tsx": 1474,
"src/renderer/src/components/settings/SettingsConstants.test.ts": 240,
"src/renderer/src/components/settings/SettingsFormControls.font-autocomplete.test.tsx": 1202,
"src/renderer/src/components/settings/SettingsFormControls.segmented-control.test.tsx": 730,
"src/renderer/src/components/settings/ShortcutFilterRail.test.ts": 273,
"src/renderer/src/components/settings/ShortcutsPane.provenance.test.tsx": 2302,
"src/renderer/src/components/settings/session-history/SessionHistorySettingsPane.test.tsx": 1474,
"src/renderer/src/components/settings/appearance/fonts/font-suggestions.test.ts": 240,
"src/renderer/src/components/settings/appearance/fonts/FontAutocomplete.test.tsx": 1202,
"src/renderer/src/components/settings/form-controls/SettingsFormControls.segmented-control.test.tsx": 730,
"src/renderer/src/components/settings/shortcuts/ShortcutFilterRail.test.ts": 273,
"src/renderer/src/components/settings/shortcuts/ShortcutsPane.provenance.test.tsx": 2302,
"src/renderer/src/components/settings/SparsePresetSettingsSection.test.tsx": 744,
"src/renderer/src/components/settings/SshHostDeltaMoveDialog.test.tsx": 438,
"src/renderer/src/components/settings/SshHostRecoverServerAction.test.tsx": 669,
@@ -9013,19 +9013,19 @@
"src/renderer/src/components/settings/TaskSourceProviderCard.test.tsx": 467,
"src/renderer/src/components/settings/TaskSourceSimpleSetup.test.tsx": 527,
"src/renderer/src/components/settings/TasksPane.test.tsx": 905,
"src/renderer/src/components/settings/TerminalAdvancedSection.test.tsx": 2148,
"src/renderer/src/components/settings/terminal/TerminalAdvancedSection.test.tsx": 2148,
"src/renderer/src/components/settings/TerminalAppearanceSection.ghostty.test.ts": 549,
"src/renderer/src/components/settings/TerminalContrastSetting.test.tsx": 798,
"src/renderer/src/components/settings/TerminalLimitSetting.test.tsx": 1015,
"src/renderer/src/components/settings/TerminalPane.pwsh.test.ts": 765,
"src/renderer/src/components/settings/TerminalPane.section-lifetime.test.tsx": 1237,
"src/renderer/src/components/settings/TerminalSettingsPreview.lifecycle.test.tsx": 595,
"src/renderer/src/components/settings/TerminalTccAttributionNotice.test.tsx": 401,
"src/renderer/src/components/settings/TerminalThemeSections.lifecycle.test.ts": 1807,
"src/renderer/src/components/settings/VoiceMicrophoneSetting.test.tsx": 957,
"src/renderer/src/components/settings/VoicePane.test.tsx": 1042,
"src/renderer/src/components/settings/VoiceSpeechModelSection.test.tsx": 503,
"src/renderer/src/components/settings/WorkspaceDirectorySetting.test.tsx": 1982,
"src/renderer/src/components/settings/terminal/appearance/TerminalContrastSetting.test.tsx": 798,
"src/renderer/src/components/settings/terminal/session-management/TerminalLimitSetting.test.tsx": 1015,
"src/renderer/src/components/settings/terminal/TerminalPane.pwsh.test.ts": 765,
"src/renderer/src/components/settings/terminal/TerminalPane.section-lifetime.test.tsx": 1237,
"src/renderer/src/components/settings/terminal/appearance/TerminalSettingsPreview.lifecycle.test.tsx": 595,
"src/renderer/src/components/settings/developer-permissions/TerminalTccAttributionNotice.test.tsx": 401,
"src/renderer/src/components/settings/terminal/themes/TerminalThemeSections.lifecycle.test.ts": 1807,
"src/renderer/src/components/settings/voice/VoiceMicrophoneSetting.test.tsx": 957,
"src/renderer/src/components/settings/voice/VoicePane.test.tsx": 1042,
"src/renderer/src/components/settings/voice/VoiceSpeechModelSection.test.tsx": 503,
"src/renderer/src/components/settings/general/WorkspaceDirectorySetting.test.tsx": 1982,
"src/renderer/src/components/settings/ZcodeCliSetupSection.test.tsx": 818,
"src/renderer/src/components/settings/ZcodePlanAccountsSection.test.tsx": 1002,
"src/renderer/src/components/settings/account-add-cancel-target.test.ts": 217,
@@ -9035,21 +9035,21 @@
"src/renderer/src/components/settings/agent-model-choice-chips.test.ts": 208,
"src/renderer/src/components/settings/agent-permission-conversion-persistence.test.tsx": 16868,
"src/renderer/src/components/settings/bitbucket-integration-card.test.tsx": 619,
"src/renderer/src/components/settings/browser-session-host-selection.test.ts": 50,
"src/renderer/src/components/settings/browser/profiles/browser-session-host-selection.test.ts": 50,
"src/renderer/src/components/settings/bundled-skill-setup-result-copy.test.ts": 271,
"src/renderer/src/components/settings/chat-naming-persistence.test.tsx": 5499,
"src/renderer/src/components/settings/chat/chat-naming-persistence.test.tsx": 5499,
"src/renderer/src/components/settings/claude-account-switch-copy.test.tsx": 2470,
"src/renderer/src/components/settings/developer-permissions-search.test.ts": 308,
"src/renderer/src/components/settings/developer-permissions/developer-permissions-search.test.ts": 308,
"src/renderer/src/components/settings/jira-integration-card.test.tsx": 753,
"src/renderer/src/components/settings/keybinding-diagnostic-text.test.ts": 522,
"src/renderer/src/components/settings/keybinding-title-copy.test.ts": 227,
"src/renderer/src/components/settings/shortcuts/keybinding-diagnostic-text.test.ts": 522,
"src/renderer/src/components/settings/shortcuts/keybinding-title-copy.test.ts": 227,
"src/renderer/src/components/settings/linear-agent-skill-install-cta.test.tsx": 2205,
"src/renderer/src/components/settings/managed-server-row-parts.test.tsx": 664,
"src/renderer/src/components/settings/mobile-network-interface-selection.test.ts": 57,
"src/renderer/src/components/settings/mobile-pairing-device-polling.test.ts": 51,
"src/renderer/src/components/settings/mobile-pane-search.test.ts": 220,
"src/renderer/src/components/settings/native-chat-provider-choice.test.tsx": 3738,
"src/renderer/src/components/settings/notification-host-pending-save.test.tsx": 2029,
"src/renderer/src/components/settings/notifications/notification-host-pending-save.test.tsx": 2029,
"src/renderer/src/components/settings/repository/RepositoryGitHubAccountSection.inventory-lifetime.test.tsx": 656,
"src/renderer/src/components/settings/repository/RepositoryGitHubAccountSection.test.tsx": 569,
"src/renderer/src/components/settings/repository/RepositoryJiraProjectSection.test.tsx": 463,
@@ -9070,14 +9070,14 @@
"src/renderer/src/components/settings/runtime-server-default-name.test.ts": 122,
"src/renderer/src/components/settings/runtime-server-row-unverifiable-host.test.tsx": 2283,
"src/renderer/src/components/settings/runtime-share-computer-button.test.tsx": 2092,
"src/renderer/src/components/settings/settings-deep-link-target-watcher.test.ts": 204,
"src/renderer/src/components/settings/settings-form-option-filter.test.ts": 57,
"src/renderer/src/components/settings/navigation/settings-deep-link-target-watcher.test.ts": 204,
"src/renderer/src/components/settings/form-controls/settings-form-option-filter.test.ts": 57,
"src/renderer/src/components/settings/settings-host-scope.test.ts": 43,
"src/renderer/src/components/settings/settings-project-list.test.ts": 99,
"src/renderer/src/components/settings/settings-project-regrouping.test.ts": 623,
"src/renderer/src/components/settings/settings-search.test.ts": 53,
"src/renderer/src/components/settings/shortcut-groups.test.ts": 1931,
"src/renderer/src/components/settings/shortcut-row-visibility.test.ts": 288,
"src/renderer/src/components/settings/navigation/settings-project-list.test.ts": 99,
"src/renderer/src/components/settings/navigation/settings-project-regrouping.test.ts": 623,
"src/renderer/src/components/settings/search/settings-search.test.ts": 53,
"src/renderer/src/components/settings/shortcuts/shortcut-groups.test.ts": 1931,
"src/renderer/src/components/settings/shortcuts/shortcut-row-visibility.test.ts": 288,
"src/renderer/src/components/settings/skill-setup-blocked-plan.test.tsx": 28488,
"src/renderer/src/components/settings/source-control-action-card-layout.test.tsx": 4551,
"src/renderer/src/components/settings/source-control-action-permission-draft.test.tsx": 6938,
@@ -9087,17 +9087,17 @@
"src/renderer/src/components/settings/task-source-setup-state.test.ts": 59,
"src/renderer/src/components/settings/task-tracker-integration-cards.test.tsx": 1414,
"src/renderer/src/components/settings/usage-credential-host-sections.test.tsx": 942,
"src/renderer/src/components/settings/use-catalog-app-themes.test.ts": 2159,
"src/renderer/src/components/settings/use-debounced-settings-text-draft.test.ts": 308,
"src/renderer/src/components/settings/use-mac-captured-digit-chords.test.ts": 442,
"src/renderer/src/components/settings/appearance/themes/use-catalog-app-themes.test.ts": 2159,
"src/renderer/src/components/settings/form-controls/use-debounced-settings-text-draft.test.ts": 308,
"src/renderer/src/components/settings/shortcuts/use-mac-captured-digit-chords.test.ts": 442,
"src/renderer/src/components/settings/use-repository-hook-settings-draft.test.tsx": 586,
"src/renderer/src/components/settings/use-repository-issue-command-wsl-stopped.test.ts": 523,
"src/renderer/src/components/settings/use-runtime-environment-catalog.test.tsx": 2252,
"src/renderer/src/components/settings/use-runtime-environment-mutation-actions.test.tsx": 2069,
"src/renderer/src/components/settings/use-session-search-status.test.tsx": 477,
"src/renderer/src/components/settings/use-settings-repo-scroll-effects.test.tsx": 418,
"src/renderer/src/components/settings/session-history/use-session-search-status.test.tsx": 477,
"src/renderer/src/components/settings/navigation/use-settings-repo-scroll-effects.test.tsx": 418,
"src/renderer/src/components/settings/use-zcode-plan-credentials.test.tsx": 880,
"src/renderer/src/components/settings/useWarpThemeImport.test.ts": 246,
"src/renderer/src/components/settings/terminal/themes/useWarpThemeImport.test.ts": 246,
"src/renderer/src/components/settings/worktree-symlink-path-filter.scan-budget.test.ts": 68,
"src/renderer/src/components/settings/worktree-symlink-path-filter.test.ts": 51,
"src/renderer/src/components/setup-guide/SetupGuideModal.mount-gating.test.tsx": 2348,
@@ -157,7 +157,7 @@ describe('plugin PR E2E routing', () => {
'src/renderer/src/components/plugins/review/PluginUpdateReview.test.tsx',
'src/main/plugins/plugin-service.test.ts',
'src/main/plugins/__mocks__/plugin-git-ssh-remote-fixture.ts',
'src/renderer/src/components/settings/GeneralPane.tsx',
'src/renderer/src/components/settings/general/GeneralPane.tsx',
'src/main/ipc/filesystem.ts'
]) {
expect(routedPluginSpecs(file), file).toEqual([])
@@ -1,7 +1,7 @@
import { translate } from '@/i18n/i18n'
import { useAppStore } from '../store'
import { Button } from './ui/button'
import { NATIVE_CHAT_RESUME_SETTING_SECTION_ID } from './settings/native-chat-resume-setting-target'
import { NATIVE_CHAT_RESUME_SETTING_SECTION_ID } from './settings/chat/native-chat-resume-setting-target'
/** Explain automatic resume only for runs started by this launch’s saved preference, with its settings link. */
export function NativeChatResumeAutoNote({
@@ -2,7 +2,7 @@ import React from 'react'
import { Play, RefreshCw, Trash2 } from 'lucide-react'
import { Badge } from '@/components/ui/badge'
import { Button } from '@/components/ui/button'
import { SettingsSwitch } from '@/components/settings/SettingsFormControls'
import { SettingsSwitch } from '@/components/settings/form-controls/SettingsFormControls'
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
import type {
ExternalAutomationAction,
@@ -21,8 +21,8 @@ vi.mock('sonner', () => ({ toast: { success: vi.fn(), error: vi.fn() } }))
import { BrowserCookieImportDisclosure } from './BrowserCookieImportDisclosure'
import { BrowserImportHintButton } from './browser-pane/assemble-chrome/BrowserImportHintButton'
import { BrowserToolbarMenuDropdown } from './browser-pane/assemble-chrome/browser-toolbar-menu-dropdown'
import { BrowserProfileRow } from './settings/BrowserProfileRow'
import { BrowserUseCookieImportStep } from './settings/BrowserUseCookieImportStep'
import { BrowserProfileRow } from './settings/browser/profiles/BrowserProfileRow'
import { BrowserUseCookieImportStep } from './settings/browser/use/BrowserUseCookieImportStep'
const DETECTED_BROWSERS = [
{
@@ -8,7 +8,10 @@ import {
DropdownMenuTrigger
} from '@/components/ui/dropdown-menu'
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
import { SettingsSegmentedControl, SettingsSwitch } from '../settings/SettingsFormControls'
import {
SettingsSegmentedControl,
SettingsSwitch
} from '../settings/form-controls/SettingsFormControls'
import type { AgentDashboardMode } from '../../../../shared/ui-chrome-types'
import { translate } from '@/i18n/i18n'
import { canOpenAgentDashboardPopout } from './agent-dashboard-open-mode'
@@ -11,11 +11,11 @@ import { useAppStore } from '@/store'
import { toast } from 'sonner'
import { createGlobalSettingsFixture } from '../../../../shared/global-settings-test-fixture'
import type { RuntimeClientTarget } from '../../../../shared/runtime-client-target'
import { useSettingsPageEffects } from '../settings/use-settings-page-effects'
import { useSettingsPageEffects } from '../settings/page/use-settings-page-effects'
import { resolveSettingsHostScope } from '../settings/settings-host-scope'
import { renderAgentsSettingsSection } from '../settings/settings-capability-section-renderers'
import { ActiveSettingsSectionProvider } from '../settings/SettingsSection'
import type { SettingsRenderContext } from '../settings/settings-render-context'
import { renderAgentsSettingsSection } from '../settings/page/settings-capability-section-renderers'
import { ActiveSettingsSectionProvider } from '../settings/section-layout/SettingsSection'
import type { SettingsRenderContext } from '../settings/page/settings-render-context'
import { AGENT_DEFAULT_SURFACE_SECTION_ID } from '../settings/agents-search'
import { chatDemoRevealTokens, getChatDemoCopy } from './chat-ui-here-feature-tip-demo'
import { FeatureTipActions } from './FeatureTipActions'
@@ -4,7 +4,7 @@ import type { FeatureTip } from '../../../../shared/feature-tips'
import {
sessionSearchStatusDetails,
sessionSearchStatusMessage
} from '@/components/settings/session-history-status-copy'
} from '@/components/settings/session-history/session-history-status-copy'
import { DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'
import { translate } from '@/i18n/i18n'
import { FeatureTipActions } from './FeatureTipActions'
@@ -38,7 +38,7 @@ vi.mock('@/store', () => {
return { useAppStore }
})
vi.mock('@/components/settings/use-session-search-status', () => ({
vi.mock('@/components/settings/session-history/use-session-search-status', () => ({
useSessionSearchStatus: () => ({
status: mocks.status,
failed: false,
@@ -6,8 +6,8 @@ import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host'
import {
isSessionSearchIndexReady,
sessionSearchStatusMessage
} from '@/components/settings/session-history-status-copy'
import { useSessionSearchStatus } from '@/components/settings/use-session-search-status'
} from '@/components/settings/session-history/session-history-status-copy'
import { useSessionSearchStatus } from '@/components/settings/session-history/use-session-search-status'
import { translate } from '@/i18n/i18n'
import { useAppStore } from '@/store'
@@ -38,13 +38,14 @@ vi.mock('@/components/ui/dropdown-menu', () => {
vi.mock('../sidebar/use-sidebar-host-scope-options', () => ({
useSidebarHostScopeOptions: () => ({ hostOptions, hostScopeOptions: [] })
}))
vi.mock('../settings/use-notification-source-options', () => ({
vi.mock('../settings/notifications/use-notification-source-options', () => ({
useNotificationSourceOptions: () => hostOptions
}))
const { SidebarHostScopeMenuSection } = await import('../sidebar/SidebarHostScopeMenuSection')
const { NotificationHostToggles } = await import('../settings/NotificationHostToggles')
const { WorkspaceDirectorySetting } = await import('../settings/WorkspaceDirectorySetting')
const { NotificationHostToggles } =
await import('../settings/notifications/NotificationHostToggles')
const { WorkspaceDirectorySetting } = await import('../settings/general/WorkspaceDirectorySetting')
function nodeCount(): number {
return document.body.getElementsByTagName('*').length
@@ -2,7 +2,7 @@ import { Settings } from 'lucide-react'
import { translate } from '@/i18n/i18n'
import { useAppStore } from '@/store'
import { formatUsageLimitResetClock } from '../../../../shared/agent-session/failures/agent-session-usage-limit'
import { NATIVE_CHAT_USAGE_LIMIT_CONTINUE_SETTING_SECTION_ID } from '../settings/native-chat-usage-limit-continue-setting-target'
import { NATIVE_CHAT_USAGE_LIMIT_CONTINUE_SETTING_SECTION_ID } from '../settings/chat/native-chat-usage-limit-continue-setting-target'
export type NativeChatUsageLimitAutoContinueState =
| { kind: 'off' }
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { SetupConfig } from '../../../../shared/orca-hook-setup-config'
import type { SetupDecision } from '../../../../shared/worktree/create-types'
import type { SetupAgentStartupPolicy } from '../../../../shared/orca-yaml-hook-types'
import { SettingsSwitch } from '@/components/settings/SettingsFormControls'
import { SettingsSwitch } from '@/components/settings/form-controls/SettingsFormControls'
import { Button } from '@/components/ui/button'
import { cn } from '@/lib/utils'
import { SetupCommandPreview } from './SetupCommandPreview'
@@ -11,7 +11,7 @@ import {
SelectTrigger,
SelectValue
} from '@/components/ui/select'
import { sendNotificationSettingsTestNotification } from '@/components/settings/notification-settings-copy'
import { sendNotificationSettingsTestNotification } from '@/components/settings/notifications/notification-settings-copy'
import { getNotificationSoundOptions } from '@/components/notification-sound-options'
import {
MacNotificationPermissionCard,
@@ -5,7 +5,7 @@ import { WINDOWS_GIT_BASH_SHELL } from '../../../../shared/windows-terminal-shel
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { cn } from '@/lib/utils'
import { useWindowsTerminalCapabilities } from '@/lib/windows-terminal-capabilities'
import { SettingsSegmentedControl } from '../settings/SettingsFormControls'
import { SettingsSegmentedControl } from '../settings/form-controls/SettingsFormControls'
import { ShellIcon } from '../tab-bar/shell-icons'
import {
Select,
@@ -8,8 +8,12 @@ import { useAppStore } from '@/store'
import { NativeChatCrewFrame } from './NativeChatCrewPanel'
import { TerminalCrewPortals } from './TerminalCrewPortals'
import { useOrchestrationPanelEnabled } from './use-orchestration-panel-enabled'
import { ExperimentalPane, getExperimentalPaneSearchEntries } from '../settings/ExperimentalPane'
import { getExperimentalSearchEntry } from '../settings/experimental-search'
import { ExperimentalPane } from '../settings/advanced/ExperimentalPane'
import {
getExperimentalPaneSearchEntries,
getExperimentalSearchEntry
} from '../settings/advanced/experimental-search'
import { getOrchestrationPanelExperimentalSearchEntry } from '../settings/orchestration-panel-experimental-search'
import { TooltipProvider } from '../ui/tooltip'
import { i18n, loadRendererUiLanguage, translate } from '@/i18n/i18n'
@@ -4,7 +4,7 @@ import { translate } from '@/i18n/i18n'
import { Button } from '../../ui/button'
import { DropdownMenuItem, DropdownMenuSeparator } from '../../ui/dropdown-menu'
import type { PluginListEntry } from './plugin-list-entries'
import { SettingsSwitch } from '../../settings/SettingsFormControls'
import { SettingsSwitch } from '../../settings/form-controls/SettingsFormControls'
import {
pluginNeedsReview,
installedPluginPresentation,
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, expect, it, vi } from 'vitest'
import { getDefaultSettings } from '../../../shared/constants'
import { ConfirmationDialogContext } from './confirmation-dialog-context'
import { UntitledFileRenameDialog } from './editor/UntitledFileRenameDialog'
import { QuickCommandsPane } from './settings/QuickCommandsPane'
import { QuickCommandsPane } from './settings/quick-commands/QuickCommandsPane'
import { useWorkspaceKanbanColumnResize } from './sidebar/use-workspace-kanban-column-resize'
import { useAddRepoCloneFlow } from './sidebar/useAddRepoCloneFlow'
@@ -29,8 +29,8 @@ import {
} from './accounts-search'
import { getRemoteAccountsPaneScope } from './provider-account-scope'
import { ProviderHostScopeControl } from './ProviderHostScopeControl'
import { SettingsSectionStack } from './SettingsSectionStack'
import { matchesSettingsSearch } from './settings-search'
import { SettingsSectionStack } from './section-layout/SettingsSectionStack'
import { matchesSettingsSearch } from './search/settings-search'
import { getCodexAccountAuthWarning } from './codex-account-auth-warning'
import { getCodexConfigSyncWarning } from './codex-config-sync-warning'
import {
@@ -17,8 +17,8 @@ import { Label } from '../ui/label'
import { Textarea } from '../ui/textarea'
import { getAdvancedNetworkSearchEntries } from './advanced-network-search'
import { NodeDistMirrorSettingField } from './NodeDistMirrorSettingField'
import { SearchableSetting } from './SearchableSetting'
import { matchesSettingsSearch, normalizeSettingsSearchQuery } from './settings-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { matchesSettingsSearch, normalizeSettingsSearchQuery } from './search/settings-search'
import { translate } from '@/i18n/i18n'
export function shouldOpenNetworkProxyConfig(searchQuery: string): boolean {
@@ -6,8 +6,8 @@ import {
getAgentAwakeSearchKeywords,
getAgentAwakeTitle
} from './agent-awake-copy'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSegmentedControl } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import {
computerAwakeSettingsForMode,
normalizeComputerAwakeMode,
@@ -5,8 +5,8 @@ import { useAppStore } from '../../store'
import { Label } from '../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import { getAgentCacheTimerSearchEntries } from './agent-cache-timer-search'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSubsectionHeader, SettingsSwitch } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSubsectionHeader, SettingsSwitch } from './form-controls/SettingsFormControls'
import { translate } from '@/i18n/i18n'
type AgentCacheTimerSectionProps = {
@@ -5,7 +5,7 @@ import { AgentIcon } from '@/lib/agent-catalog'
import { cn } from '@/lib/utils'
import { translate } from '@/i18n/i18n'
import { Button } from '../ui/button'
import { SettingsBadge, SettingsSegmentedControl } from './SettingsFormControls'
import { SettingsBadge, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import type { AgentSessionSourceHomeControl } from './codex-session-source-home-control'
import { AgentSessionSourceHomeInput } from './codex-session-source-home-control'
import { resolveTuiAgentPermissionMode } from '../../../../shared/tui-agent-permissions'
@@ -11,7 +11,7 @@ import {
} from './AntigravityProviderSignInArea'
import { getHostRuntimeLabel, getRuntimeSentenceLabel } from './accounts-pane-runtime'
import type { AgentOpensAs } from './native-chat-provider-choice'
import { SettingsSegmentedControl } from './SettingsFormControls'
import { SettingsSegmentedControl } from './form-controls/SettingsFormControls'
// The chat choice is this computer's, so the downloaded chat programs are too.
const CHAT_HOST: RuntimeClientTarget = { kind: 'local' }
@@ -1,9 +1,9 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { translate } from '@/i18n/i18n'
import { Label } from '../ui/label'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSegmentedControl, SettingsSwitch } from './SettingsFormControls'
import { getExperimentalSearchEntry } from './experimental-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSegmentedControl, SettingsSwitch } from './form-controls/SettingsFormControls'
import { getExperimentalSearchEntry } from './advanced/experimental-search'
import { canOpenAgentDashboardPopout } from '../dashboard/agent-dashboard-open-mode'
type AgentDashboardExperimentalSettingProps = {
@@ -4,7 +4,7 @@ import type { AgentCatalogEntry } from '@/lib/agent-catalog'
import { AgentIcon } from '@/lib/agent-catalog'
import { cn } from '@/lib/utils'
import { translate } from '@/i18n/i18n'
import { SettingsSubsectionHeader } from './SettingsFormControls'
import { SettingsSubsectionHeader } from './form-controls/SettingsFormControls'
function DefaultAgentPill({
active,
@@ -19,7 +19,7 @@ import {
import { ChatSurfacePreview, TerminalSurfacePreview } from './AgentDefaultSurfacePreviews'
import { AGENT_DEFAULT_SURFACE_SECTION_ID, AGENTS_INSTALLED_SECTION_ID } from './agents-search'
import { Card, CardContent } from '../ui/card'
import { SettingsRow } from './SettingsFormControls'
import { SettingsRow } from './form-controls/SettingsFormControls'
import { Button } from '../ui/button'
import {
agentsKeepingOwnSurface,
@@ -5,7 +5,7 @@ import { cn } from '@/lib/utils'
import { translate } from '@/i18n/i18n'
import { Button } from '../ui/button'
import { AgentCatalogRow, type AgentCatalogRowProps } from './AgentCatalogRow'
import { SettingsBadge, SettingsSubsectionHeader } from './SettingsFormControls'
import { SettingsBadge, SettingsSubsectionHeader } from './form-controls/SettingsFormControls'
import { AGENTS_INSTALLED_SECTION_ID } from './agents-search'
export function AgentDetectionCatalog({
@@ -2,7 +2,7 @@ import type { AgentPermissionMode } from '../../../../shared/tui-agent-permissio
import { translate } from '@/i18n/i18n'
import { Button } from '../ui/button'
import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip'
import { SettingsBadge } from './SettingsFormControls'
import { SettingsBadge } from './form-controls/SettingsFormControls'
import { AgentPermissionModeMenu } from './AgentPermissionModeMenu'
import { agentPermissionModeLabel } from './agent-permission-mode-label'
@@ -2,7 +2,7 @@ import type { GlobalSettings } from '../../../../shared/global-settings-types'
import type { GlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime'
import { normalizeGlobalWindowsRuntimeDefault } from '../../../../shared/project-execution-runtime'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls'
import { SettingsRow, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import { translate } from '@/i18n/i18n'
type AgentRuntimeSegment = GlobalWindowsRuntimeDefault['kind']
@@ -32,7 +32,7 @@ import {
buildAgentAvailabilitySettingsUpdate,
createAgentAvailabilityUpdateQueue
} from './AgentsPane'
import { matchesSettingsSearch } from './settings-search'
import { matchesSettingsSearch } from './search/settings-search'
import { TooltipProvider } from '../ui/tooltip'
import { resolveSettingsHostScope } from './settings-host-scope'
@@ -19,7 +19,7 @@ import {
getAgentWorkspaceTrustDescription,
getAgentWorkspaceTrustTitle
} from './agent-workspace-trust-copy'
import { SettingsSubsectionHeader, SettingsSwitchRow } from './SettingsFormControls'
import { SettingsSubsectionHeader, SettingsSwitchRow } from './form-controls/SettingsFormControls'
import { isPairedWebClientWindow } from '@/lib/desktop-window-chrome'
import { getAgentsPaneSearchEntries } from './agents-search'
import {
@@ -20,8 +20,8 @@ import { Label } from '../ui/label'
import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'
import { Switch } from '../ui/switch'
import { getAutoRenameBranchAdvancedSearchEntries } from './auto-rename-branch-search'
import { SearchableSetting } from './SearchableSetting'
import { matchesSettingsSearch, normalizeSettingsSearchQuery } from './settings-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { matchesSettingsSearch, normalizeSettingsSearchQuery } from './search/settings-search'
import { Trans } from 'react-i18next'
import { i18n, translate } from '@/i18n/i18n'
@@ -3,7 +3,7 @@ import { runtimeTargetEnvironmentId } from '@/runtime/runtime-client-target'
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { getLocalExecutionHostLabel } from '../../../../shared/execution-host'
import type { SettingsHostScope } from './settings-host-scope'
import { SettingsSwitchRow } from './SettingsFormControls'
import { SettingsSwitchRow } from './form-controls/SettingsFormControls'
import {
getCodexHistorySharingDescription,
getCodexHistorySharingTitle,
@@ -11,8 +11,8 @@ import {
getCodexTerminalServerIsolationSearchKeywords,
getCodexTerminalServerIsolationTitle
} from './codex-terminal-server-isolation-copy'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSwitchRow } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSwitchRow } from './form-controls/SettingsFormControls'
type CodexTerminalServerIsolationSettingProps = {
settings: GlobalSettings
@@ -24,10 +24,10 @@ import { useAppStore } from '../../store'
import { CustomAgentCommandField } from './CustomAgentCommandField'
import { Label } from '../ui/label'
import { Switch } from '../ui/switch'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SourceControlAiActionRecipeDefaults } from './SourceControlAiActionRecipeDefaults'
import { matchesSettingsSearch } from './settings-search'
import { getSettingOwnershipSummary } from './setting-ownership'
import { matchesSettingsSearch } from './search/settings-search'
import { getSettingOwnershipSummary } from './page/setting-ownership'
import { translate } from '@/i18n/i18n'
import { HostedReviewCreationDefaults } from './HostedReviewCreationDefaults'
@@ -1,8 +1,8 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { translate } from '@/i18n/i18n'
import { SearchableSetting } from './SearchableSetting'
import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls'
import { matchesSettingsSearch } from './settings-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsRow, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import { matchesSettingsSearch } from './search/settings-search'
type SourceControlCompareBasePolicy = 'repository-default' | 'branch-upstream'
@@ -7,7 +7,7 @@ import { useAppStore } from '../../store'
import { Badge } from '../ui/badge'
import { Button } from '../ui/button'
import type { CursorAccountStatus } from '../../../../shared/rate-limit-types'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { openAppHttpLinkFromAnchor } from '@/lib/app-http-link-open'
const CURSOR_USAGE_DASHBOARD_URL = 'https://cursor.com/dashboard/spending'
@@ -2,9 +2,9 @@ import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { translate } from '@/i18n/i18n'
import { Label } from '../ui/label'
import { EphemeralVmsPane } from './EphemeralVmsPane'
import { getExperimentalSearchEntry } from './experimental-search'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSwitch } from './SettingsFormControls'
import { getExperimentalSearchEntry } from './advanced/experimental-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSwitch } from './form-controls/SettingsFormControls'
type EphemeralVmsExperimentalSettingProps = {
settings: GlobalSettings
@@ -5,7 +5,7 @@ import { Button } from '@/components/ui/button'
import { useAppStore } from '@/store'
import { translate } from '@/i18n/i18n'
import { getUpdateCheckClickOptions, getUpdateCheckHint } from '@/lib/update-check-click-options'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
export function GeneralRemoteServerUpdates(): React.JSX.Element | null {
const entryMap = useAppStore((state) => state.remoteServerUpdates)
@@ -8,9 +8,9 @@ import { Label } from '../ui/label'
import { Switch } from '../ui/switch'
import { useAppStore } from '../../store'
import { getGitPaneSearchEntries } from './git-search'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { BranchPrefixFeedback } from './BranchPrefixFeedback'
import { matchesSettingsSearch } from './settings-search'
import { matchesSettingsSearch } from './search/settings-search'
import { AutoRenameBranchFromWorkSetting } from './AutoRenameBranchFromWorkSetting'
import {
JIRA_ISSUE_KEY_CASING_KEYWORDS,
@@ -29,7 +29,7 @@ import {
} from './keep-local-main-up-to-date-setting'
import { Trans } from 'react-i18next'
import { i18n, translate } from '@/i18n/i18n'
import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls'
import { SettingsRow, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
export { getGitPaneSearchEntries }
@@ -1,6 +1,6 @@
import { useAppStore } from '../../store'
import { SearchableSetting } from './SearchableSetting'
import { matchesSettingsSearch } from './settings-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { matchesSettingsSearch } from './search/settings-search'
import { GitHubRateLimitPanel } from '../github/github-rate-limit-display'
import { GitLabRateLimitPanel } from '../gitlab/gitlab-rate-limit-display'
import { translate } from '@/i18n/i18n'
@@ -7,7 +7,7 @@ import { useAppStore } from '../../store'
import { Badge } from '../ui/badge'
import { Button } from '../ui/button'
import type { GrokAccountStatus } from '../../../../shared/rate-limit-types'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { openAppHttpLinkFromAnchor } from '@/lib/app-http-link-open'
const GROK_CLI_DOCS_URL = 'https://docs.x.ai/build/overview'
@@ -13,7 +13,7 @@ import {
} from '../../../../shared/agent-launch-settings'
import { HostAgentLaunchSettings } from './HostAgentLaunchSettings'
import * as permissionControls from './AgentPermissionChoiceControls'
import { SettingsSegmentedControl } from './SettingsFormControls'
import { SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import type { AgentPermissionChoice } from '../../../../shared/tui-agent-permission-choice'
import { TooltipProvider } from '../ui/tooltip'
import type { AgentPermissionsRenderer } from './AgentLaunchSettingsCatalog'
@@ -1,6 +1,6 @@
import type { SourceControlAiSettings } from '../../../../shared/source-control-ai-types'
import { Label } from '../ui/label'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { translate } from '@/i18n/i18n'
type HostedReviewDefaultKey = keyof NonNullable<SourceControlAiSettings['prCreationDefaults']>
@@ -1,8 +1,8 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import type { JiraIssueKeyCasing } from '../../../../shared/ui-chrome-types'
import { translate } from '@/i18n/i18n'
import { SearchableSetting } from './SearchableSetting'
import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsRow, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
export const JIRA_ISSUE_KEY_CASING_KEYWORDS = [
'jira',
@@ -15,7 +15,7 @@ import { AgentSkillSetupPanel } from './AgentSkillSetupPanel'
import { LinearAgentSkillGuide } from './LinearAgentSkillGuide'
import { LinearAgentSkillNotes } from './LinearAgentSkillNotes'
import { getLinearAgentSkillPaneSearchEntries } from './linear-agent-skill-search'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SkillUsageExamplesSection } from './SkillUsageExamplesSection'
import { LINEAR_INTEGRATION_SECTION_ID } from './task-provider-integration-section-ids'
import { useLinearAgentSkillSetup } from './use-linear-agent-skill-setup'
@@ -3,7 +3,7 @@ import { translate } from '@/i18n/i18n'
import { isWebClientLocation } from '@/lib/web-client-location'
import { cn } from '@/lib/utils'
import { MACHINE_NAME_MAX_LENGTH } from '../../../../shared/machine-name'
import { DebouncedSettingsTextInput } from './DebouncedSettingsTextInput'
import { DebouncedSettingsTextInput } from './form-controls/DebouncedSettingsTextInput'
import { usePublishedMachineName } from './use-published-machine-name'
type MachineNameFieldProps = {
@@ -5,8 +5,8 @@ import type { FeatureInteractionId } from '../../../../shared/feature-interactio
import type { ProviderRateLimits } from '../../../../shared/rate-limit-types'
import { Label } from '../ui/label'
import { MiniMaxIcon } from '../status-bar/icons'
import { SearchableSetting } from './SearchableSetting'
import { DebouncedSettingsTextInput } from './DebouncedSettingsTextInput'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { DebouncedSettingsTextInput } from './form-controls/DebouncedSettingsTextInput'
import { MiniMaxCredentials, miniMaxStorageHelp } from './accounts-pane-minimax-credentials'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import { useMiniMaxCredentials } from './use-minimax-credentials'
@@ -10,8 +10,8 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '.
import { AndroidLogo, IosBrandIcon } from '../mobile/MobileBrandIcons'
import { MobileEmulatorAgentControlRow } from './MobileEmulatorAgentControlRow'
import { MobileEmulatorAvailabilityDetails } from './MobileEmulatorAvailabilityDetails'
import { SearchableSetting } from './SearchableSetting'
import { SettingsRow, SettingsSwitchRow } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsRow, SettingsSwitchRow } from './form-controls/SettingsFormControls'
import { getMobileEmulatorSearchEntries } from './mobile-emulator-search'
import { translate } from '@/i18n/i18n'
import { emulatorErrorText, emulatorMessageText } from '@/lib/emulator-error-copy'
@@ -1,5 +1,5 @@
import { SearchableSetting } from './SearchableSetting'
import { SettingsSwitchRow } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSwitchRow } from './form-controls/SettingsFormControls'
import { MobilePane } from './MobilePane'
import {
getMobileOverviewSearchEntry,
@@ -12,7 +12,7 @@ import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { useAppStore } from '../../store'
import { OrchestrationPane } from './OrchestrationPane'
import { getOrchestrationPaneSearchEntries } from './orchestration-search'
import { matchesSettingsSearch } from './settings-search'
import { matchesSettingsSearch } from './search/settings-search'
const mocks = vi.hoisted(() => ({
panelProps: [] as Record<string, unknown>[],
@@ -12,8 +12,8 @@ import {
useInstalledAgentSkill
} from '@/hooks/useInstalledAgentSkills'
import { useActiveProjectSkillRuntime } from '@/hooks/useActiveProjectSkillRuntime'
import { SearchableSetting } from './SearchableSetting'
import { matchesSettingsSearch } from './settings-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { matchesSettingsSearch } from './search/settings-search'
import { useAppStore } from '../../store'
import { getOrchestrationPaneSearchEntries } from './orchestration-search'
import { AgentSkillSetupPanel } from './AgentSkillSetupPanel'
@@ -23,7 +23,7 @@ import { translate } from '@/i18n/i18n'
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { resolveNestedWorkerMaxDepth } from '../../../../shared/nested-worker-depth'
import { isPairedWebClientWindow } from '@/lib/desktop-window-chrome'
import { NumberField } from './SettingsFormControls'
import { NumberField } from './form-controls/SettingsFormControls'
import {
getNestedWorkerDepthDescription,
getNestedWorkerDepthTitle
@@ -1,9 +1,9 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { translate } from '@/i18n/i18n'
import { Label } from '../ui/label'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSwitch } from './SettingsFormControls'
import { getExperimentalSearchEntry } from './experimental-search'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSwitch } from './form-controls/SettingsFormControls'
import { getExperimentalSearchEntry } from './advanced/experimental-search'
type OrchestrationPanelExperimentalSettingProps = {
settings: GlobalSettings
@@ -1,5 +1,5 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { SettingsSwitchRow } from './SettingsFormControls'
import { SettingsSwitchRow } from './form-controls/SettingsFormControls'
import {
getWorkerAutoReleaseDescription,
getWorkerAutoReleaseTitle
@@ -18,7 +18,7 @@ vi.mock('../plugins/state/plugin-theme-apply', () => ({
vi.mock('../plugins/state/use-plugin-in-use', () => ({ usePluginInUse: () => null }))
vi.mock('../plugins/state/use-plugin-art-palettes', () => ({ usePluginArtPalettes: () => [] }))
vi.mock('./SettingsSection', () => ({
vi.mock('./section-layout/SettingsSection', () => ({
SettingsSection: ({
children,
headerAction
@@ -15,8 +15,8 @@ import { PluginsHeaderActions } from '../plugins/list/PluginSettingsMenu'
import { PluginSettingsOverview } from '../plugins/list/PluginSettingsOverview'
import { PluginsAlphaNotice } from '../plugins/list/PluginsAlphaNotice'
import { PluginsSectionDescription } from '../plugins/list/PluginsSectionDescription'
import { getPluginsSectionPresentation } from './plugins-search'
import { SettingsSection } from './SettingsSection'
import { getPluginsSectionPresentation } from './plugins/plugins-search'
import { SettingsSection } from './section-layout/SettingsSection'
import { usePluginLogs } from '../plugins/state/use-plugin-logs'
import { usePluginMarketplaceLifecycle } from '../plugins/state/use-plugin-marketplace-lifecycle'
import { usePluginPageNavigation } from '../plugins/state/use-plugin-page-navigation'
@@ -8,7 +8,7 @@ import {
import { useState } from 'react'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import { Button } from '../ui/button'
import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls'
import { SettingsRow, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import type { ProjectRuntimeSessionSummary } from './repository/execution/repository-runtime-session-summary'
import { translate } from '@/i18n/i18n'
import { projectRuntimeRepairSentence } from '../../../../shared/project-runtime-repair-message'
@@ -3,7 +3,7 @@ import type { GlobalSettings } from '../../../../shared/global-settings-types'
import type { PublicKnownRuntimeEnvironment } from '../../../../shared/runtime-environments'
import { useAppStore } from '@/store'
import { translate } from '@/i18n/i18n'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { EphemeralVmRuntimesSection } from './EphemeralVmRuntimesSection'
import {
getRuntimeEnvironmentsSearchEntry,
@@ -1,12 +1,15 @@
import { useSettingsStoreModel } from './use-settings-store-model'
import { useSettingsInteractionController } from './use-settings-interaction-controller'
import { useSettingsPageEffects } from './use-settings-page-effects'
import { useSettingsNavigationModel } from './use-settings-navigation-model'
import { useSettingsTerminalModel } from './use-settings-terminal-model'
import { useSettingsRepoScrollEffects } from './use-settings-repo-scroll-effects'
import { buildSettingsViewModel, useSettingsNavigationActions } from './settings-view-model'
import { renderSettingsLoading, renderSettingsPage } from './settings-page-renderer'
import type { LoadedSettingsStoreModel, SettingsRenderContext } from './settings-render-context'
import { useSettingsStoreModel } from './page/use-settings-store-model'
import { useSettingsInteractionController } from './page/use-settings-interaction-controller'
import { useSettingsPageEffects } from './page/use-settings-page-effects'
import { useSettingsNavigationModel } from './navigation/use-settings-navigation-model'
import { useSettingsTerminalModel } from './page/use-settings-terminal-model'
import { useSettingsRepoScrollEffects } from './navigation/use-settings-repo-scroll-effects'
import { buildSettingsViewModel, useSettingsNavigationActions } from './page/settings-view-model'
import { renderSettingsLoading, renderSettingsPage } from './page/settings-page-renderer'
import type {
LoadedSettingsStoreModel,
SettingsRenderContext
} from './page/settings-render-context'
function Settings(): React.JSX.Element {
const model = useSettingsStoreModel()
@@ -4,7 +4,7 @@ import { useOrcaProfileAuthStatusRefresh } from '@/hooks/use-orca-profile-auth-s
import { translate } from '@/i18n/i18n'
import { isWebClientLocation } from '@/lib/web-client-location'
import { useAppStore } from '@/store'
import { SettingsSwitchRow } from './SettingsFormControls'
import { SettingsSwitchRow } from './form-controls/SettingsFormControls'
import { OrcaSignInButton, OrcaSignInWaitNotice } from '../OrcaSignInProgress'
type HowToStep = { key: string; title: string; description: string }
@@ -24,9 +24,9 @@ import {
summarizeReposOverridingActionRecipe,
type SourceControlActionRecipeOverrideSummary
} from '../../../../shared/source-control-launch-agent-selection'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { getRepositorySourceControlAiActionRecipeSectionId } from './repository/repository-settings-targets'
import { matchesSettingsSearch } from './settings-search'
import { matchesSettingsSearch } from './search/settings-search'
import { SourceControlActionRecipeRow } from './SourceControlActionRecipeRow'
import { SourceControlActionRepoOverrideNote } from './SourceControlActionRepoOverrideNote'
import { retireActionLaunchPreferences } from './source-control-ai-action-recipe-draft'
@@ -4,7 +4,7 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/component
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import { cn } from '@/lib/utils'
import { SettingsSwitch } from './SettingsFormControls'
import { SettingsSwitch } from './form-controls/SettingsFormControls'
import type { EditingTarget } from './ssh-target-draft'
import { translate } from '@/i18n/i18n'
@@ -3,7 +3,7 @@ import { act, useState, type ReactElement } from 'react'
import { createRoot, type Root } from 'react-dom/client'
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import type { SshTarget } from '../../../../shared/ssh-types'
import { SettingsContentScrollElementProvider } from './settings-content-scroll-element'
import { SettingsContentScrollElementProvider } from './page/settings-content-scroll-element'
import { SshTargetList } from './SshTargetList'
vi.mock('./SshTargetCard', () => ({
@@ -2,7 +2,7 @@ import type { SshConnectionState, SshTarget } from '../../../../shared/ssh-types
import { translate } from '@/i18n/i18n'
import { Checkbox } from '../ui/checkbox'
import { VirtualizedList } from '../virtualized-list'
import { useSettingsContentScrollElement } from './settings-content-scroll-element'
import { useSettingsContentScrollElement } from './page/settings-content-scroll-element'
import type { SshTargetBusyAction } from './ssh-target-action-state'
import {
groupSshTargetsBySource,
@@ -1,5 +1,5 @@
import type { ReactNode } from 'react'
import { StepBadge, type StepState } from './SetupStepBadge'
import { StepBadge, type StepState } from './setup-guide/SetupStepBadge'
import { cn } from '@/lib/utils'
type TaskSourceStepRowProps = {
@@ -11,8 +11,8 @@ import { JiraIcon } from '@/components/icons/JiraIcon'
import { LinearIcon } from '@/components/icons/LinearIcon'
import { Button } from '@/components/ui/button'
import { useAppStore } from '@/store'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSubsectionHeader } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSubsectionHeader } from './form-controls/SettingsFormControls'
import { CodeHostSetupSteps, JiraSetupSteps } from './TaskSourceSimpleSetup'
import { TaskSourceLinearSetup } from './TaskSourceLinearSetup'
import { TaskSourceProviderCard } from './TaskSourceProviderCard'
@@ -6,7 +6,7 @@ import { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from '.
import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'
import { cn } from '@/lib/utils'
import { FileTypeIcon, FolderIcon } from '@/components/FileTypeIcon'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import {
getWorktreeSymlinkPathFilterState,
type WorktreeSymlinkPathSuggestion
@@ -1,8 +1,8 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { translate } from '@/i18n/i18n'
import { Label } from '../ui/label'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSwitch } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsSwitch } from './form-controls/SettingsFormControls'
import { getWslHostsExperimentalSearchEntry } from './wsl-hosts-experimental-search'
import { useWslHostServerFilesMissing } from '../sidebar/use-wsl-hosts-enabled'
import { getWslHostServerFilesMissingLabel } from '../sidebar/wsl-host-row-status'
@@ -24,7 +24,7 @@ vi.mock('../onboarding/OnboardingInlineCommandTerminal', () => ({
</div>
)
}))
vi.mock('./SearchableSetting', () => ({
vi.mock('./section-layout/SearchableSetting', () => ({
SearchableSetting: ({ children }: { children: React.ReactNode }) => <div>{children}</div>
}))
@@ -2,7 +2,7 @@ import { lazy, Suspense, useState } from 'react'
import { translate } from '@/i18n/i18n'
import { useAppStore } from '@/store'
import { Button } from '../ui/button'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
const OnboardingInlineCommandTerminal = lazy(() =>
import('../onboarding/OnboardingInlineCommandTerminal').then((module) => ({
@@ -15,7 +15,7 @@ import { Button } from '../ui/button'
import { Input } from '../ui/input'
import { Label } from '../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { collectZcodeUsageWindows, ZcodeUsageWindowView } from './zcode-plan-usage-windows'
import { useZcodePlanCredentials } from './use-zcode-plan-credentials'
import { ZcodeCliSetupSection } from './ZcodeCliSetupSection'
@@ -4,8 +4,8 @@ import { afterEach, beforeEach, expect, vi, type Mock } from 'vitest'
import { getDefaultSettings } from '../../../../../shared/constants'
import type { GlobalSettings } from '../../../../../shared/global-settings-types'
import { useAppStore } from '../../../store'
import type { SettingsStoreModel } from '../use-settings-store-model'
import type { SettingsInteractionModel } from '../use-settings-interaction-controller'
import type { SettingsStoreModel } from '../page/use-settings-store-model'
import type { SettingsInteractionModel } from '../page/use-settings-interaction-controller'
import { normalizeSourceControlAiSettings } from '../../../../../shared/source-control-ai'
import {
agentLaunchSettingsMutationUpdates,
@@ -1,6 +1,6 @@
import { translate } from '@/i18n/i18n'
import { createLocalizedCatalog } from '@/i18n/localized-catalog'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from './search/settings-search-keywords'
export const getAccountsClaudeSearchEntries = createLocalizedCatalog(() => [
{
@@ -6,7 +6,7 @@ import { Button } from '../ui/button'
import { ButtonGroup } from '../ui/button-group'
import { Label } from '../ui/label'
import { ClaudeIcon } from '../status-bar/icons'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { ClaudeRunningSessionSwitchSetting } from './claude-running-session-switch-setting'
import {
getProviderAccountRuntime,
@@ -6,7 +6,7 @@ import { Button } from '../ui/button'
import { Label } from '../ui/label'
import { OpenAIIcon } from '../status-bar/icons'
import { CodexLoginLinkNotice } from './CodexLoginLinkNotice'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { getAccountsCodexSearchEntries } from './accounts-search'
import { getCodexSystemDefaultSubtitle } from './accounts-pane-runtime'
import type { AccountsPaneSectionModel } from './accounts-pane-types'
@@ -1,7 +1,7 @@
import { toast } from 'sonner'
import { translate } from '@/i18n/i18n'
import { SearchableSetting } from './SearchableSetting'
import { SettingsRow, SettingsSegmentedControl } from './SettingsFormControls'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { SettingsRow, SettingsSegmentedControl } from './form-controls/SettingsFormControls'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import { getHostRuntimeLabel } from './accounts-pane-runtime'
import { WSL_DEFAULT_DISTRO_KEY } from './provider-account-visibility'
@@ -7,7 +7,7 @@ import { Button } from '../ui/button'
import { Input } from '../ui/input'
import { Label } from '../ui/label'
import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import { UnsealedCredentialNotice } from './UnsealedCredentialNotice'
import type { ProviderRateLimits } from '../../../../shared/rate-limit-types'
import type { MiniMaxCredentialsModel } from './use-minimax-credentials'
@@ -5,7 +5,7 @@ import { Badge } from '../ui/badge'
import { Button } from '../ui/button'
import { Input } from '../ui/input'
import { Label } from '../ui/label'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
type CredentialStatus = boolean | 'loading' | 'unavailable'
@@ -3,10 +3,10 @@ import { Button } from '../ui/button'
import { Label } from '../ui/label'
import { Switch } from '../ui/switch'
import { GeminiIcon, OpenCodeGoIcon } from '../status-bar/icons'
import { SearchableSetting } from './SearchableSetting'
import { SearchableSetting } from './section-layout/SearchableSetting'
import type { AccountsPaneSectionModel } from './accounts-pane-types'
import { OpenCodeGoCredentials } from './accounts-pane-opencode-credentials'
import { DebouncedSettingsTextInput } from './DebouncedSettingsTextInput'
import { DebouncedSettingsTextInput } from './form-controls/DebouncedSettingsTextInput'
export function renderGeminiAccountsSection(model: AccountsPaneSectionModel): React.JSX.Element {
const { localAccountRuntimeSentenceLabel, recordFeatureInteraction, settings, updateSettings } =
@@ -1,6 +1,6 @@
import type { SettingsSearchEntry } from './settings-search'
import type { SettingsSearchEntry } from './search/settings-search'
import { translate } from '@/i18n/i18n'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from './search/settings-search-keywords'
import { createLocalizedCatalog } from '@/i18n/localized-catalog'
import { getAccountsClaudeSearchEntries } from './accounts-claude-search'
@@ -1,7 +1,7 @@
import type { SettingsSearchEntry } from './settings-search'
import type { SettingsSearchEntry } from './search/settings-search'
import { createLocalizedCatalog } from '@/i18n/localized-catalog'
import { translate } from '@/i18n/i18n'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from './search/settings-search-keywords'
export const getAdvancedNetworkSearchEntries = createLocalizedCatalog((): SettingsSearchEntry[] => [
{
@@ -1,10 +1,10 @@
import { renderToStaticMarkup } from 'react-dom/server'
import { describe, expect, it, vi } from 'vitest'
import { getDefaultSettings } from '../../../../shared/constants'
import { getDefaultSettings } from '../../../../../shared/constants'
import { AdvancedPane } from './AdvancedPane'
import { getAdvancedSearchEntry } from './advanced-search'
vi.mock('../../store', () => ({
vi.mock('../../../store/index', () => ({
useAppStore: (selector: (state: { settingsSearchQuery: string }) => unknown) =>
selector({ settingsSearchQuery: '' })
}))
@@ -1,18 +1,16 @@
import { useRef, useState } from 'react'
import { Info, Loader2, RotateCw } from 'lucide-react'
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import type { GlobalSettings } from '../../../../../shared/global-settings-types'
import { useMountedRef } from '@/hooks/useMountedRef'
import { Button } from '../ui/button'
import { Label } from '../ui/label'
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip'
import { AdvancedNetworkSettingsSection } from './AdvancedNetworkSettingsSection'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSubsectionHeader, SettingsSwitch } from './SettingsFormControls'
import { getAdvancedPaneSearchEntries, getAdvancedSearchEntry } from './advanced-search'
import { Button } from '../../ui/button'
import { Label } from '../../ui/label'
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../ui/tooltip'
import { AdvancedNetworkSettingsSection } from '../AdvancedNetworkSettingsSection'
import { SearchableSetting } from '../section-layout/SearchableSetting'
import { SettingsSubsectionHeader, SettingsSwitch } from '../form-controls/SettingsFormControls'
import { getAdvancedSearchEntry } from './advanced-search'
import { translate } from '@/i18n/i18n'
export { getAdvancedPaneSearchEntries }
type AdvancedPaneProps = {
settings: GlobalSettings
updateSettings: (updates: Partial<GlobalSettings>) => void
@@ -1,15 +1,15 @@
import { toast } from 'sonner'
import { Bell, Info, OctagonX, Sparkles, Trash2 } from 'lucide-react'
import { Button } from '../ui/button'
import { Badge } from '../ui/badge'
import { SettingsSubsectionHeader } from './SettingsFormControls'
import { showDeleteWorktreeFailureToast } from '../sidebar/delete-worktree-failure-toast'
import { showLocalBaseRefUpdateSuggestionToast } from '../sidebar/local-base-ref-suggestion-toast'
import { Button } from '../../ui/button'
import { Badge } from '../../ui/badge'
import { SettingsSubsectionHeader } from '../form-controls/SettingsFormControls'
import { showDeleteWorktreeFailureToast } from '../../sidebar/delete-worktree-failure-toast'
import { showLocalBaseRefUpdateSuggestionToast } from '../../sidebar/local-base-ref-suggestion-toast'
import { useOrcaProfileAuthStatusRefresh } from '@/hooks/use-orca-profile-auth-status-refresh'
import { translate } from '@/i18n/i18n'
import { useAppStore } from '@/store'
import { useAppStore } from '@/store/index'
import type { AppState } from '@/store/types'
import { OrcaSignInButton, OrcaSignInWaitNotice } from '../OrcaSignInProgress'
import { OrcaSignInButton, OrcaSignInWaitNotice } from '../../OrcaSignInProgress'
const LONG_WORKSPACE_NAME = 'feature/dev-toast-layout-with-a-long-workspace-name'
const DEV_TOAST_DESCRIPTION =
@@ -1,5 +1,5 @@
import { defineFixture } from '../../component-fixtures/component-fixture'
import { getDefaultSettings } from '../../../../shared/constants'
import { defineFixture } from '../../../component-fixtures/component-fixture'
import { getDefaultSettings } from '../../../../../shared/constants'
import { ExperimentalPane } from './ExperimentalPane'
const settings = {
@@ -1,27 +1,25 @@
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import { Label } from '../ui/label'
import { Switch } from '../ui/switch'
import { useAppStore } from '../../store'
import { SearchableSetting } from './SearchableSetting'
import { matchesSettingsSearch } from './settings-search'
import { getExperimentalPaneSearchEntries, getExperimentalSearchEntry } from './experimental-search'
import type { GlobalSettings } from '../../../../../shared/global-settings-types'
import { Label } from '../../ui/label'
import { Switch } from '../../ui/switch'
import { useAppStore } from '../../../store/index'
import { SearchableSetting } from '../section-layout/SearchableSetting'
import { matchesSettingsSearch } from '../search/settings-search'
import { getExperimentalSearchEntry } from './experimental-search'
import { HiddenExperimentalGroup } from './HiddenExperimentalGroup'
import { NumberField, SettingsSwitch } from './SettingsFormControls'
import { NumberField, SettingsSwitch } from '../form-controls/SettingsFormControls'
import { translate } from '@/i18n/i18n'
import { AgentDashboardExperimentalSetting } from './AgentDashboardExperimentalSetting'
import { EphemeralVmsExperimentalSetting } from './EphemeralVmsExperimentalSetting'
import { BrowserExtensionsExperimentalSetting } from './BrowserExtensionsExperimentalSetting'
import { OrchestrationPanelExperimentalSetting } from './OrchestrationPanelExperimentalSetting'
import { WslHostsExperimentalSetting } from './WslHostsExperimentalSetting'
import { wslHostsAvailable } from '../sidebar/use-wsl-hosts-enabled'
import { AgentDashboardExperimentalSetting } from '../AgentDashboardExperimentalSetting'
import { EphemeralVmsExperimentalSetting } from '../EphemeralVmsExperimentalSetting'
import { BrowserExtensionsExperimentalSetting } from '../browser/extensions/BrowserExtensionsExperimentalSetting'
import { OrchestrationPanelExperimentalSetting } from '../OrchestrationPanelExperimentalSetting'
import { WslHostsExperimentalSetting } from '../WslHostsExperimentalSetting'
import { wslHostsAvailable } from '../../sidebar/use-wsl-hosts-enabled'
import {
MAX_AGENT_HIBERNATION_IDLE_MS,
MIN_AGENT_HIBERNATION_IDLE_MS,
getEffectiveAgentHibernationIdleMs
} from '@/lib/agent-hibernation-planner'
export { getExperimentalPaneSearchEntries }
const MS_PER_MINUTE = 60 * 1000
type ExperimentalPaneProps = {
@@ -1,10 +1,10 @@
import { useState } from 'react'
import { Label } from '../ui/label'
import { Switch } from '../ui/switch'
import { Label } from '../../ui/label'
import { Switch } from '../../ui/switch'
import {
isTerminalRenderDesyncSentinelArmed,
setTerminalRenderDesyncSentinelArmed
} from '../terminal-pane/terminal-render-desync-trigger'
} from '../../terminal-pane/terminal-render-desync-trigger'
import { translate } from '@/i18n/i18n'
import { getShortcutPlatform } from '@/lib/shortcut-platform'
@@ -1,8 +1,8 @@
import type { SettingsSearchEntry } from './settings-search'
import { getAdvancedNetworkSearchEntries } from './advanced-network-search'
import type { SettingsSearchEntry } from '../search/settings-search'
import { getAdvancedNetworkSearchEntries } from '../advanced-network-search'
import { createLocalizedCatalog } from '@/i18n/localized-catalog'
import { translate } from '@/i18n/i18n'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from '../search/settings-search-keywords'
export const getAdvancedPaneSearchEntries = createLocalizedCatalog((): SettingsSearchEntry[] => [
...getAdvancedNetworkSearchEntries(),
@@ -1,12 +1,12 @@
import type { SettingsSearchEntry } from './settings-search'
import type { SettingsSearchEntry } from '../search/settings-search'
import { createLocalizedCatalog } from '@/i18n/localized-catalog'
import { translate } from '@/i18n/i18n'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from '../search/settings-search-keywords'
import { getNewWorktreeCardStyleSearchEntry } from './new-worktree-card-style-search-entry'
import { getEphemeralVmsSearchEntry } from './ephemeral-vms-search'
import { getBrowserExtensionsExperimentalSearchEntry } from './browser-extensions-experimental-search'
import { getWslHostsExperimentalSearchEntry } from './wsl-hosts-experimental-search'
import { getOrchestrationPanelExperimentalSearchEntry } from './orchestration-panel-experimental-search'
import { getEphemeralVmsSearchEntry } from '../ephemeral-vms-search'
import { getBrowserExtensionsExperimentalSearchEntry } from '../browser/extensions/browser-extensions-experimental-search'
import { getWslHostsExperimentalSearchEntry } from '../wsl-hosts-experimental-search'
import { getOrchestrationPanelExperimentalSearchEntry } from '../orchestration-panel-experimental-search'
export const getExperimentalPaneSearchEntries = createLocalizedCatalog(
(): SettingsSearchEntry[] => [
@@ -1,6 +1,6 @@
import type { SettingsSearchEntry } from './settings-search'
import type { SettingsSearchEntry } from '../search/settings-search'
import { translate } from '@/i18n/i18n'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from '../search/settings-search-keywords'
export function getNewWorktreeCardStyleSearchEntry(): SettingsSearchEntry {
return {
@@ -1,6 +1,6 @@
import { translate } from '@/i18n/i18n'
import type { ComputerAwakeMode } from '../../../../shared/computer-awake-mode'
import { searchKeywords } from './settings-search-keywords'
import { searchKeywords } from './search/settings-search-keywords'
const AGENT_AWAKE_TITLE_KEY = 'auto.components.settings.agent-awake-copy.modeTitle'
const AGENT_AWAKE_DESCRIPTION_WINDOWS_KEY =
@@ -1,5 +1,5 @@
import { translate } from '@/i18n/i18n'
import { translateSearchKeyword } from './settings-search-keywords'
import { translateSearchKeyword } from './search/settings-search-keywords'
import { createLocalizedCatalog } from '@/i18n/localized-catalog'
export const getAgentCacheTimerSearchEntries = createLocalizedCatalog(() => [
@@ -1,5 +1,5 @@
import { translate } from '@/i18n/i18n'
import { searchKeywords } from './settings-search-keywords'
import { searchKeywords } from './search/settings-search-keywords'
const AGENT_GENERATED_TAB_TITLES_TITLE_KEY =
'auto.components.settings.agent-generated-tab-title-copy.19ad21615a'
@@ -1,5 +1,5 @@
import { translate } from '@/i18n/i18n'
import { searchKeywords } from './settings-search-keywords'
import { searchKeywords } from './search/settings-search-keywords'
const AGENT_STATUS_HOOKS_TITLE_KEY = 'auto.components.settings.agent-status-hooks-copy.7707c15abb'
const AGENT_STATUS_HOOKS_DESCRIPTION_KEY =

Some files were not shown because too many files have changed in this diff Show More