Commit Graph
213 Commits
Author SHA1 Message Date
Kang b0a8d66695 chore: update references from gpui-component to gpui-kit
- Replaced all instances of `gpui-component` with `gpui-kit` across various files to reflect the new naming convention.
- Updated Cargo.toml and documentation to ensure consistency in dependency management and integration boundaries.
- Adjusted comments and code references to align with the new structure, enhancing clarity and maintainability.
2026-09-22 00:00:58 +08:00
Kang 68d8d86f84 fix(ci): allow managed asset table scroll 2026-09-21 23:11:33 +08:00
Kang 7b2fcd887b feat(windows): add application icon resource handling for Windows builds
- Introduced `embed-resource` dependency to manage Windows application icons.
- Updated `build.rs` to compile Windows resources and include an application icon.
- Enhanced shell command execution to prevent console window from appearing during startup.
- Added validation for Windows application binaries to ensure GUI subsystem and required icon resources are present.
- Updated tests to verify the presence of necessary resources in the Windows executable.
2026-09-19 13:53:41 +08:00
Kang 4d4494f783 fix(release): harden preview native packaging 2026-09-19 10:28:43 +08:00
Kang 6c92ec455b feat(app_identity): introduce application flavor management for stable and preview versions
- Added `AppFlavor` enum to distinguish between stable and preview application identities.
- Updated various components to utilize the current application flavor for configuration, logging, and UI elements.
- Enhanced the update mechanism to ensure compatibility with the respective application flavor.
- Implemented tests to validate flavor-specific behavior and configuration isolation.
- Modified native menus and title bars to reflect the correct application name based on the current flavor.
2026-09-19 00:39:32 +08:00
Kang 623e040551 feat(updater): enhance update mechanism with semver support and manifest handling
- Added `semver` dependency to manage versioning.
- Introduced `UpdateManifest` struct for parsing and validating update manifests.
- Implemented logic to select update artifacts based on platform and architecture.
- Updated the update check process to utilize the new manifest structure.
- Enhanced error handling for update signature verification and manifest parsing.
- Modified update status messages for clarity in the UI.
- Added tests for new functionality and error cases in the update process.
2026-09-19 00:02:11 +08:00
Kang 81c6bf6198 fix(ci): allow owned xymodem worker thread 2026-09-18 16:56:04 +08:00
Kang ae2cc76b7b feat(desktop): reconnect migrated UI workflows and native integrations
Preserve shared custom icons, SFTP settings and connection extensions; reconnect input, authentication, cancellation, tunnel, transfer, editor and remote-desktop controls. Add typed feedback, tray and signed update integration. Remote-desktop IPC is version 7 and keeps target identity separate from authenticated loopback routes.

Pinned nyaterm fork revisions: russh 0de037cd, russh-sftp e2caffef, IronRDP b6658790 (includes existing c44dcc77 gateway merge). Windows validation: workspace tests 2547 passed, 9 ignored; clippy/all-targets, fmt, architecture check and 28 packaging tests passed. UI_UX_MIGRATION_AUDIT.md records remaining platform/manual verification and partial parity boundaries; no release or real installer upgrade was performed.
2026-09-09 06:59:37 +08:00
Kang 958b55905b refactor(tests): standardize test directory management across modules
- Introduced the `TestConfigDir` utility to streamline the creation and management of temporary test directories, ensuring consistent naming and cleanup across various test modules.
- Updated multiple test files to utilize `TestConfigDir`, enhancing clarity and reducing redundancy in test setup.
- Improved the robustness of test directory handling, particularly in scenarios involving concurrent test execution, to prevent conflicts and ensure isolation.
- Added assertions to verify the correct cleanup of test directories after execution, reinforcing the integrity of the testing environment.
2026-09-04 12:15:16 +08:00
Kang 97401bddac refactor(tests): update test imports for clarity and organization
- Replaced wildcard imports with explicit imports in test modules across multiple files, enhancing code readability and maintainability.
- This change improves the clarity of dependencies in test cases, making it easier to understand which components are being utilized in each test.
2026-09-01 12:04:42 +08:00
Kang 105317b106 build(release): package the MCP helper
Ship nyaterm-mcp beside the application in native packages and verify its presence in packaging tests and AUR artifacts.
2026-09-01 10:24:09 +08:00
Kang 8e27865206 ci(contributing, docs): enhance contribution guidelines and installation instructions
- Updated the `CONTRIBUTING.md` to include additional test commands for release asset verification and package metadata generation.
- Revised `README.md` and `README.zh-CN.md` to clarify the installation process for Windows portable editions and added details on migrating from Tauri to GPUI.
- Introduced new workflows for publishing to AUR, Gitee, and Homebrew, ensuring streamlined release processes across platforms.
- Added a new `actionlint.yaml` for workflow syntax validation, improving CI/CD reliability.
- Enhanced documentation to reflect changes in artifact versioning and release management, ensuring clarity for contributors and users.
2026-08-31 10:32:18 +08:00
Kang 8fe05f6050 refactor(desktop): centralize background job execution
Route short-lived blocking work through a bounded scheduler with cooperative cancellation, typed outcomes, panic containment, and shutdown metrics. Own and join long-lived desktop workers, including transfer watchers and protocol pipelines, and enforce the remaining thread constructors through the architecture allowlist.
2026-08-30 09:39:45 +08:00
Kang 5e0b1dfcd4 fix(ui): conform scroll containers to UI contracts
Keep absolutely positioned popup geometry on non-scrolling shells and move scrolling into in-flow NyaScrollable children. Expose horizontal overflow in the app menu and session tabs, preserve dedicated editor scrollbars, and retire the wildcard-import and popup-scroll architecture exceptions.
2026-08-30 01:15:32 +08:00
Kang cd5c925676 chore(ci): enforce warnings and architecture boundaries
Clear the existing workspace Clippy warnings and make warnings fatal in CI. Add a budgeted architecture check that prevents new crate-boundary, raw-thread, raw-scroll, module-path, and wildcard-import debt while requiring every temporary exception to stay justified and current.
2026-08-30 00:58:09 +08:00
Kang e1201a413c ci(release): strengthen native package validation 2026-08-28 00:49:08 +08:00
Kang 2df15871cc ci(workflows): update CI configurations and enhance documentation
- Modified `.gitattributes` to ensure nested CI scripts under `scripts/ci/` are correctly matched.
- Updated `CONTRIBUTING.md` for clarity and added details on local checks, including the importance of `--no-fail-fast` in testing.
- Introduced new GitHub Actions for setting up Rust and managing documentation workflows, improving CI efficiency.
- Removed the outdated `native-checks.yml` workflow and replaced it with a more comprehensive `rust.yml` workflow for better testing coverage.
- Added scripts for verifying release assets and installing necessary tooling, enhancing the release process.

This commit refines the CI/CD pipeline, ensuring better organization, clarity, and functionality across workflows and documentation.
2026-08-25 22:53:23 +08:00
KangandClaude Opus 5 ab02c222cc ci(docs): build the docs site and check translation parity
The docs site was not in any CI path filter, so nothing built it and nothing
compared the two locales. That is how the English pages drifted several
sections behind Chinese and how seven internal screenshot-planning notes stayed
published.

- Add scripts/ci/check_docs_translations.py, covering what a Docusaurus build
  does not: a page existing in only one locale, a heading-count mismatch
  between the two copies, a page no sidebar references, and authoring
  leftovers (screenshot-planning notes, /img/docs/ paths, scripts/demo-*.sh
  references, stray TODO markers). Verified it fails on each of those by
  reintroducing them.
- Add a Documentation site job that runs the script and then builds every
  locale, and add docs-site/** to the workflow path filters.
- Fix docs-site/pnpm-workspace.yaml, whose allowBuilds entries still held the
  placeholder text "set this to true or false". That made every `pnpm install`
  in the site fail with ERR_PNPM_IGNORED_BUILDS, which means the
  `pnpm --dir docs-site build` command our own contributing guide tells people
  to run did not work. Deny the four build scripts explicitly; none is needed
  to build the site.
- Correct the homepage, which still advertised only SSH, local shell, Telnet,
  and serial: the workspace card, the docs card, and the page description now
  name RDP, VNC, and the AI assistant. The three retargeted translate() keys
  are updated in i18n/en/code.json so English does not fall back to Chinese.
- Document the new script in the setup and contributing guides, replacing the
  note that said no translation-completeness check exists.

Verified with `python3 scripts/ci/check_docs_translations.py`,
`pnpm --dir docs-site install --frozen-lockfile`, and
`pnpm --dir docs-site build`, and by confirming the new homepage strings render
in both locales.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 11:27:47 +08:00
KangandClaude Opus 5 (1M context) f07e2745df feat(remote-desktop): introduce nyaterm-vnc-helper and enhance IPC handling
Added the `nyaterm-vnc-helper` crate to manage VNC sessions in a separate process, improving security and stability. Updated the IPC protocol to facilitate communication between the main application and the VNC helper, including new control messages and error handling. Refactored existing code to utilize helper processes for both RDP and VNC, ensuring consistent session management and error reporting.

- Updated Cargo.toml and Cargo.lock to include the new helper.
- Refactored remote desktop session management to support helper processes.
- Enhanced error handling for VNC-specific scenarios.
- Added tests for the new VNC helper functionality.

Co-Authored-By: Claude Opus 5 (1M context)
2026-08-20 17:18:34 +08:00
Kang 97d8ba86c4 ci(deps): add libdbus-1-dev to the list of installed packages 2026-08-17 08:40:54 +08:00
Kang 6e111b0bca ci: add verification scripts and tests for native package releases
- Implemented `verify_native_package.py` to validate release artifacts for NyaTerm.
- Added tests for package validation in `test_verify_native_package.py`.
- Created initial test suite in `__init__.py` and added tests for package native functionality in `test_package_native.py`.
- Included checks for Windows, macOS, and Linux package formats and metadata.
- Ensured safe archive path verification and proper error handling for missing artifacts.
2026-08-16 23:40:27 +08:00
Kang 2a0e705e0e refactor: Remove icon management scripts and related assets
- Deleted `check-icon-references.sh` script which verified icon references in the UI.
- Removed `icons.manifest` file that served as a vendor manifest for bundled icon assets.
- Eliminated `package-windows.ps1` script used for packaging the Windows application.
- Removed `sync-icons.sh` script responsible for syncing icon assets from upstream sources.
2026-08-16 20:34:06 +08:00
Kang 65d9e9e2d2 refactor(desktop): remove blocking connection persistence 2026-08-16 01:17:25 +08:00
Kang 9cd227f373 fix(security): redact secret-bearing debug output 2026-08-16 00:56:33 +08:00
Kang f79d49adfa refactor(desktop): remove feature facade re-exports 2026-08-16 00:39:17 +08:00
Kang c5921a044b docs(architecture): finalize storage and ownership boundaries 2026-08-16 00:30:13 +08:00
Kang 85ca9fc57b feat(storage): add single-owner persistence runtime 2026-08-15 20:39:31 +08:00
Kang f70dc82b16 feat: enhance terminal context menu with session-aware actions and improved search functionality
- Updated the terminal context menu to include session ID for all actions, ensuring context-sensitive behavior.
- Improved search engine URL handling to default to Google when no template is provided.
- Enhanced URL encoding to support additional characters.
- Added tests for search engine URL generation and query encoding.
- Refactored recording menu items to reflect the current session's recording status and actions.
- Updated translations for new recording log actions and settings.
- Introduced minimum width for context menus to improve usability.
- Updated icon paths in the manifest for consistency with Material Design.
2026-08-15 16:15:48 +08:00
Kang 5094939389 build(windows): package native GPUI releases 2026-08-13 11:20:31 +08:00
Kang 0fef8d9c62 chore(ui): sync security action icons 2026-08-12 19:31:03 +08:00
Kang 5f1b295e2e feat: RDP 2026-08-11 08:35:38 +08:00
Kang c8b09f2ecd feat: add GPU and Ascend NPU monitoring features
- Introduced GPU and Ascend NPU monitoring panels in the application.
- Updated navigation and activity bar to include GPU and NPU options.
- Implemented views for GPU and NPU monitoring with appropriate refresh functionality.
- Added localization support for GPU and NPU labels in English and Chinese.
- Created SVG icons for GPU and NPU.
- Enhanced session management to handle session ID replacements for transfers.
- Updated tests to ensure session ID migration preserves state for reconnected SFTP sessions.
2026-08-11 00:59:55 +08:00
Kang 26e5ec6639 refactor(icons): update nyaterm_app_icon to use theme palette and remove SVG file 2026-08-09 11:57:12 +08:00
Kang bddfef3d40 feat(icons): add full-color NyaTerm application icon and update references 2026-08-09 11:46:00 +08:00
Kang ce5daee0ee feat: add tab locking functionality and related UI updates
- Introduced a `locked` field in `PendingSessionStartRegistration` to manage tab lock state.
- Implemented methods to lock and unlock tabs, including `set_tab_tree_locked` and `toggle_tab_tree_locked`.
- Updated session state management to handle locked tabs, including migration of lock state during session presentation.
- Enhanced tab mouse actions to respect lock state, preventing actions on locked tabs.
- Added UI elements for locking and unlocking tabs, including icons and context menu options.
- Updated localization files to include new strings related to tab locking functionality.
- Improved session closing logic to notify users when attempting to close locked tabs.
2026-08-05 19:55:43 +08:00
Kang 3c6a76ecab fix(desktop): align file browser chrome and scrolling 2026-08-05 11:18:08 +08:00
Kang 2e0bbc8f6a feat(session-import): enhance session import functionality by adding support for Electerm bookmarks, FinalShell connections, and SecureCRT XML files; introduce Termius IndexedDB import with decryption capabilities 2026-08-01 21:10:43 +08:00
Kang 1c171800a5 feat(ui): add new SVG icons for keyboard, mouse, security, and swap functionality; update icon paths in settings 2026-08-01 11:52:14 +08:00
Kang a1cf4ca910 feat(ui): migrate controls to vendored GPUI stack 2026-08-01 09:50:28 +08:00
Kang 2538bf49d4 feat(ui): migrate common controls to gpui-component 2026-07-30 23:42:29 +08:00
Kang 488cb1d511 refactor: X11 and Zmodem modules for improved readability and performance
- Simplified the display specification resolution in `x11.rs` by replacing `unwrap_or_else` with `unwrap_or`.
- Enhanced cookie parsing logic in `x11.rs` using pattern matching for cleaner code.
- Added a default implementation for `ZmodemDetector` in `zmodem.rs`.
- Streamlined event handling in `ZmodemTransfer` by utilizing pattern matching in `if let` statements.
- Updated documentation to reflect changes in architecture and module organization.
- Removed unused imports and ensured all modules adhere to the new import guidelines.
- Cleared all `use super::*` imports in both desktop and terminal-GPUI crates.
- Enforced explicit imports in test modules to maintain clear dependencies.
2026-07-30 08:38:13 +08:00
Kang 5812713801 refactor(desktop): close owner-local facade debt 2026-07-30 01:07:33 +08:00
Kang fb37180e53 refactor(desktop): close composition root governance 2026-07-30 00:28:00 +08:00
Kang 0bf4861ed4 refactor(ai): close settings ownership 2026-07-30 00:12:02 +08:00
Kang 8e6288ba58 refactor(ai): close chat and agent ownership 2026-07-29 23:38:35 +08:00
Kang 58cdbeaf4b refactor(ai): close history and discovery ownership 2026-07-29 23:09:14 +08:00
Kang 2ba24b900b refactor(ai): encapsulate panel state 2026-07-29 22:52:36 +08:00
Kang bd0aad1226 refactor(shell): encapsulate application status 2026-07-29 22:30:46 +08:00
Kang 231ccab180 refactor(session): close child state boundaries 2026-07-29 22:08:58 +08:00
Kang bc7a752bcb refactor(settings): make storage status updates atomic 2026-07-29 21:47:26 +08:00