Commit Graph
85 Commits
Author SHA1 Message Date
Kang 6076d462c1 fix(ci): select first MSVC linker candidate 2026-11-05 08:48:39 +08:00
Kang d95da58672 fix(ci): use MSVC linker for Windows packaging 2026-11-05 01:00:42 +08:00
Kang e6040fb3a2 feat(diagnostic): introduce Windows diagnostic workflow and instrumentation
- Added a new GitHub Actions workflow for Windows diagnostics, allowing manual execution with specified source references and toolchains.
- Implemented a Python script to apply diagnostic instrumentation to the source code, ensuring compatibility with existing releases.
- Created a packaging script to build a frozen Windows x64 source with symbols and bounded panic probes, retaining necessary files for review.
- Developed diagnostic metadata and breadcrumb tracking for improved debugging and analysis of application behavior.
- Included unit tests to validate the functionality of the diagnostic packaging and instrumentation processes.
2026-11-03 14:46:42 +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 b3c0f249ef Merge pull request #1080 from yaoxinghuo/feat/tmux-control-mode-gpui
feat(tmux): integrate control mode (-CC) in GPUI workspace
2026-11-02 10:45:50 +08:00
Kang 132690b786 ci(tmux): retire the isolated baseline diagnostic
The corrected comparison continues in actions/runs/41333131240; permanent regressions remain in Rust CI.
2026-11-02 01:46:16 +08:00
Kang 87e74e95a1 ci(tmux): isolate workspace artifacts in the undo baseline comparison 2026-11-02 01:45:48 +08:00
Kang 617b89d048 ci(tmux): remove the one-off undo baseline workflow
The same-runner comparison is running in actions/runs/41331502900. Keep the permanent tmux compatibility matrix and platform-correct undo regression test.
2026-11-02 01:27:27 +08:00
Kang 80492d9376 ci(tmux): rebuild the fixed undo test after baseline snapshots 2026-11-02 01:26:43 +08:00
Kang 3807a6e410 test(tmux): exercise real control sessions across supported versions 2026-11-02 01:08:31 +08:00
Kang f89a8edb8a feat(portable): implement Windows portable update handling and validation (#1089)
- Added support for testing and validating portable updates on Windows, including handling ARM64 executables.
- Introduced a new module for managing the portable package contract, ensuring consistency between the Rust and Python packaging processes.
- Updated the release workflow to include tests for portable ZIP files, validating their structure and contents against the defined contract.
- Enhanced error handling for portable updates, including recovery mechanisms for failed updates.
- Added comprehensive tests to ensure the integrity and correctness of portable package handling.

This update significantly improves the reliability and user experience of the portable updater, addressing previous issues with ConPTY and ActiveX file handling.
2026-11-01 19:41:17 +08:00
Kang 245520086d fix(workflows): correct linux-arm64 OS version in CI configurations
Updated the OS version for the linux-arm64 target in both main-snapshot.yml and release.yml from ubuntu-24.04-arm to ubuntu-22.04-arm to ensure compatibility with the supported environment.
2026-10-31 00:54:47 +08:00
Kang 04c72ca50e fix(release): hand off published tag to downstream workflows 2026-10-28 10:22:28 +08:00
Kang b3cac80e78 fix(aur): verify package within Arch image and declare desktop deps 2026-10-28 10:02:06 +08:00
Kang e89192b329 fix(release): lint active workflow during frozen-source recovery 2026-10-28 08:20:11 +08:00
Kang 173f34dbc6 fix(release): grant draft visibility to publishing jobs 2026-10-28 01:02:14 +08:00
Kang 1a449125ab chore(release): prepare v2.0.0 stable publication 2026-10-28 00:50:51 +08:00
Kang b9ffd20189 feat(ci): add Windows terminal execution tests and improve test isolation
- Introduced a new CI step for testing Windows shared terminal execution to ensure ConPTY functionality is validated in isolation.
- Updated the test for shared entry routes to explicitly ignore it outside of the Windows CI environment.
- Refactored the telnet test to improve the handling of application writes and idle intervals, ensuring accurate timing for slow writes.
2026-10-27 09:34:49 +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 9b89f77f01 fix(release): confine decoded signing keys to the signing step 2026-10-26 14:44:30 +08:00
Kang c0fd97179f ci(release): verify signed candidates without publishing
Pin package checkouts and validate per-target source provenance before signing or reusing artifacts. Separate verification from GitHub and R2 publication, and exercise invalid signatures and rehearsal publication gates.
2026-10-26 14:25:38 +08:00
Kang 4f9d81301c Merge pull request #975 from moonmicah/feat/local-cwd-sync
feat(transport,desktop): sync local POSIX shell cwd to file browser
2026-10-25 16:50:20 +08:00
Kang 9a99aea746 fix(transport): clean shell startup files on session teardown
Keep integration files in a host-owned TempDir until ConPTY teardown and
worker joins finish. Use exec for the target shell so active session close
no longer depends on a bootstrap process running its EXIT trap.

Cover close during rc input, foreground execution, normal exit, and WSL
foreground teardown. Run the Git Bash lifecycle tests in Windows CI.

Validation on Windows:
- cargo check --workspace --locked -j 1
- cargo test --workspace --locked --no-fail-fast -j 1
- cargo fmt --all -- --check
- cargo clippy --workspace --all-targets --locked -j 1 -- -D warnings
- Explicit Git Bash ConPTY and WSL startup/close regressions

Architecture lint retains the existing admission.rs thread-builder and
table.rs raw-scroll violations; neither file is changed here.
No persistence contracts or pinned dependencies change.
2026-10-25 16:27:57 +08:00
Kang 3cd8bdf7dd feat(windows_resources): enhance Windows application versioning and resource management (#979)
- Added support for embedding version information in Windows executables, including major, minor, patch, and revision components.
- Updated the build script to generate a comprehensive Windows resource file with application metadata.
- Implemented tests to validate the correct embedding of version information and resource requirements for Windows applications.
- Enhanced the verification process for Windows applications to ensure the presence of version resources and correct metadata.
- Introduced new tests for handling versioning edge cases and ensuring compliance with Windows versioning standards.
2026-10-24 14:25:53 +08:00
Kang 863715c982 fix(release): remove unnecessary argument in release update command
Simplified the release update command in the GitHub Actions workflow by removing the redundant name argument, ensuring cleaner and more efficient release management. This change enhances the clarity of the release process without altering its functionality.
2026-10-06 11:46:29 +08:00
Kang 3f9f15cc6e feat(release): add bump version script and update workflows
Introduced a new script for bumping the Cargo workspace version, which updates both `Cargo.toml` and `Cargo.lock` while preserving comments and formatting. Updated CI workflows to include the new `test_bump_version` script, ensuring version bump tests are executed during the CI process.
2026-10-05 23:31:37 +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 d37cd2a042 feat(conpty): integrate bundled ConPTY support for Windows
- Added support for a bundled ConPTY implementation on Windows, enhancing local terminal functionality.
- Updated the Cargo.toml and Cargo.lock to include the new `nyaterm-transport` dependency.
- Implemented configuration and status checks for the bundled ConPTY in the application.
- Enhanced the UI to display ConPTY status and added localization for related messages in multiple languages.
- Updated release scripts to package and verify ConPTY files for Windows distributions.
- Added tests to ensure proper functionality and integration of the ConPTY feature.
2026-09-29 20:07:19 +08:00
Kang d43c10c2e3 fix(release): run R2 publish when reusing artifacts 2026-09-27 11:32:11 +08:00
Kang 95565be724 fix(release): checkout repository before R2 verification 2026-09-27 11:29:41 +08:00
Kang 626c3b0b31 feat(update): enhance updater functionality and UI
- Added support for portable update packages in the updater logic.
- Introduced new methods for handling update checks and cleanup processes.
- Updated UI elements to reflect the new update phases and statuses.
- Improved error handling and user feedback during update operations.
- Localized new strings for update-related messages across multiple languages.
- Refactored update-related code for better maintainability and clarity.
2026-09-23 08:39:54 +08:00
Kang bef22402dd ci(release): support reusable GPUI release workflow 2026-09-19 17:32:01 +08:00
Kang ba809de664 fix(release): reuse artifacts for publish recovery 2026-09-19 17:22:14 +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 8b0d569d96 fix(ssh): enhance shell integration with prepared integration structure
- Introduced `PreparedSshShellIntegration` to streamline shell integration handling.
- Updated `SshShellIntegrationState` to manage pending integrations instead of scripts.
- Refactored related functions to utilize the new structure for improved clarity and maintainability.
- Added support for additional shell types in integration scripts.
- Adjusted tests to accommodate changes in shell integration logic.
2026-09-13 00:57:47 +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 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
Kang 21487d3d4e ci(workflows): add workspace testing to native-checks.yml
- Introduced a new job to run `cargo test --workspace` in the native-checks workflow, enhancing the testing coverage for the entire workspace.
- This addition ensures that all workspace tests are executed, improving the reliability of the CI process.

This commit strengthens the CI workflow by ensuring comprehensive testing across the workspace, contributing to a more robust development process.
2026-08-25 21:18:35 +08:00
Kang 63cf592d30 ci(workflows): update native-checks.yml to trigger on changes to itself
- Modified the workflow configuration to ensure that changes to the native-checks.yml file itself will trigger the workflow, enhancing the automation of checks during development.

This commit improves the workflow's responsiveness to its own modifications, ensuring that relevant checks are consistently applied.
2026-08-25 20:31:08 +08:00
KangandClaude Opus 5 dc26370b92 ci(docs): run the documentation job on Node 22 with a pinned pnpm
The Documentation site job failed on its first run. `pnpm/action-setup` with
`version: 11` resolved to pnpm 11.22.0, which imports `node:sqlite` and so
needs Node.js >= 22.13, but the job pinned Node 20 and crashed with
ERR_UNKNOWN_BUILTIN_MODULE before installing anything. It passed locally only
because this machine runs Node 26.

- Move the job to Node 22. Node 20 reached end of life in April 2026, so
  raising the floor was due regardless of pnpm.
- Pin pnpm to 11.15.1, the version that produced the lockfile, instead of the
  floating 11 range. A range means the next 11.x release can move the Node
  floor again without any change in this repository, which is exactly what
  happened here.
- Add `packageManager` to docs-site/package.json so a local pnpm cannot
  silently diverge from CI, and correct the setup guide, which told
  contributors Node 18+ was enough and would have walked them into the same
  crash.

Verified by reproducing the CI environment locally: a clean
`pnpm --dir docs-site install --frozen-lockfile` plus
`pnpm --dir docs-site build` and the parity script, all under Node 22.23.2 with
pnpm 11.15.1, and re-checked on the Node 26 toolchain used for local work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 11:58:05 +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 4869a77675 ci: add native checks workflow for Rust applications on multiple platforms 2026-08-18 11:54:59 +08:00
Kang bb03709a70 docs: add bug report issue template and configuration 2026-08-17 00:23:04 +08:00
Kang 080b38452f docs: add bug report issue template and configuration 2026-08-17 00:22:38 +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