Commit Graph
29 Commits
Author SHA1 Message Date
Kang 15908b7204 refactor(external_process): restructure child process management and enhance cleanup
- Introduced `AgentChild` to manage the lifecycle of external agent processes, ensuring proper cleanup of child processes and their associated resources.
- Updated `ExternalAgentChild` to utilize `AgentChild`, improving the handling of process termination and output capturing.
- Added tests for descendant cleanup behavior on Windows to ensure that child processes are properly terminated and resources are released.
- Refactored related code in `claude_code_runtime` and `codex_runtime` to use the new `spawn` method for process initialization.
- Enhanced shutdown logic in `app_state` to cancel all running agents and chats when closing terminals, improving resource management.
2026-11-04 15:04:27 +08:00
Kang 010f1e4215 feat(agents): add Windows RDP support and remove ActiveX helper
- Introduced `nyaterm-windows-rdp` for Windows Native RDP integration, detailing its architecture and isolation requirements.
- Removed the `nyaterm-activex-helper` crate, including all related files and dependencies, to streamline the project and focus on modern RDP implementations.
- Updated documentation in `AGENTS.md` to reflect these changes and clarify the new architecture.
- Adjusted `Cargo.toml` and `Cargo.lock` to remove references to the deleted ActiveX helper and include the new RDP crate.
- Enhanced CI workflows to configure MSVC for Windows builds, ensuring compatibility with the new RDP implementation.
2026-11-02 19:17:20 +08:00
Kang 505e54b806 feat(ci): implement selective job execution for Rust workflows
- Introduced an `orchestrate` job to determine which CI jobs to run based on changed paths in pull requests.
- Updated Rust workflow to conditionally execute jobs like linting, testing, and plugin SDK based on the selection logic.
- Added a new script `select_rust_jobs.py` to handle job selection logic without requiring a Rust installation.
- Enhanced documentation to explain the new CI execution model and its implications for contributors.
2026-11-02 13:03:16 +08:00
Kang 9c17cb6b2f feat(sync): introduce cloud synchronization features with encryption and AI configuration
- Added new modules for cloud synchronization, including `sync_schema`, `encryption`, and `ai`.
- Implemented encryption for credential values to enhance security.
- Introduced AI configuration policies and structures for managing AI-related data.
- Enhanced `CloudSyncRemote` trait with methods for writing and listing sync files.
- Updated `Cargo.toml` and `Cargo.lock` to include new dependencies and workspace members.
- Added tests for new functionalities to ensure reliability and correctness.
2026-10-30 20:04:25 +08:00
Kang 74ba8984eb chore(desktop): document the session dialog scroll handle exception 2026-10-27 15:01:12 +08:00
Kang 9663a91287 feat(release): add Windows MSI packaging and verification
- Implemented MSI packaging for stable releases, including installation scripts and metadata generation.
- Added tests to ensure MSI files are correctly generated and verified against expected properties.
- Updated release workflows to include MSI installation and signing steps.
- Enhanced artifact management to conditionally include MSI files based on release type.
2026-10-26 17:33:24 +08:00
Kang cdead1d343 fix(tests): resolve symlink handling in verified_move_keeps_source_if_it_changes_during_copy test
- Updated the test to use canonical paths for source and target directories, ensuring compatibility with macOS symlink behavior.
- Enhanced the assertion to provide clearer error messages when the copy operation does not reach the source mutation, improving test reliability.
2026-10-23 17:58:57 +08:00
Kang a6c04cfd08 feat(tests): enhance PowerShell execution tests with improved timeout handling and prompt verification
- Updated the PowerShell test to include a custom prompt function, ensuring accurate readiness detection.
- Implemented a more robust timeout mechanism for PowerShell execution, allowing for better handling of execution delays.
- Added assertions to verify that PowerShell execution completes successfully and does not time out unexpectedly.
- Refactored the test logic to improve clarity and maintainability, ensuring consistent behavior across test runs.

Validated on Windows with workspace checks, tests, formatting, and all-target clippy.
2026-10-18 19:52:54 +08:00
Kang 567934ba38 feat(threading): introduce BackgroundCleanup for executor-managed task cleanup
- Added `BackgroundCleanup` struct to manage cleanup tasks in a background executor, ensuring that dropped workers do not block the main thread.
- Refactored existing threading logic to utilize `spawn_joinable` for thread creation, enhancing task management and cleanup during shutdown.
- Updated various components to integrate background cleanup, including external editor watchers and transfer state management.
- Added tests to verify the functionality of cleanup tasks and their execution order during shutdown.
2026-10-16 21:49:52 +08:00
Kang c3a6f3f44b fix(ci): restore macOS plugin tests and architecture gate 2026-10-05 19:28:38 +08:00
Kang 2250e90dba feat(plugin-sdk): add new job for building and testing plugin SDK components
Introduced a new job in the GitHub Actions workflow for the Plugin SDK, which includes steps for checking out the repository, setting up Rust with necessary components, installing Linux dependencies, checking formatting, building SDK guests, and verifying the packaged SDK. Updated the Rust gate job dependencies to include the new plugin-sdk job.

Additionally, refactored the NyaTermApp to improve the handling of floating panel close actions based on the current panel state, ensuring better user experience. Enhanced plugin management by implementing shutdown procedures and revising invocation checks to include expected revisions, improving stability and error handling during plugin operations.

Added comprehensive tests for the plugin service to validate the new functionality and ensure robust performance across various scenarios.
2026-10-04 20:28:18 +08:00
Kang e11cf9de64 fix(ci): update SSH disconnect worker baseline 2026-10-03 21:52:23 +08:00
Kang 2cbec5110b fix(ci): approve AI scroll and workspace test baselines 2026-10-03 17:05:50 +08:00
Kang 3c7ebd60a3 ci: update architecture allowlist baselines 2026-10-02 19:17:23 +08:00
Kang 5789b8fa16 ci: remove stale remote editor scroll allowlist 2026-09-27 09:52:42 +08:00
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 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 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 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
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