Files
NetMesh/components/terminalLayerMemo.ts
zhaolei 3c72efcb7f
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
[Init] Initial commit - NetMesh terminal manager
2026-09-13 18:24:01 +08:00

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.
);