fmt(js): npm run fix on merge (#119328)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
hermes-seaeye[bot]
2026-09-22 17:16:27 +00:00
committed by GitHub
parent a53b42ddea
commit f78ba6a700
9 changed files with 89 additions and 17 deletions

View File

@@ -415,4 +415,3 @@ function OrgNote({ count, onOpenAdmin }: { count: number; onOpenAdmin?: () => vo
</div>
)
}

View File

@@ -98,7 +98,9 @@ export function HostedConnectorDialog({
return (
<ConnectorDialog
advanced={installed ? <LocalAdvanced controller={controller} name={serverName} onRemove={onRemoveServer} /> : undefined}
advanced={
installed ? <LocalAdvanced controller={controller} name={serverName} onRemove={onRemoveServer} /> : undefined
}
card={card}
connectElement={element}
cost={installed ? localCost(controller, serverName) : undefined}

View File

@@ -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({

View File

@@ -124,7 +124,9 @@ function HostedWay({
return (
<div className="flex flex-wrap items-center gap-2">
<span className="min-w-0 flex-1 text-[0.7rem] text-(--ui-text-tertiary)">
{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)])}
</span>
{way.state === 'available' && onConnect ? (

View File

@@ -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
}[]

View File

@@ -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

View File

@@ -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.

View File

@@ -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: {

View File

@@ -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'])