- Use FolderUp icon for folder upload in context menu (matches toolbar)
- Auto-close encoding popover when an option is selected
- Add trailing newline to uploadService.ts
Co-Authored-By: Claude (gemini-claude-opus-4-5-thinking) <noreply@anthropic.com>
Replace text+icon buttons with icon-only buttons and tooltips for Upload,
Upload Folder, New Folder, and New File actions. Uses more distinctive
icons (FolderPlus, FilePlus) and adds a new Tooltip component.
Co-Authored-By: Claude (gemini-claude-opus-4-5-thinking) <noreply@anthropic.com>
- Fix managed host sync: add group field to change detection
- Auto-set managedSourceId when moving host to managed group
- Add 'managed' badge to managed hosts in VaultView
- Fix file path resolution for managed sources using webUtils
- Add managedSources prop to HostDetailsPanel for proper sync
- Restrict spaces in label for managed hosts
- Reorder HostDetailsPanel sections: General > Address > Port & Credentials
- Add debug logging for managed source sync troubleshooting
Use both Object.defineProperty for the ariaHidden property and
setAttribute override to catch all ways aria-hidden can be set.
The MutationObserver approach was too late (async) to prevent
the browser warning.
Co-Authored-By: Claude <noreply@anthropic.com>
The previous setAttribute override wasn't catching all cases where
aria-hidden was being set. Using MutationObserver to watch for
attribute changes and immediately remove aria-hidden when the
context menu is open (has children).
Co-Authored-By: Claude <noreply@anthropic.com>
1. Fix getStringLen to honor encoding parameter in SFTP patch
- When a non-UTF-8 encoding is provided, the function now correctly
calculates byte length using that encoding instead of defaulting to UTF-8
- This prevents protocol errors when writing data with custom encodings
2. Fix aria-hidden warning on context menu portal
- Override setAttribute on the portal container to block aria-hidden="true"
when the menu is open (has children)
- This prevents "Blocked aria-hidden on an element because its descendant
retained focus" warnings when context menu opens inside a dialog
Co-Authored-By: Claude <noreply@anthropic.com>
Disables render tracking by default, making it an opt-in debugging feature. This change significantly reduces development log noise by only logging render information when explicitly enabled via a debug flag.
Also, explicitly sets `aria-describedby={undefined}` on dialog content. This ensures proper accessibility semantics when a description is not provided, preventing potential issues or warnings.
- Add renderer selection (WebGL/Canvas) in terminal settings
- Remove macOS restriction for Canvas renderer, allow all platforms
- Fix Combobox dropdown to show all options when opened instead of
filtering by current value
- Add i18n translations for new rendering settings
Closes#80
Co-Authored-By: Claude <noreply@anthropic.com>
Add real-time monitoring of Linux server resources in the terminal statusbar:
- CPU usage with per-core breakdown in hover popup
- Memory usage with htop-style colored bar (Used/Buffers/Cache/Free)
- Top 10 processes by memory consumption
- Disk usage for all mounted partitions
- Network speed (RX/TX) with per-interface details
Features:
- Only enabled for Linux servers (detected automatically)
- Configurable refresh interval (default 5 seconds)
- Toggle in Settings > Terminal tab
- Hover-triggered popups using Radix UI HoverCard
- BusyBox compatibility with fallback commands
Closes#108
Co-Authored-By: Claude <noreply@anthropic.com>
Switches the language selection component in the editor modal to a combobox for better usability and UX consistency.
Improves truncation and overflow handling on dialogs and combobox triggers to prevent layout issues and enhance readability, especially for long file names and options.
Removes redundant "only system app" info for non-editable files to streamline the dialog.
Integrates Monaco Editor for enhanced syntax highlighting in the text editor modal, improving editing experience for code and config files.
Tracks and synchronizes the terminal's current working directory via OSC 7 escape sequences, enabling SFTP dialogs to open at the detected shell path even after user or directory changes.
Introduces IPC and backend support for querying the current shell directory from active SSH sessions, with fallback and path validation logic for remote SFTP browsing.
Improves file type detection by analyzing file content in addition to extensions.
Updates i18n strings and UI elements for clarity and future system application integration.
Adds necessary dependencies for Monaco Editor and updates content security policy for web workers.
Refactors indentation and spacing for better readability across the settings application tab and toast UI components.
Enhances maintainability by unifying code formatting and minor whitespace adjustments.
No functional logic is changed.
Implements automatic and manual update checking, displaying toast notifications when new versions are available or when the app is up to date. Enhances the toast utility to support clickable actions, custom labels, and improved accessibility. Updates UI to surface update status more prominently and localizes new update-related messages.
Improves user awareness of available updates and provides a smoother update experience.
Replaces hardcoded sort labels and known hosts strings with
localized keys and translations for English and Chinese.
Improves internationalization support and ensures consistent
UI language across the application.
Localizes sort and known hosts UI text
Replaces hardcoded labels for sorting and known hosts management with localized strings in English and Chinese.
Improves internationalization support and ensures UI consistency across languages by using translation keys throughout relevant components.
Integrates all user-facing strings into the translation system and
expands locale files for comprehensive coverage, enabling dynamic
i18n across the interface. Replaces hardcoded labels, button texts,
and prompts with translation keys, benefiting maintainability and
future language support. Improves translation ergonomics in forms,
dialogs, wizards, and settings, ensuring consistent user experience
in both English and Chinese.
Implements a comprehensive UI and backend bridge for FIDO2 hardware and platform authenticator SSH key creation, including device selection, PIN entry, and touch prompts. Modernizes the key generation panel with enhanced options, feedback, and error handling, and establishes Electron IPC support for seamless device communication.
Improves security, user experience, and support for modern authentication hardware.
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.
Updates all code references, IPC channels, CSS classes, and storage keys
from "nebula" to "netcatty" to align with new branding and application identity.
Ensures consistency across frontend, Electron backend, global types,
and package metadata.
Applies consistent spacing in import and export statements across multiple UI components to enhance code readability and maintainability.
No functional logic or behavior is changed.
Removes redundant focus ring and offset classes from multiple UI elements to streamline visual consistency and reduce CSS complexity. Updates snippet manager header structure for improved layout clarity.
Standardizes border appearance for popover and dropdown UI components
by applying a consistent border color and style, enhancing visual
cohesion across interactive elements.
Reorder and normalize import statements, group icon imports, and add
missing utility imports (cn). Fix export/newline formatting and minor
type import tweaks. Add ESLint scripts to package.json and update the
lockfile.
Unifies UI controls by switching popover-based menus to dropdown components for view mode, sort, and tag filtering across multiple editors. Refactors dropdown rendering to use portals for more reliable positioning, and updates menu trigger icons for clarity.
Handles EPIPE and stream errors gracefully in Electron to prevent crashes when writing to closed streams, improving terminal stability.
Enhances code maintainability and ensures consistent user experience.
Replaces dropdown menus with popovers for filter and view actions,
streamlining interactions and visual consistency. Enhances popover
positioning logic to ensure reliable rendering in Electron, addressing
layout and visibility issues with dynamic updates.
Switches UI menu interactions from popover to dropdown for improved stacking and positioning reliability.
Updates z-index and disables problematic animations to prevent display issues, especially on first open.
Enhances consistency and visual layering of menu components across the application.
Unifies custom box shadow styling for modal dialogs to enhance visual consistency.
Adds backdrop click handlers to dialog overlays, enabling users to dismiss dialogs by clicking outside the content area, while preventing accidental closure when interacting with the dialog itself.
Simplifies dialog appearance by eliminating darkened background and blur,
resulting in a cleaner modal overlay. Enhances visual consistency and
reduces excessive visual layering across modal dialogs.
Refactors card components to use consistent "soft-card" and "elevate" styles,
harmonizes sizing and padding, and standardizes grid gaps for a uniform look
across managers and views. Updates hover effects and background transitions for
better visual feedback. Reduces box-shadow intensity and simplifies elevation
transitions for a cleaner UI.
Improves tag filter dropdown with search, edit, and delete actions,
allowing users to rename or remove tags across all hosts. Enhances
usability for managing tags and streamlines selection workflow.
Replaces manual input fields for groups, tags, credentials,
and packages with combobox-based autocomplete and creation flows.
Unifies credential selection, supporting keys, certificates,
and FIDO2 options with clearer UI feedback and interaction.
Enhances tag management with autocomplete from all host tags,
streamlining host categorization and package assignment.
- Updated spacing and formatting in PortForwardingNew.tsx for improved layout.
- Cleaned up SelectHostPanel.tsx by standardizing button and filter logic.
- Enhanced SnippetsManager.tsx with consistent card layouts and improved target selection UI.
- Refined AsidePanel and SortDropdown components for better code clarity.
- Adjusted TagFilterDropdown for consistent button styling and layout.
Migrates manual aside panels to a reusable design system for consistent slide-out UI across hosts, keys, port forwarding, and snippets.
Adds tag management to host forms and selection, enabling filtering and improved organization.
Improves host/group selection with sorting, tag filtering, and breadcrumb navigation.
Simplifies panel logic, centralizes host panel state, and enhances maintainability.
Enables registration and management of FIDO2 hardware-backed SSH keys using WebAuthn, including a production HTTP server for secure context.
Introduces export-to-host functionality with script customization and host selection, improving workflow for attaching public keys to remote systems.
Refines UI interactions, adds context menus for keys, and improves toast notifications for consistent feedback.