Commit Graph
53 Commits
Author SHA1 Message Date
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
Kang 5094939389 build(windows): package native GPUI releases 2026-08-13 11:20:31 +08:00
Kang 5efce4e7cf feat(assets): vendor bundled icons from a pinned manifest
Icons were previously hand-added, so their provenance and licensing lived in
folklore and a mis-painted asset was invisible at runtime: GPUI's `svg()`
reduces a file to an alpha mask, and `img()` keeps its pixels, but nothing
complains when the two are swapped.

Assets are now described by `scripts/icons.manifest` and vendored by
`scripts/sync-icons.sh` from pinned upstream releases, keeping the tree
reproducible and reviewable. `icons/**` stays monochrome and `color/**` full
colour; `scripts/check-icon-references.sh` fails the build when a referenced
asset is missing or painted through the wrong element, and runs in CI.

The lookup tables move out of `formatting/` into a dedicated `features/icons`
module so a ~1000-line brand table is not rebuilt inside a render closure, and
saved connections gain `icon_auto_detect`, which fills in a blank icon from the
detected remote system without ever overwriting a deliberate choice.
2026-07-26 23:21:58 +08:00
Kang 16ddcd3042 refactor: add architecture boundary check script
This commit introduces a new script, `check-architecture-boundaries.sh`, which enforces architectural boundaries within the project. The script checks for dependencies between different components, ensuring that low-level crates remain independent of higher-level presentation code. It also validates that certain fields and methods are accessed only through designated state management methods, preventing direct mutations that could lead to inconsistencies.

Key features of the script include:
- Dependency checks between crates.
- Validation of access patterns for state management.
- Enforcement of limits on specific code patterns to maintain architectural integrity.
- Reporting of violations with detailed output for easier debugging.

This addition aims to improve code quality and maintainability by enforcing architectural guidelines.
2026-07-25 20:29:05 +08:00
Kang 63ff274888 refactor: migrate to GPUI 2026-07-05 17:26:19 +08:00
Kang edc81dff30 ci: add verification step for GitHub Gist OAuth Client ID in release build 2026-06-21 23:45:58 +08:00
Kang b689c11ceb ci: inject GitHub Gist client ID during release build 2026-06-21 19:30:02 +08:00
Kang 58194370c2 ci: trigger Homebrew tap update after NyaTerm release (#93)
- Introduced a new job in the GitHub Actions workflow to update the Homebrew tap upon version tagging.
- Configured the job to trigger only for version tags without hyphens, ensuring proper version management.
- Utilized GitHub CLI to run the update workflow for the Homebrew tap, enhancing the release process.
2026-06-20 21:02:10 +08:00
Kang 43a9ae12a4 fix(build-release): correct package name for Ubuntu ARM installation from libfuse2t64 to libfuse2 2026-05-27 22:31:56 +08:00
Kang 75d446ad8a feat(build): add packaging step for Windows portable zip release 2026-05-26 21:34:47 +08:00
Kang 96aef0a1b9 fix(workflows): update Ubuntu version from 24.04 to 22.04 in build-release.yml 2026-05-26 17:17:31 +08:00
Kang b6287577b5 fix: Correct markdown link syntax in bug report template 2026-05-12 00:03:23 +08:00
Kang 7c5b47439a fix: Update bug report template to streamline feature request guidance
This commit modifies the bug report issue template to provide a direct link for users to submit feature requests, enhancing clarity and usability. The previous instructions were simplified to improve the user experience when reporting bugs and suggesting features.
2026-05-12 00:02:25 +08:00
Kang e4f22549dc feat: Add issue templates for bug reports and feature requests
This commit introduces new issue templates for reporting bugs and suggesting features in the GitHub repository. The bug report template guides users to provide detailed information about issues, including reproduction steps and environment details. The feature request template encourages users to describe problems and propose solutions, ensuring organized feedback collection. These templates aim to enhance user engagement and streamline the issue submission process.
2026-05-11 23:57:34 +08:00
Kang 58ff08a1cb chore: Remove feature request discussion template from GitHub repository
This commit deletes the existing feature request discussion template, streamlining the submission process for user feedback. The removal aims to simplify the discussion guidelines and reduce redundancy in feature request handling.
2026-05-11 23:53:38 +08:00
Kang 16295a1f62 feat: Add feature request discussion template for user submissions
This commit introduces a new discussion template for feature requests in the GitHub repository. The template guides users to submit single feature requests, ensuring clarity and organization. It includes a checkbox for users to confirm they have searched for duplicates and a required textarea for detailing the requested feature, enhancing the process of gathering user feedback.
2026-05-11 23:23:00 +08:00
Kang fb759851eb chore: Delete .github/workflows/debug-publish-r2.yml 2026-05-06 12:57:07 +08:00
Kang 17cd750051 feat: Add GitHub Actions workflow for R2 asset publishing 2026-05-06 12:55:57 +08:00
Kang 0e112d4b7c fix: Add TAG environment variable to build-release workflow 2026-05-06 12:50:56 +08:00
Kang c56e9ee43b feat: Add Cloudflare R2 publishing workflow
Added a new job to publish release assets to Cloudflare R2, including downloading release assets, building the latest.json file, uploading installers, and verifying the uploaded latest.json.
2026-05-06 10:30:59 +08:00
Kang 7e9c999e05 chore: Delete .github/workflows/debug-publish-r2.yml 2026-05-06 10:30:25 +08:00
Kang 8a5d13688d fix: Add download of GitHub Release assets in workflow 2026-05-06 10:20:33 +08:00
Kang ef9847d8ba chore: Add GitHub Actions workflow for R2 asset publishing 2026-05-06 10:15:44 +08:00
Kang f7875d7871 refactor: Update references from Dragonfly to NyaTerm across documentation and codebase
This commit replaces all instances of "Dragonfly" with "NyaTerm" in various files, including documentation, configuration, and UI elements. The changes ensure consistency in branding and improve clarity for users transitioning from the previous version. Additionally, updates to the changelog and README reflect the new application name and its features.
2026-05-05 20:05:53 +08:00
Kang 1afe48924f chore: Delete .github/workflows/repair-updater-assets.yml 2026-04-28 10:01:54 +08:00
Kang ce501cb1db fix: Fix indentation for GITHUB_TOKEN in workflow 2026-04-28 10:01:20 +08:00
Kang 493a7a51b7 chore: Enhance GitHub Actions script for asset downloading
Refactor asset download logic to improve error handling and use environment variable for GitHub token.
2026-04-28 10:00:25 +08:00
Kang 8c4f9823e8 feat: repair-updater-assets
repair-updater-assets
2026-04-28 09:58:39 +08:00
Kang dfd48fcf50 chore: Delete .github/workflows/repair-tag.yaml 2026-04-28 09:58:07 +08:00
Kang 4383c22e36 feat: Add workflow to repair latest.json for releases 2026-04-28 09:45:47 +08:00
Kang 0c4db1d1dd fix: Enhance updater manifest generation process
Refactor updater manifest generation to improve readability and error handling.
2026-04-28 09:42:00 +08:00
Kang 22359efe8a fix: Add Tauri updater signing key preparation step 2026-04-28 00:51:57 +08:00
Kang 7f7f360be6 fix: Add libudev-dev to build dependencies 2026-04-28 00:38:16 +08:00