Commit Graph

44 Commits

Author SHA1 Message Date
陈大猫 c27788280c Merge pull request #145 from RiceWays/feature/folder-upload
Feature/folder upload
2026-01-30 16:09:25 +08:00
bincxz fd7f516b00 fix: P3 review issues - icon consistency and popover auto-close
- 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>
2026-01-30 16:02:20 +08:00
bincxz 89ea1c43c5 refactor(sftp): convert toolbar buttons to icon-only with tooltips
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>
2026-01-30 15:49:40 +08:00
Nightsuki 9dd3db4c14 feat(vault): improve managed source sync and host management
- 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
2026-01-29 00:07:14 +08:00
bincxz 7ee45ed7aa fix: intercept aria-hidden via property descriptor and setAttribute
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>
2026-01-22 09:17:18 +08:00
bincxz fb7b0aee86 fix: use MutationObserver to prevent aria-hidden on context menu portal
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>
2026-01-22 09:14:53 +08:00
bincxz c8621960d5 fix: address reviewer feedback for encoding and aria-hidden issues
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>
2026-01-22 03:21:28 +08:00
bincxz 6196c6e3c3 Optimizes render tracking and dialog accessibility
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.
2026-01-22 01:44:01 +08:00
bincxz b6d0a3c698 fix: add renderer selection setting and fix serial port dropdown
- 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>
2026-01-21 18:28:58 +08:00
bincxz 95bc7f018c feat: display Linux server stats in terminal statusbar
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>
2026-01-21 17:58:55 +08:00
bincxz a3e0d4d5c1 Replaces language selector with combobox and improves UI truncation
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.
2026-01-08 00:13:37 +08:00
LAPTOP-O016UC3M\Qi Chen d6db6c5db1 Adds Monaco-based syntax highlighting editor and OSC 7 CWD sync
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.
2026-01-07 21:09:07 +08:00
LAPTOP-O016UC3M\Qi Chen 7143bce61e Improves code style and consistency in settings tab
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.
2026-01-04 15:10:00 +08:00
LAPTOP-O016UC3M\Qi Chen 7c232335ef Adds update check with notifications and improved toast UX
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.
2026-01-04 14:59:23 +08:00
LAPTOP-O016UC3M\Qi Chen 3cd3cf1145 Localizes sort and known hosts UI text
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.
2025-12-17 20:32:51 +08:00
LAPTOP-O016UC3M\Qi Chen 4e9e5da13c Localizes UI and improves dynamic translation support
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.
2025-12-17 14:25:05 +08:00
LAPTOP-O016UC3M\Qi Chen d719dfdc69 Add integrated FIDO2 SSH key generation workflow
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.
2025-12-16 11:40:43 +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
LAPTOP-O016UC3M\Qi Chen e00fa2733b Renames app and codebase from Nebula to Netcatty
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.
2025-12-11 18:42:01 +08:00
LAPTOP-O016UC3M\Qi Chen 5eb4eb0604 Improves code readability with consistent spacing
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.
2025-12-11 18:05:00 +08:00
LAPTOP-O016UC3M\Qi Chen 17faf0b651 Simplifies focus and ring styles across UI components
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.
2025-12-11 18:04:49 +08:00
LAPTOP-O016UC3M\Qi Chen ab91630c5c Improves code readability via consistent import formatting
Standardizes spacing in import and export statements to enhance
code clarity and maintain consistency across components.
2025-12-11 17:36:59 +08:00
LAPTOP-O016UC3M\Qi Chen fc69ef33a2 Unifies popover and dropdown border styling
Standardizes border appearance for popover and dropdown UI components
by applying a consistent border color and style, enhancing visual
cohesion across interactive elements.
2025-12-11 17:36:53 +08:00
LAPTOP-O016UC3M\Qi Chen 5c25d588b2 Refactor UI components and improve SFTP/port features 2025-12-11 16:33:28 +08:00
LAPTOP-O016UC3M\Qi Chen b8c221d112 Organize and normalize imports across project
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.
2025-12-11 16:01:03 +08:00
LAPTOP-O016UC3M\Qi Chen 48dc5aa6a8 Replaces popover menus with dropdowns and improves UX
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.
2025-12-11 12:05:06 +08:00
LAPTOP-O016UC3M\Qi Chen 7a710caa60 Switches dropdowns to popovers for improved UX
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.
2025-12-11 11:02:13 +08:00
LAPTOP-O016UC3M\Qi Chen 4756cd7c6e Improves code consistency by fixing indentation
Standardizes indentation across dropdown and select UI components
for improved readability and maintainability.
No logic changes introduced.
2025-12-11 10:51:36 +08:00
LAPTOP-O016UC3M\Qi Chen 085ced7751 Replaces popover components with dropdowns for menus
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.
2025-12-11 10:51:04 +08:00
bincxz a67983dc3c Improves dialog appearance and backdrop behavior
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.
2025-12-11 04:48:47 +08:00
bincxz 101c086eef Removes dialog overlay background and blur effects
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.
2025-12-11 04:45:25 +08:00
bincxz 89b8cdcbec Unifies card styling and improves grid layout consistency
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.
2025-12-11 04:25:10 +08:00
bincxz c48b133da4 commits 2025-12-11 04:11:51 +08:00
bincxz 762786b69d Adds tag rename and delete support in tag filter 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.
2025-12-11 04:11:50 +08:00
bincxz 0e528fd090 Improves selection UX for groups, tags, keys, and packages
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.
2025-12-11 01:27:54 +08:00
LAPTOP-O016UC3M\Qi Chen b75900d234 Refactor UI components for consistency and readability
- 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.
2025-12-10 23:29:26 +08:00
LAPTOP-O016UC3M\Qi Chen f6d50c1795 Unifies aside panel UI, adds host tagging, improves selection
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.
2025-12-10 23:29:11 +08:00
LAPTOP-O016UC3M\Qi Chen afea784117 Adds FIDO2 security key support and key export workflow
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.
2025-12-10 13:41:43 +08:00
bincxz f74ac9ff54 fix: Fixed the class name format of the status indicator in the PortForwarding component and optimized the code format of the ToastProvider component 2025-12-09 03:23:21 +08:00
bincxz 8c4e6df208 feat: 添加 ToastProvider 组件以支持全局通知功能,并在 PortForwarding 组件中集成错误提示 2025-12-09 03:22:39 +08:00
bincxz 747e53526c feat: Enhance context menu rendering with dedicated portal and improve primary foreground color 2025-12-08 00:01:58 +08:00
bincxz e69335c804 feat: Add workspace rename function and optimize theme color settings 2025-12-07 21:10:03 +08:00
bincxz d7dac0455e feat: Update the context menu style to enhance visibility and interactivity 2025-12-07 20:30:32 +08:00
bincxz 9360c31a78 first commit 2025-12-07 03:25:07 +08:00