Improves maintainability and code clarity by extracting authentication, search, and context menu behaviors into dedicated hooks. Moves terminal session logic into runtime/session-starter modules, reducing component complexity. Removes inline implementations in favor of reusable abstractions, streamlining prop and state management throughout the terminal UI.
Enables easier future enhancements and testing by promoting separation of concerns and reducing code duplication.
Extends authentication logic and UI to recognize and handle
certificate-based keys alongside password and regular key methods.
Improves key selection UX by auto-switching to the appropriate
auth method based on the selected key type. Enables broader
SSH authentication compatibility.
Updates user messaging to dynamically reference Touch ID or Windows Hello, enhancing clarity based on platform.
Refines logic to prefer the browser fallback for WebAuthn in all Electron development environments (not just macOS), reducing potential authentication issues and confusion.
Makes minor adjustments to package metadata for consistency.
Persists and auto-unlocks the cloud sync vault master key using the operating system's secure storage,
eliminating the need for repeated password entry after initial unlock. Enhances UX with dialog-based
unlock and key change flows, removes the dedicated locked screen, and synchronizes the key seamlessly
across app windows. Improves error handling for locked or conflicting states and ensures session password
is cleared on lock or failed unlock.
Implements cross-window data synchronization to ensure state
remains consistent across multiple windows (such as settings
or separate Electron windows) using storage events and state
listeners. Improves UI responsiveness by forcing re-renders
on relevant state changes and ensuring immediate updates after
sync actions and conflict resolutions. Also enhances modal and
component reactivity for better user experience.
Improves real-time synchronization of cloud sync state across React components by adopting useSyncExternalStore. Removes manual state management and event subscription in favor of a direct, consistent state snapshot from the manager. Updates the sync manager to support snapshot-based subscriptions and deep cloning for reliable UI updates.
Enhances user feedback on manual sync actions through integrated toast notifications. Simplifies UI state logic and reduces redundant state update calls, making sync operations more robust and maintainable.
Improves the cloud sync experience by displaying local/remote version info and detailed sync history in both the sync settings and status button popovers. Tracks sync actions and outcomes for better transparency and debugging. Updates provider connection logic and disables redundant connect buttons when a provider is already active.
Enhances user trust and control by making sync status and activity more visible and actionable.
Enables GitHub Device Flow authentication through the main process
to bypass CORS issues by introducing IPC bridge handlers and updating
the adapter to use them when available. Improves error handling and
logging for easier debugging. Wraps settings in a toast provider to
support user notifications.
Ensures only one cloud provider is connected at a time by disconnecting others before authenticating a new provider, preventing sync conflicts and confusion. Improves error handling and logging for Google Drive sync file lookup, providing clearer user feedback for common API failures. Updates avatar image security and clarifies sync button behavior to enhance user experience.
Updates indentation and formatting across cloud sync-related React components to improve code readability and maintain consistency. No logic or behavior is changed; all modifications are purely stylistic for easier maintenance.
Replaces legacy GitHub Gist sync UI with a modular cloud sync component and introduces OAuth callback support in the bridge layer. Updates the top bar to use a sync status button linked to settings, improving user experience and future extensibility for cloud sync providers.
Replaces separate theme dropdown and font size controls with a single
"Appearance" modal for customizing terminal theme and font size.
Simplifies the UI, improves discoverability, and streamlines user
interaction for appearance settings.
Enables users to customize terminal theme and font size for each log replay,
improving readability and personalization of the log view experience. Updates
persist in the log model, and theme/font changes apply instantly without
recreating the terminal. Also improves UI for these controls and tidies minor
imports.
Implements persistent logging of terminal sessions, capturing system info and terminal output for each connection, including local and remote. Introduces a logs section in the UI to view, save, delete, and replay connection logs in read-only tabs. Adds deduplication for known hosts and improves tab management to support log replays alongside terminal and workspace tabs.
Enables future auditing, troubleshooting, and session review by storing terminal data and session metadata.
Refactors conditional rendering and code formatting for clarity and consistency in the authentication dialog UI. Enhances maintainability without altering functionality or logic.
Enables SSH certificate and WebAuthn/FIDO2 passkey authentication
for both terminal and SFTP connections, including UI for key and
certificate selection and passphrase entry. Updates agent and SSH
bridge logic to handle certificate, passkey, and fallback methods,
and patches signature algorithm handling for certificate auth to
ensure correct signature formats and algorithm negotiation.
Improves compatibility with modern SSH deployments and enhances
security by supporting hardware-backed and certificate-based keys.
Normalizes whitespace and indentation to improve code readability and maintain consistency across terminal-related components. No logic or functionality changes are introduced.
Implements a broadcast mode that lets users send terminal input to all sessions within a workspace. Introduces a hotkey to toggle broadcast for the active workspace and a UI indicator/button in the terminal header. Removes the unused side panel hotkey action. Updates tab navigation logic to accommodate new sections.
Enables more efficient multi-session workflows by allowing synchronized input across terminals.
Enhances biometric WebAuthn handling on macOS by preferring the browser helper flow in development/unpackaged environments, reducing UI hangs and improving reliability. Refines the logic for detecting packaged apps and adds configuration for explicitly selecting biometric flows.
Updates packaging scripts to use electron-builder's install-app-deps and disables a noisy Node warning, while removing @electron/rebuild from dependencies for faster, more reliable builds.
Cleans up package-lock.json by removing unused or redundant dev dependencies. Updates the application icon asset to a new version.
Corrects inconsistent indentation and whitespace in the terminal component code. Enhances maintainability and reduces potential confusion for future contributors by standardizing formatting, without altering functional logic.
Enhances the WebAuthn browser fallback flow for biometric SSH keys on macOS by introducing deep link handling to refocus the app after authentication, updating the helper page with a clearer, more user-friendly UI, and expanding debug logging throughout the authentication workflow.
Adjusts SSH agent signature formatting for better FIDO2/OpenSSH compatibility and improves key migration logic by inferring key source types more accurately.
Aims to prevent user confusion during biometric prompts, ensure seamless return from browser flows, and facilitate troubleshooting of authentication issues.
Implements a browser-based WebAuthn fallback for biometric key creation and authentication, improving reliability of Touch ID prompts on macOS, especially when Electron's embedded WebAuthn flow fails. Integrates helper flows, IPC, and UI feedback to guide users through the browser prompt and ensure cross-platform consistency.
Serves production builds over a localhost HTTP server to ensure WebAuthn compatibility, working around Chromium's restriction on custom protocols. Adds diagnostics and timeouts for biometric credential creation, improves error handling, and clarifies sandbox usage for macOS. Cleans up static server processes on app exit to avoid resource leaks.
Replaces the local HTTP server approach with a custom privileged protocol for loading the app in production, enabling secure WebAuthn (Touch ID/Windows Hello) without the overhead of an internal HTTP server. Improves platform authenticator error handling and ensures RP ID compatibility across environments. Updates development server configs for better cross-platform WebAuthn support and adds packaging scripts and dependencies for electron-builder.
Integrates WebAuthn-based authentication for SSH and SFTP, enabling use of FIDO2 security keys and platform authenticators (Touch ID, Windows Hello) as SSH credentials. Updates UI for better credential selection and feedback. Improves error handling by routing errors through toast notifications instead of inline displays. Refactors backend to route credential details and agent logic for WebAuthn and certificate-based keys, ensuring agent-based authentication is prioritized and fallback to password is possible.
Replaces all direct usage of browser globals and infrastructure service imports in UI components with dedicated application/state backend hooks. Introduces lint rules to prevent direct access to backend bridges and localStorage from components, promoting a cleaner separation of concerns and improved maintainability.
Moves user preferences (e.g., port forwarding form mode) to persistent state hooks, updates port forwarding and SFTP logic to rely on backend hooks, and centralizes logging through a logger utility. Cleans up debug code and removes obsolete scripts from HTML.
Improves testability, prepares for alternative backend implementations, and enforces architectural boundaries.
Removes global Escape key handling for closing search to reduce unintended side effects.
Enhances search bar navigation buttons with better accessibility by specifying button type, managing tab focus, and stopping propagation of key events.
Introduces an integrated search bar for the terminal, accessible via a toolbar button or Ctrl/Cmd+F, enabling users to search terminal output with navigation controls. Improves usability by allowing easy text lookup and navigation within terminal sessions, and updates dependencies to include the required search addon.
Unifies spacing and indentation in terminal-related components to enhance code readability and maintainability. No functional or behavioral changes introduced.
Expands terminal settings with advanced customization such as emulation type, font weights, line padding, keyword highlighting, link modifiers, and middle-click behavior.
Adds support for clickable URLs, cross-window settings sync, and context-aware right-click actions.
Improves accessibility with minimum contrast ratio controls and allows keyword-based output highlighting.
Refines theme/font selection UI for performance and clarity.
Adds a class to the terminal button to disable window drag behavior, improving user interaction and preventing accidental drags when opening a terminal.
Cleans up unnecessary trailing and internal whitespace throughout
multiple files to improve code readability and maintain a consistent
style. No logic or functional changes introduced.
Enables keyboard navigation between split terminal panes using arrow key shortcuts, implementing directional focus movement with wraparound and modifier-aware handling. Improves workspace usability by visually marking and programmatically updating the focused pane, ensuring reliable focus control even with concurrent DOM updates. Also refines keybinding recording for special shortcuts and updates settings sync token usage for consistency.
Introduces a time-limited directory listing cache to improve SFTP and local file navigation performance and responsiveness. Implements sequence tracking to avoid UI updates from outdated asynchronous results, preventing race conditions during rapid navigation or refreshes. Refactors local directory statting to use parallelism for faster performance in directories with many files. Improves user experience by ensuring directory views are always up to date and consistent.
Upgrades multiple dependencies, including node-pty and Tailwind CSS,
to improve compatibility and receive upstream fixes. Removes an unused
theme card component to reduce code clutter. Also makes minor code
cleanups for consistency.
Adjusts indentation and formatting across the settings and quick switcher components to maintain a consistent code style. No functional or behavioral changes are introduced. Improves maintainability and readability.
Removes unnecessary whitespace to improve code readability
and maintain consistent formatting in the settings panel.
Adds dedicated settings window and improves UI sync
Implements a separate settings window in desktop mode, enabling users to open settings as a standalone dialog via Electron integration and renderer routing.
Synchronizes theme and keybinding preferences across windows using storage events for a seamless experience. Enhances Quick Switcher hotkey display accuracy, focuses terminal tab on activation, and refines UI accent color usage for consistency and accessibility.
Improves visual coherence and formatting in the settings panel, addressing theme application and component styling.
Enables users to inject and persist custom CSS for personalized UI tweaks,
applying changes immediately. Improves appearance customization options
by expanding the color palette and adding a custom color picker.
Improves structure and readability by reordering conditional rendering
of terminal dialogs and reformatting the context menu for consistency.
Enhances maintainability without changing existing logic or features.
Introduces support for horizontal and vertical splitting of terminal sessions, enabling users to split standalone sessions and manage panes within workspaces. Implements a context menu in the terminal for split actions and standard clipboard operations, improving usability and workflow efficiency. Integrates split logic across hotkeys, UI callbacks, and session state management.
Centralizes hotkey action logic to enable consistent shortcut
behavior across both app-level and terminal contexts. Improves
maintainability and extensibility by introducing a shared hotkey
action handler and callback prop, reducing code duplication and
streamlining future shortcut feature development.
Implements a flexible system for configuring and persisting keyboard shortcuts across the app, enabling users to select hotkey schemes (Mac/PC), edit, disable, or reset shortcuts, and apply them globally and in terminal contexts.
Improves accessibility and workflow by allowing tailored key bindings, storing preferences in local storage, and integrating shortcut management into settings UI.
Refines styling for active UI elements, spinners, and borders for better theme consistency.
Introduces granular terminal appearance and behavior controls,
including font ligatures, weights, cursor shape, mouse and keyboard
actions, and accessibility options, with persistent storage.
Replaces default terminal themes with new Netcatty variants and
updates theme selection logic to prioritize host-specific settings.
Improves settings dialog UI for better organization and clarity.
Provides immediate feedback when customizing terminal appearance by applying theme, font, and font size changes in real time within the customization modal. Adds cancellation logic to revert unsaved changes, prevents duplicate IPC handler registration, and makes minor UI refinements for improved user experience.