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.
- 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.
- 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.
- Introduced a new macOS application icon (`icon.icns`) to enhance the visual identity of the app.
- Added a README file in the icons-macos directory to provide context and usage instructions for the icon.
- Updated the packaging script to correctly reference the new icon location for macOS bundles.
- 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.
- Added functionality to rebind Zmodem recording during session transfers, ensuring accurate data capture.
- Implemented new methods for starting and finishing Zmodem runtime, improving session event handling and state management.
- Enhanced session event bridge to support protocol consumer binding and asynchronous event pushing, optimizing event processing.
- Updated tests to validate new Zmodem runtime behaviors and ensure proper handling of session events during transfers.
Validated on Windows with workspace checks, tests, formatting, and all-target clippy.
- 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.
- Updated `.gitignore` to exclude renderer artifacts.
- Added `hdrhistogram` and `gpui_wgpu` dependencies to `Cargo.lock`.
- Introduced `gpui_platform` and `serde_json` as optional dependencies in `Cargo.toml`.
- Implemented a new example `renderer_probe` for benchmarking native rendering performance.
- Enhanced `CellGlyphPaintPlan` to support shade region merging and improved rendering efficiency.
- Updated tests to validate new rendering features and ensure correct behavior of text decorations.
- Documented changes in `terminal-rendering.md` to clarify rendering logic and performance benchmarks.
Introduced new tests to verify the Windows installer functionality, ensuring it correctly checks for required ConPTY files and handles architecture mismatches. Added a fixture to simulate installer behavior and validate the presence of necessary files, enhancing the robustness of the installation verification process.
Updated the version bump script to preserve CRLF line endings and respect configured whitespace checks during commits. Added tests to ensure proper handling of whitespace configurations and CRLF preservation, improving the robustness of the version bumping process.
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.
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.
Add a new plugin architecture allowing for dynamic plugin management and execution. This includes the implementation of plugin manifests, action validation, and parameter handling. Introduced new modules for plugin invocation, manifest parsing, and preferences management. Updated the core library to support plugin integration and added tests for plugin functionality. Localization updates for plugin management UI in multiple languages were also included.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
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.
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.
- 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.
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>
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)
- 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.
- 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.