Commit Graph
257 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 817a54b8e7 fix(release): allow authorized legacy helper cleanup in MSI verification 2026-11-05 00:09:59 +08:00
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 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 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 bd2d91ef82 feat(protocols): implement URL protocol handling for Windows
- Added support for registering and unregistering URL protocols on Windows, allowing external applications to invoke NyaTerm.
- Introduced a new module for managing URL protocol registration, including functions for creating, setting, and deleting registry keys.
- Updated the main application logic to handle incoming protocol requests and execute corresponding actions.
- Enhanced the activation request parsing to accommodate new connection types and behaviors.
- Added tests to validate the URL protocol registration and handling functionality.

This update significantly improves the integration of NyaTerm with external applications, enhancing user experience and connectivity options.
2026-11-01 12:41:49 +08:00
Kang 23cad4b366 test(ci): include sync manifest in architecture fixtures 2026-10-31 17:48:01 +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 d0e6cb89af feat(remote-desktop): isolate explicit ActiveX sessions in a helper
Replace Auto selection and fallback with explicit IronRDP or Windows backends. Preserve legacy configuration aliases and unknown saved values, and validate ActiveX authentication, clipboard and Relay capabilities.

Move COM, OLE and child window ownership into a dedicated STA helper, use bounded IPC and process reaping, and replace screen capture with overlay visibility handling. Include the host in Windows packaging and add lifecycle regressions.
2026-10-30 00:03:02 +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 74ba8984eb chore(desktop): document the session dialog scroll handle exception 2026-10-27 15:01:12 +08:00
Kang 3c039ca23f test(package): add mock for Wix tool in native package tests
- Introduced a mock for the Wix tool in the PackageNativeTests to enhance testing of Windows MSI packaging functionality.
2026-10-26 21:14:36 +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 32e09cb19a docs(release): account for absent channel manifests during recovery 2026-10-26 14:44:30 +08:00
Kang 0bfdf0862f docs(release): document GPUI migration and cutover gates 2026-10-26 14:26:14 +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 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 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 93abf05182 feat(icons): add macOS application icon and documentation (#958)
- 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.
2026-10-22 16:31:15 +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 129e28f066 feat(zmodem): enhance Zmodem session management and event handling
- 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.
2026-10-18 14:03:49 +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 a5aa197fa7 perf(renderer): enhance terminal rendering with new features and optimizations
- 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.
2026-10-09 00:44:17 +08:00
Kang 9501cb8dc5 feat(tests): add comprehensive validation for Windows installer and ConPTY files
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.
2026-10-06 00:45:51 +08:00
Kang 44658ad751 fix(release): enhance whitespace handling in version bump script
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.
2026-10-05 23:53:55 +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 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 2ffbaf995d feat(plugins): introduce V1 plugin system with manifest and invocation support
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.
2026-10-04 15:42:04 +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 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 5789b8fa16 ci: remove stale remote editor scroll allowlist 2026-09-27 09:52:42 +08:00
Kang 4cda513e17 fix(installer): add launch option to Windows finish page 2026-09-26 00:30:24 +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 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