Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
87 lines
4.5 KiB
TypeScript
87 lines
4.5 KiB
TypeScript
import { terminalPaneSessionsEqual } from '../domain/terminalPaneSessionsEqual';
|
|
|
|
export const terminalLayerAreEqual = (
|
|
prev: Record<string, unknown>,
|
|
next: Record<string, unknown>,
|
|
): boolean => (
|
|
prev.hosts === next.hosts &&
|
|
prev.customGroups === next.customGroups &&
|
|
prev.groupConfigs === next.groupConfigs &&
|
|
prev.proxyProfiles === next.proxyProfiles &&
|
|
prev.portForwardingRules === next.portForwardingRules &&
|
|
prev.keys === next.keys &&
|
|
prev.snippets === next.snippets &&
|
|
prev.snippetPackages === next.snippetPackages &&
|
|
// notes / noteGroups / updateNotes / updateNoteGroups intentionally omitted —
|
|
// Notes + AI panels read notesStore.
|
|
prev.openNoteRequest === next.openNoteRequest &&
|
|
prev.onOpenVaultNoteFromChat === next.onOpenVaultNoteFromChat &&
|
|
prev.onOpenVaultHostFromChat === next.onOpenVaultHostFromChat &&
|
|
prev.onOpenVaultSectionFromChat === next.onOpenVaultSectionFromChat &&
|
|
prev.onOpenVaultSnippetFromChat === next.onOpenVaultSnippetFromChat &&
|
|
// Ignore TopTabs-only presentation fields (dynamicTitle / codingCliProviderId).
|
|
terminalPaneSessionsEqual(
|
|
prev.sessions as never,
|
|
next.sessions as never,
|
|
) &&
|
|
prev.workspaces === next.workspaces &&
|
|
prev.knownHosts === next.knownHosts &&
|
|
prev.draggingSessionId === next.draggingSessionId &&
|
|
prev.terminalTheme === next.terminalTheme &&
|
|
prev.terminalThemeId === next.terminalThemeId &&
|
|
prev.followAppTerminalTheme === next.followAppTerminalTheme &&
|
|
prev.pickTerminalTheme === next.pickTerminalTheme &&
|
|
prev.resolveSessionAppearance === next.resolveSessionAppearance &&
|
|
// accentMode / customAccent intentionally omitted — Terminal reads
|
|
// appearanceChromeStore so accent drag does not rebuild TerminalLayer.
|
|
prev.terminalSettings === next.terminalSettings &&
|
|
prev.fontSize === next.fontSize &&
|
|
prev.terminalFontFamilyId === next.terminalFontFamilyId &&
|
|
prev.sessionLogsEnabled === next.sessionLogsEnabled &&
|
|
prev.sessionLogsDir === next.sessionLogsDir &&
|
|
prev.sessionLogsFormat === next.sessionLogsFormat &&
|
|
prev.sessionLogsTimestampsEnabled === next.sessionLogsTimestampsEnabled &&
|
|
prev.hotkeyScheme === next.hotkeyScheme &&
|
|
prev.disableTerminalFontZoom === next.disableTerminalFontZoom &&
|
|
prev.restoreTerminalCwd === next.restoreTerminalCwd &&
|
|
prev.keyBindings === next.keyBindings &&
|
|
prev.sftpDefaultViewMode === next.sftpDefaultViewMode &&
|
|
prev.sftpDoubleClickBehavior === next.sftpDoubleClickBehavior &&
|
|
prev.sftpAutoSync === next.sftpAutoSync &&
|
|
prev.sftpShowHiddenFiles === next.sftpShowHiddenFiles &&
|
|
prev.sftpUseCompressedUpload === next.sftpUseCompressedUpload &&
|
|
prev.sftpAutoOpenSidebar === next.sftpAutoOpenSidebar &&
|
|
prev.terminalSidePanelAutoOpen === next.terminalSidePanelAutoOpen &&
|
|
prev.terminalSidePanelAutoOpenTab === next.terminalSidePanelAutoOpenTab &&
|
|
prev.sftpFollowTerminalCwd === next.sftpFollowTerminalCwd &&
|
|
prev.setSftpFollowTerminalCwd === next.setSftpFollowTerminalCwd &&
|
|
prev.editorWordWrap === next.editorWordWrap &&
|
|
prev.sshDebugLogsEnabled === next.sshDebugLogsEnabled &&
|
|
prev.showHostTreeSidebar === next.showHostTreeSidebar &&
|
|
prev.setEditorWordWrap === next.setEditorWordWrap &&
|
|
prev.onHotkeyAction === next.onHotkeyAction &&
|
|
prev.onUpdateSessionRestoreCwd === next.onUpdateSessionRestoreCwd &&
|
|
prev.onUpdateHost === next.onUpdateHost &&
|
|
prev.onAddKnownHost === next.onAddKnownHost &&
|
|
prev.onDeleteShellHistoryEntry === next.onDeleteShellHistoryEntry &&
|
|
prev.onToggleWorkspaceViewMode === next.onToggleWorkspaceViewMode &&
|
|
prev.onSetWorkspaceFocusedSession === next.onSetWorkspaceFocusedSession &&
|
|
prev.onReorderWorkspaceSessions === next.onReorderWorkspaceSessions &&
|
|
prev.onReorderTabs === next.onReorderTabs &&
|
|
prev.onSplitSession === next.onSplitSession &&
|
|
prev.onConnectToHost === next.onConnectToHost &&
|
|
prev.onCreateLocalTerminal === next.onCreateLocalTerminal &&
|
|
prev.isBroadcastEnabled === next.isBroadcastEnabled &&
|
|
prev.onToggleBroadcast === next.onToggleBroadcast &&
|
|
prev.isGlobalBroadcastEnabled === next.isGlobalBroadcastEnabled &&
|
|
prev.canUseGlobalBroadcast === next.canUseGlobalBroadcast &&
|
|
prev.onToggleGlobalBroadcast === next.onToggleGlobalBroadcast &&
|
|
prev.updateSnippets === next.updateSnippets &&
|
|
prev.updateSnippetPackages === next.updateSnippetPackages &&
|
|
prev.toggleScriptsSidePanelRef === next.toggleScriptsSidePanelRef &&
|
|
prev.toggleSidePanelRef === next.toggleSidePanelRef &&
|
|
prev.paneMagnificationRef === next.paneMagnificationRef &&
|
|
prev.identities === next.identities
|
|
// shellHistory intentionally omitted — History panel reads shellHistoryStore.
|
|
);
|