Commit Graph

177 Commits

Author SHA1 Message Date
LAPTOP-O016UC3M\Qi Chen 30c2df29be Refactors terminal logic into modular hooks and runtimes
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.
2025-12-15 19:05:13 +08:00
LAPTOP-O016UC3M\Qi Chen be4e97ae69 Adds support for certificate-based SSH authentication
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.
2025-12-15 17:31:24 +08:00
LAPTOP-O016UC3M\Qi Chen 47888dff3a Improves biometric prompt and browser fallback handling
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.
2025-12-15 17:12:43 +08:00
LAPTOP-O016UC3M\Qi Chen 99762b3ec2 Adds secure cloud sync master key storage via OS keychain
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.
2025-12-15 11:42:29 +08:00
LAPTOP-O016UC3M\Qi Chen 0c721613be Enables real-time cross-window sync and improves UI updates
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.
2025-12-15 10:51:29 +08:00
bincxz fcee0eb61b Refactors cloud sync state with useSyncExternalStore
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.
2025-12-15 02:06:42 +08:00
bincxz 714ee3d8b8 Removes extraneous whitespace in UI components
Cleans up minor formatting by removing unnecessary spaces and blank lines
to improve code consistency and readability. No functional changes made.
2025-12-15 01:47:08 +08:00
bincxz 8518b01d67 Adds sync versioning and history to cloud sync UI
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.
2025-12-15 01:47:02 +08:00
bincxz e28a591554 Adds main process bridge for GitHub Device Flow auth
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.
2025-12-15 01:15:51 +08:00
bincxz f070faffee Reformats avatar image element for consistent styling
Cleans up whitespace and formatting around the avatar image to improve code consistency and readability. No functional changes are introduced.
2025-12-15 00:54:25 +08:00
bincxz b297391f10 Enforces single cloud provider sync and improves UX
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.
2025-12-15 00:54:20 +08:00
bincxz 39dad4fbdf Reformats Cloud Sync components for consistent indentation
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.
2025-12-15 00:48:35 +08:00
bincxz d4399cd3d0 Integrates OAuth-based cloud sync and UI refactor
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.
2025-12-15 00:48:15 +08:00
bincxz c87102277a Unifies theme and font controls into appearance modal
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.
2025-12-14 23:19:38 +08:00
bincxz 2c53b1d997 Adds per-log theme and font size controls to log replay
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.
2025-12-14 23:16:35 +08:00
bincxz 3b608834f6 Adds connection log capture and replay for terminals
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.
2025-12-14 21:37:46 +08:00
bincxz b7400f6a80 Improves formatting and readability of authentication dialog
Refactors conditional rendering and code formatting for clarity and consistency in the authentication dialog UI. Enhances maintainability without altering functionality or logic.
2025-12-14 20:00:41 +08:00
bincxz 6ca8b18148 Add SSH certificate and passkey authentication support
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.
2025-12-14 20:00:30 +08:00
bincxz 39ba13f11e Fixes code formatting inconsistencies in terminal components
Normalizes whitespace and indentation to improve code readability and maintain consistency across terminal-related components. No logic or functionality changes are introduced.
2025-12-14 15:19:46 +08:00
bincxz a0f244b56b Adds workspace broadcast mode with hotkey toggle
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.
2025-12-14 15:19:40 +08:00
bincxz 20843c0379 Improves macOS WebAuthn UX, updates packaging, cleans deps
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.
2025-12-14 14:58:12 +08:00
bincxz ef2b113472 Fixes indentation for improved code readability
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.
2025-12-13 19:36:59 +08:00
bincxz 1e87a685c7 Improves WebAuthn reliability and browser helper UX
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.
2025-12-13 19:36:54 +08:00
bincxz e91940005b Adds WebAuthn browser fallback for macOS Touch ID
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.
2025-12-13 13:39:01 +08:00
bincxz 9e2abac86a Enables WebAuthn in production via local HTTP server
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.
2025-12-13 04:58:56 +08:00
bincxz ebe7d0945a Fixes indentation inconsistency in key creation logic
Corrects code indentation for the key creation and save operations to improve readability and maintain consistent code style. No logic is changed.
2025-12-13 04:04:58 +08:00
bincxz 092afeee57 Switches Electron production app to custom app:// protocol
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.
2025-12-13 04:04:51 +08:00
bincxz 3e13f81f5a Adds full FIDO2 and biometric SSH/SFTP support
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.
2025-12-13 02:50:44 +08:00
bincxz fb35f989b8 Refactors to enforce backend access via application hooks
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.
2025-12-13 01:38:44 +08:00
LAPTOP-O016UC3M\Qi Chen 561816485a Improves search bar accessibility and event handling
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.
2025-12-12 22:49:16 +08:00
LAPTOP-O016UC3M\Qi Chen df3b2219dc Refines whitespace for improved code consistency
Standardizes whitespace in terminal components to enhance code readability and maintain consistent formatting. No functional changes made.
2025-12-12 22:31:27 +08:00
LAPTOP-O016UC3M\Qi Chen 195d2a6b99 Adds terminal text search with UI and keyboard shortcut
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.
2025-12-12 22:31:21 +08:00
LAPTOP-O016UC3M\Qi Chen 9463387ea0 Formats code for consistency in terminal components
Unifies spacing and indentation in terminal-related components to enhance code readability and maintainability. No functional or behavioral changes introduced.
2025-12-12 22:06:11 +08:00
LAPTOP-O016UC3M\Qi Chen 43154e7992 Enhances terminal customization and accessibility options
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.
2025-12-12 22:06:03 +08:00
LAPTOP-O016UC3M\Qi Chen 8b3d53bb90 Prevents drag on terminal button for better UX
Adds a class to the terminal button to disable window drag behavior, improving user interaction and preventing accidental drags when opening a terminal.
2025-12-12 20:21:14 +08:00
LAPTOP-O016UC3M\Qi Chen 17121923d8 Removes extraneous whitespace for code consistency
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.
2025-12-12 18:40:00 +08:00
LAPTOP-O016UC3M\Qi Chen a0c9d0d224 Adds pane focus navigation for split terminal workspaces
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.
2025-12-12 18:39:46 +08:00
LAPTOP-O016UC3M\Qi Chen dcd3f14b56 Adds directory listing cache and prevents stale updates
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.
2025-12-12 15:23:40 +08:00
LAPTOP-O016UC3M\Qi Chen aab977f194 Updates dependencies and removes unused theme card component
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.
2025-12-12 11:13:32 +08:00
bincxz 7288b5497c Reformats settings UI for consistent code style
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.
2025-12-12 05:08:44 +08:00
bincxz dd2a0bcde8 Formats UI theme setting code for consistency
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.
2025-12-12 05:08:19 +08:00
bincxz be15c6861a Formats UI theme setting code for consistency
Removes unnecessary whitespace to improve code readability
and maintain consistent formatting in the settings panel.
2025-12-12 04:02:36 +08:00
bincxz 7c07290cfd Adds custom CSS support to settings dialog
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.
2025-12-12 04:02:34 +08:00
bincxz 340a851880 Refactors terminal dialogs and context menu formatting
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.
2025-12-12 03:49:20 +08:00
bincxz 8a49eeeb4c Adds terminal split functionality with context menu
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.
2025-12-12 03:49:13 +08:00
bincxz 0d1c5f0b76 Refactors hotkey handling code formatting
Improves readability by standardizing whitespace in the hotkey
handling function and related variable assignments. No functional
changes introduced.
2025-12-12 03:34:04 +08:00
bincxz 07cdde7976 Refactors hotkey handling for unified app-terminal actions
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.
2025-12-12 03:33:56 +08:00
bincxz 151cd4bfab Adds customizable global keyboard shortcut support
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.
2025-12-12 03:24:28 +08:00
bincxz b272ae799c Enhances terminal settings customization and theme logic
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.
2025-12-12 02:38:16 +08:00
bincxz be2073d94f Enables real-time terminal theme and font preview
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.
2025-12-12 01:54:04 +08:00