diff --git a/apps/desktop/src/app/capabilities/connectors/connector-dialog.tsx b/apps/desktop/src/app/capabilities/connectors/connector-dialog.tsx
index 2b3aad591c..f91f9ca2b9 100644
--- a/apps/desktop/src/app/capabilities/connectors/connector-dialog.tsx
+++ b/apps/desktop/src/app/capabilities/connectors/connector-dialog.tsx
@@ -415,4 +415,3 @@ function OrgNote({ count, onOpenAdmin }: { count: number; onOpenAdmin?: () => vo
)
}
-
diff --git a/apps/desktop/src/app/capabilities/connectors/hosted-dialog.tsx b/apps/desktop/src/app/capabilities/connectors/hosted-dialog.tsx
index 5caa976028..ad4249cc0a 100644
--- a/apps/desktop/src/app/capabilities/connectors/hosted-dialog.tsx
+++ b/apps/desktop/src/app/capabilities/connectors/hosted-dialog.tsx
@@ -98,7 +98,9 @@ export function HostedConnectorDialog({
return (
: undefined}
+ advanced={
+ installed ? : undefined
+ }
card={card}
connectElement={element}
cost={installed ? localCost(controller, serverName) : undefined}
diff --git a/apps/desktop/src/app/capabilities/connectors/local-server-control.tsx b/apps/desktop/src/app/capabilities/connectors/local-server-control.tsx
index c63ae6597b..3740e8d607 100644
--- a/apps/desktop/src/app/capabilities/connectors/local-server-control.tsx
+++ b/apps/desktop/src/app/capabilities/connectors/local-server-control.tsx
@@ -5,7 +5,6 @@ import { Input } from '@/components/ui/input'
import type { McpCatalogEntry } from '@/hermes'
import { useI18n } from '@/i18n'
-
export type InstallField = McpCatalogEntry['required_env'][number]
export function LocalInstall({
diff --git a/apps/desktop/src/app/capabilities/connectors/ways-section.tsx b/apps/desktop/src/app/capabilities/connectors/ways-section.tsx
index 1bbaf3f901..9fe45b6fee 100644
--- a/apps/desktop/src/app/capabilities/connectors/ways-section.tsx
+++ b/apps/desktop/src/app/capabilities/connectors/ways-section.tsx
@@ -124,7 +124,9 @@ function HostedWay({
return (
- {way.state === 'available' ? copy.dialog.wayNotConnected(name) : (reason ?? copy.card.state[hostedStateWord(way)])}
+ {way.state === 'available'
+ ? copy.dialog.wayNotConnected(name)
+ : (reason ?? copy.card.state[hostedStateWord(way)])}
{way.state === 'available' && onConnect ? (
diff --git a/apps/desktop/src/app/settings/appearance-settings.tsx b/apps/desktop/src/app/settings/appearance-settings.tsx
index bbfcf8a5f7..25ff3a8396 100644
--- a/apps/desktop/src/app/settings/appearance-settings.tsx
+++ b/apps/desktop/src/app/settings/appearance-settings.tsx
@@ -514,7 +514,10 @@ export function AppearanceSettings({ subpage }: AppearanceSettingsProps = {}) {
{ id: 'detailed', label: a.sessionDensityDetailed }
] as const satisfies readonly { id: SessionListDensity; label: string }[]
- const interfaceModeOptions = INTERFACE_MODES.map(id => ({ id, label: t.interfaceMode[id].label })) satisfies readonly {
+ const interfaceModeOptions = INTERFACE_MODES.map(id => ({
+ id,
+ label: t.interfaceMode[id].label
+ })) satisfies readonly {
id: InterfaceMode
label: string
}[]
diff --git a/apps/desktop/src/components/pane-shell/tree/renderer/tree-split.tsx b/apps/desktop/src/components/pane-shell/tree/renderer/tree-split.tsx
index 3ff02bf005..8b0d8124df 100644
--- a/apps/desktop/src/components/pane-shell/tree/renderer/tree-split.tsx
+++ b/apps/desktop/src/components/pane-shell/tree/renderer/tree-split.tsx
@@ -526,7 +526,19 @@ export function TreeSplit({
},
// trackCtx is derived state rebuilt per render; the drag captures it once.
// eslint-disable-next-line react-hooks/exhaustive-deps
- [axis, editMode, revealsHidden, horizontal, node.children, node.id, node.weights, hiddenPanes, narrow, overrides, panes]
+ [
+ axis,
+ editMode,
+ revealsHidden,
+ horizontal,
+ node.children,
+ node.id,
+ node.weights,
+ hiddenPanes,
+ narrow,
+ overrides,
+ panes
+ ]
)
// Double-click a sash: every neighbor returns to its DEFAULT size.
@@ -603,7 +615,19 @@ export function TreeSplit({
setTreeSplitWeights(node.id, !preset && !pinned ? weights.map(() => 1) : weights)
},
// eslint-disable-next-line react-hooks/exhaustive-deps
- [axis, editMode, revealsHidden, horizontal, node.children, node.id, node.weights, hiddenPanes, narrow, overrides, panes]
+ [
+ axis,
+ editMode,
+ revealsHidden,
+ horizontal,
+ node.children,
+ node.id,
+ node.weights,
+ hiddenPanes,
+ narrow,
+ overrides,
+ panes
+ ]
)
// A run of ONLY fixed tracks can't fill the container (grow-0 all around
diff --git a/apps/desktop/src/components/pane-shell/tree/resting-presets.test.ts b/apps/desktop/src/components/pane-shell/tree/resting-presets.test.ts
index 9a57b7b5fe..29c3ff2c01 100644
--- a/apps/desktop/src/components/pane-shell/tree/resting-presets.test.ts
+++ b/apps/desktop/src/components/pane-shell/tree/resting-presets.test.ts
@@ -4,7 +4,13 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest'
import { registry } from '@/contrib/registry'
import { allPaneIds, findGroupOfPane, group, split } from './model'
-import { applyLayoutPreset, deleteUserPreset, layoutPresetTier, registerBundledPresets, saveCurrentLayoutAs } from './presets'
+import {
+ applyLayoutPreset,
+ deleteUserPreset,
+ layoutPresetTier,
+ registerBundledPresets,
+ saveCurrentLayoutAs
+} from './presets'
import { $dismissedPanes, $hiddenTreePanes, $layoutTree, bindPaneVisibility, bindToolPaneCollapse } from './store'
// Basic used to be `sessions | workspace`, and picking it produced Focus:
@@ -47,9 +53,24 @@ describe('resting presets', () => {
const $files = atom(true)
const $review = atom(true)
- bindToolPaneCollapse('terminal', $terminal, () => $terminal.set(false), () => $terminal.set(true))
- bindPaneVisibility('files', $files, () => $files.set(false), () => $files.set(true))
- bindPaneVisibility('review', $review, () => $review.set(false), () => $review.set(true))
+ bindToolPaneCollapse(
+ 'terminal',
+ $terminal,
+ () => $terminal.set(false),
+ () => $terminal.set(true)
+ )
+ bindPaneVisibility(
+ 'files',
+ $files,
+ () => $files.set(false),
+ () => $files.set(true)
+ )
+ bindPaneVisibility(
+ 'review',
+ $review,
+ () => $review.set(false),
+ () => $review.set(true)
+ )
disposers.push(
registerBundledPresets([
@@ -83,10 +104,22 @@ describe('resting presets', () => {
const $terminal = atom(false)
const $files = atom(true)
- bindToolPaneCollapse('terminal', $terminal, () => $terminal.set(false), () => $terminal.set(true))
- bindPaneVisibility('files', $files, () => $files.set(false), () => $files.set(true))
+ bindToolPaneCollapse(
+ 'terminal',
+ $terminal,
+ () => $terminal.set(false),
+ () => $terminal.set(true)
+ )
+ bindPaneVisibility(
+ 'files',
+ $files,
+ () => $files.set(false),
+ () => $files.set(true)
+ )
- disposers.push(registerBundledPresets([{ id: 'seed', title: 'Seed', order: 0, tree: ARRANGEMENT, resting: ['terminal'] }]))
+ disposers.push(
+ registerBundledPresets([{ id: 'seed', title: 'Seed', order: 0, tree: ARRANGEMENT, resting: ['terminal'] }])
+ )
applyLayoutPreset('seed', ARRANGEMENT)
saveCurrentLayoutAs('Mine')
@@ -104,7 +137,12 @@ describe('resting presets', () => {
it('a reveal on apply never steals the tab the preset put first', () => {
const $terminal = atom(false)
- bindToolPaneCollapse('terminal', $terminal, () => $terminal.set(false), () => $terminal.set(true))
+ bindToolPaneCollapse(
+ 'terminal',
+ $terminal,
+ () => $terminal.set(false),
+ () => $terminal.set(true)
+ )
// Focus: the terminal is a tab BEHIND the chat, and opening it on apply
// used to front it over the chat.
diff --git a/apps/desktop/src/i18n/en.ts b/apps/desktop/src/i18n/en.ts
index dbcc6c0226..f1ea300b63 100644
--- a/apps/desktop/src/i18n/en.ts
+++ b/apps/desktop/src/i18n/en.ts
@@ -131,7 +131,8 @@ export const en: Translations = {
writeFailed: 'That change was not saved.',
refreshFailed: 'The tool list was not refreshed.',
disconnectNoAccount: 'Hermes has no account to disconnect here. Refresh the page and try again.',
- disconnectRefused: 'Nous could not remove this sign-in right now. Turn the app off with the switch instead, or try again later.'
+ disconnectRefused:
+ 'Nous could not remove this sign-in right now. Turn the app off with the switch instead, or try again later.'
},
add: {
diff --git a/apps/desktop/src/store/interface-mode.test.ts b/apps/desktop/src/store/interface-mode.test.ts
index b0518c0134..3615e4ae8e 100644
--- a/apps/desktop/src/store/interface-mode.test.ts
+++ b/apps/desktop/src/store/interface-mode.test.ts
@@ -147,7 +147,11 @@ describe('tiers', () => {
it('shows untagged items everywhere and a tiered item only in its mode', async () => {
const { shownInMode, $showsAdvancedChrome, setInterfaceMode } = await loadStore()
- const items = [{ id: 'settings' }, { id: 'hud', tier: 'advanced' as const }, { id: 'side', tier: 'simple' as const }]
+ const items = [
+ { id: 'settings' },
+ { id: 'hud', tier: 'advanced' as const },
+ { id: 'side', tier: 'simple' as const }
+ ]
expect(items.filter(shownInMode('advanced')).map(item => item.id)).toEqual(['settings', 'hud'])
expect(items.filter(shownInMode('simple')).map(item => item.id)).toEqual(['settings', 'side'])