Commit Graph
152 Commits
Author SHA1 Message Date
fonaix 1d627306fd Merge branch 'nyakang:main' into main 2026-11-05 07:38:43 +08:00
Kang 1453f6cefe chore: bump version to v2.0.2 2026-11-04 23:19:42 +08:00
fonaix 1339dbb716 feat(log): 添加日志分片大小配置功能
问题:我个人的2026-11-03的日志文件已经到达3.96GB,2026-11-04的日志文件也已经达到688MB。
解决:新增日志分片大小设置选项,允许用户自定义单个日志文件的最大字节数,达到该大小后自动切换到新的日志分片。同时增加多语言本地化支持,实现本地时间戳格式化和日志轮转逻辑,完善相关测试用例。
2026-11-04 19:59:14 +08:00
Kang 0a1dad0330 chore(sync): merge main and reconcile OpenDAL dependencies 2026-11-04 17:53:16 +08:00
Kang deba0debf9 feat(sync): migrate OAuth drives to OpenDAL with V4 publication
Keep OAuth rotation in NyaTerm and persist credentials before installing refreshed tokens. Validate complete Drive listings and publish verified staged objects without replacing immutable destinations. Aliyun replacement fails closed and preserves existing data and pending recovery.
2026-11-04 17:40:39 +08:00
Kang 9b1a935cb9 refactor(ai): migrate native providers to rust-genai 0.7.3 2026-11-04 17:05:21 +08:00
Kang ce12287ef2 feat(sync): route WebDAV and S3 object access through OpenDAL
Preserve V3/V4 formats, credential ownership, caches and commit protection. Retain fixed Native directory/listing adapters for service compatibility and keep OAuth providers Native until refreshed tokens can be persisted reliably. Add typed errors, safe HTTP transport and local compatibility/fault tests.
2026-11-04 16:14:41 +08:00
Kang cd3b3ba21f chore(deps): update dependencies and references in Cargo files
- Updated the `Cargo.lock` file to reflect new versions and sources for several packages, including `alacritty_terminal`, `gpui`, and `ironrdp`.
- Added new dependencies: `alloca`, `anes`, `bench_metrics`, `c-enum`, `cast`, `ciborium`, `clap`, and their respective versions.
- Removed deprecated dependencies and updated existing ones to ensure compatibility with recent changes.
2026-11-03 09:21:29 +08:00
Kang 65d0b516af chore(deps): update dependency references for gpui and zed packages
- Updated the source references for `gpui`, `gpui-base`, `gpui-kit`, and `gpui_platform` in `Cargo.toml` to point to the latest commits.
- Adjusted the `Cargo.lock` file to reflect the new dependency versions for `zed` and `gpui-kit`, ensuring compatibility with recent changes.
2026-11-03 00:40:59 +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 ceefdce8b0 chore(deps): update gpui-kit dependency references in Cargo files
- Updated the source references for `gpui-base`, `gpui-component`, `gpui-component-macros`, `gpui-kit`, and `gpui-kit-assets` in `Cargo.lock` and `Cargo.toml` to point to the latest commit `355061fbf8446076283931bee2c46e8dfdd949e2`.
2026-11-02 14:26:01 +08:00
Kang 0fd62c9d60 chore(release): bump version to 2.0.1 2026-11-01 14:32:45 +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 fdaf1cbbf1 fix(remote-desktop): prompt only for missing VNC credentials
Preserve the helper's missing-password hint through fatal IPC error forwarding, and base prompts on actual negotiation rather than generic authentication failures. Cover inherited connection credentials without retaining extra plaintext state.

Pin vnc-rs nyaterm to 336ed94 for precise Auto security errors, and suppress duplicate Connected notifications under maximum rectangle counts. Validate Windows VNC/remote-desktop regressions, strict workspace clippy, fmt, and architecture boundaries.
2026-10-31 17:45:09 +08:00
Kang cc35a5f93a feat(import): enhance WindTerm session import with master password support
- Implemented functionality to handle WindTerm profiles that require a master password for decrypting saved auto-login information.
- Added new structures and logic to manage session import warnings and incomplete credentials.
- Updated the user interface to prompt for the master password during the import process.
- Enhanced tests to validate the new import behavior, including scenarios with valid and invalid master passwords.
- Updated localization files to include new strings related to the WindTerm master password functionality.
2026-10-31 01:17:47 +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
work1024 de66f566ab feat(remote-desktop): 接入 Windows 原生 RDP 后端
Windows 上「自动选择」和「Windows 远程桌面」改用系统自带的 MsTscAx 控件,
其他平台或配置了跳板时仍走内置 IronRDP;连接编辑器的 RDP 页可以选择后端,
并随连接保存(auto/builtin/windows)。

- 原生画面放在跟随标签定位的顶层宿主窗口里;菜单、对话框等浮层打开时隐藏宿主,
  把最后一帧截图垫在面板下面,关闭后恢复实时画面,锁屏不保留截图。
- 同一保存连接只保留一个 RDP 标签;被其他客户端接管时显示原因并给出重试/关闭;
  关闭原生会话不再误走 helper 管理导致整个程序退出。
- 会话信息增加 Windows RDP 控件区:控件版本、加密强度、连接状态、桌面分辨率。
- 修复静态帧挤占布局把宿主窗口顶到面板下方、以及抓屏红蓝通道颠倒导致蓝色桌面
  变橙色的问题;释放静态帧时同步回收 GPUI 图集里的整面板纹理。
2026-10-29 20:52:34 +08:00
Kang db1c947bd2 feat(ime): implement terminal IME state management and preedit rendering
This commit introduces a new `TerminalImeState` structure to manage IME text and selection state within the terminal. It enhances the handling of IME preedit text by ensuring proper caret positioning and selection tracking. The implementation includes updates to the terminal rendering logic to paint the IME composition correctly, maintaining visual consistency with the terminal's cursor. Additionally, it refactors existing input handling to integrate the new IME state management, improving user experience during text input with IME. Tests have been added to validate the new functionality and ensure reliability.
2026-10-29 15:02:54 +08:00
Kang 5a10b39b61 feat(runtime-auth): implement runtime SSH credential management and UI enhancements (#1022)
This commit introduces a new module for managing runtime SSH credentials, allowing for deferred persistence and selection of authentication methods. It enhances the user interface by integrating runtime authentication views, improving user interaction during SSH authentication processes. Additionally, it includes tests to ensure the reliability of the new functionality and maintains the overall user experience during credential handling.
2026-10-28 22:22:43 +08:00
Kang b3cd4c7a8b fix(remote-desktop): integrate main and retain compliant clipboard timestamps 2026-10-27 14:53:11 +08:00
Kang 27fac7d3bf build(remote-desktop): update the IronRDP fork
Pin nyakang/IronRDP:nyaterm at b10cd243bc9442a07fcd776568a5fdaf1c64492f,
rebased onto upstream master 3ca12ee63687980ace30cd6ed59c2ab4f57cf157.
Align direct crate requirements with the new breaking releases.

Keep RDPEGFX explicitly disabled and scope certificate exceptions to the
configured endpoint. The fork preserves embedder certificate rejection
and rejects redirected loopback relays before their identity changes.

Windows validation: 4,360 workspace tests passed, 30 ignored; locked
workspace check, all-target Clippy, formatting and both helper builds
passed. Real-server and cross-platform validation remain outstanding.
2026-10-27 14:25:48 +08:00
work1024 ae04fd3afb feat(clipboard): 保留 RDP 剪贴板文件的创建、访问和修改时间
问题:发给远端的文件描述符没有带任何时间,粘贴到远程桌面后文件的时间
全部变成复制时间。

改法:从本地文件元数据读取创建、访问和修改时间,按 Windows FILETIME
写入 CLIPRDR 文件描述符。IronRDP 的 FileDescriptor 原来只能带修改时间,
这次补上创建和访问时间,fork 固定到 nyakang/IronRDP 的 nyaterm 分支
167abe38。

验证:新增 FILETIME 换算、真实文件三段时间、以及编码后的
FileGroupDescriptorW 标志和数值测试;cargo test -p nyaterm-rdp-helper
通过。
2026-10-27 13:28:18 +08:00
Coflys c6a6d6e982 Merge branch 'nyakang:main' into main 2026-10-27 12:00:02 +08:00
Kang f0a6993269 fix(diagnostics): use reliable logging and renderer detection
Use tracing-subscriber automatic log bridging and propagate initialization errors. Cache the selected GPUI device after window creation and distinguish hardware, software and unavailable renderer information. Clarify requested and measured session details in all six locales.
2026-10-27 11:53:16 +08:00
work1024 3e71f755c2 feat(rdp): 添加RDP连接高级选项和渲染器诊断功能
- 实现log桥接将GPUI的log消息转接到tracing系统
- 记录GPU渲染适配器名称并检测软件渲染器使用情况
- 添加administrative_session选项用于连接到控制台会话
- 添加graphics_pipeline选项启用RDPEGFX图形管道
- 添加display_wallpaper和display_themes显示选项
- 添加enable_font_smoothing和enable_desktop_composition选项
- 添加disable_full_window_drag等禁用特效选项
- 更新多语言本地化文件添加新的RDP配置选项
- 实现连接配置向后兼容性测试确保字段默认值正确
2026-10-27 09:50:59 +08:00
Kang b9c49f071a feat(sync): integrate httpdate package and enhance cloud sync conflict resolution
- Added the `httpdate` package as a dependency for improved date handling in HTTP requests.
- Introduced new modules for conflict resolution in cloud synchronization, including detailed conflict previews and resolution requests.
- Enhanced error handling in cloud sync operations to classify and manage various error types effectively.
- Updated the portable snapshot structure to include device names for better identification during sync operations.
- Improved debug output to redact sensitive information in HTTP requests and responses.
- Added localization strings for new sync features in English, French, and Japanese.
2026-10-26 22:44:11 +08:00
Kang 1827027fb3 chore(release): bump version to 2.0.0 2026-10-26 14:26:14 +08:00
Kang 679c43936d chore(release): bump version to 2.0.0-preview.9 2026-10-23 18:48:15 +08:00
Kang 02e18d0135 feat(clipboard): enhance clipboard management with new input handling and tests
- Introduced a new `ClipboardInput` enum to manage different input sources for clipboard operations, improving flexibility in handling clipboard messages.
- Updated the `ClipboardBridge` to utilize the new input handling structure, allowing for better integration with test scenarios.
- Added a comprehensive test suite for clipboard functionality, ensuring robust handling of clipboard messages and format requests.
- Enhanced error handling in clipboard operations to provide clearer feedback on channel states and message processing.
2026-10-23 16:55:51 +08:00
Kang 2a27ce3750 chore(release): bump version to 2.0.0-preview.8 2026-10-21 19:20:00 +08:00
Kang 04333542f7 chore(dependencies): update package versions and sources in Cargo files
- Updated the `Cargo.lock` file to reflect new versions for several dependencies, including `bit-set` (0.11.1), `bit-vec` (0.10.1), and `glow` (0.18.0).
- Changed the source revisions for `alacritty_terminal`, `gpui`, and `zed` to their latest commits.
- Added new dependencies `borsh` and `borsh-derive` with version 1.8.1.
- Updated `Cargo.toml` to align with the new dependency versions and sources.

Validated with dependency resolution checks and build tests.
2026-10-20 01:14:16 +08:00
Kang 0da6d8d2e2 feat(document_language): implement document language recognition and enhance file type handling
- Added a new module for document language recognition, allowing the editor and file browser to identify file types based on extensions and filenames.
- Integrated language recognition into existing file handling functions, improving support for various programming languages and file formats.
- Updated tests to validate the recognition of source files and extensionless build files, ensuring accurate identification of supported languages.

Validated with comprehensive tests across multiple file types.
2026-10-19 22:25:57 +08:00
Kang 92de06b7ac chore(dependencies): update git references for multiple packages in Cargo files
- Updated the source references for several packages in Cargo.lock and Cargo.toml to point to new commits in the respective repositories.
- Changed `gpui`, `gpui-base`, `gpui-kit`, and `gpui_platform` to their latest commit hashes to ensure compatibility and access to recent changes.

Validated on Windows with workspace checks, tests, formatting, and all-target clippy.
2026-10-18 15:11:44 +08:00
Kang 2736e13ab6 chore(release): bump version to 2.0.0-preview.7 2026-10-17 23:49:03 +08:00
Kang 4ce2e3c94f feat(remote-desktop): implement resource management and error handling for uploads
- Introduced `uploads_stopped` flag in `RemoteDesktopSessionState` to manage upload states effectively.
- Enhanced error handling in remote desktop sessions to stop uploads on resource exhaustion and handle reconnection attempts.
- Added `release_inactive_textures` method to clean up unused textures when switching sessions.
- Implemented `TransferWire` for non-blocking transport capacity management during file transfers.
- Updated tests to validate new upload failure handling and resource management logic.

Validated on Windows with workspace checks, tests, formatting, and all-target clippy.
2026-10-17 09:30:10 +08:00
Kang 55883ade12 feat(theme): add custom theme management and CSS color parsing support
- Introduced a new `themes` module to manage custom themes, including a `ThemeCatalog` for storing and validating themes.
- Added support for CSS color parsing with the `csscolorparser` dependency, enabling advanced color handling in themes.
- Implemented a theme designer interface for users to create, edit, and manage custom themes, with options to import and export themes in JSON format.
- Enhanced the UI to reflect theme changes immediately, ensuring a seamless user experience when switching themes.
- Updated localization files to include new strings related to theme management features in multiple languages.
- Added tests to verify theme validation, import/export functionality, and color parsing accuracy.
2026-10-16 01:46:04 +08:00
Kang a631c475ce feat(terminal): integrate jsonc-parser for Windows Terminal compatibility (#908)
- Added `jsonc-parser` dependency to handle JSONC settings for Windows Terminal.
- Implemented `windows_terminal` module to resolve shell aliases and command lines from Windows Terminal settings.
- Enhanced `ResolvedLocalShell` to utilize the new alias resolution logic, improving shell command handling.
- Introduced tests for shell resolution and environment matching, ensuring accurate behavior with Windows Terminal profiles.
- Refactored local session creation to support the new shell resolution mechanism, enhancing overall session management.
2026-10-15 15:11:53 +08:00
Kang 9827c8d2a3 feat(tests): introduce TestAppCleanup for improved test context management
- Added a new `TestAppCleanup` struct to ensure proper cleanup of visual contexts in tests, preventing resource leaks.
- Updated existing tests to utilize `TestAppCleanup`, ensuring that visual contexts are released correctly at scope exit.
- Enhanced test reliability by verifying that cleanup occurs during both normal execution and panic scenarios.
- Refactored test fixtures to include `TestAppCleanup`, improving consistency across test cases.
2026-10-15 09:47:54 +08:00
Kang 43e81cbece fix(drag-and-drop): improve internal drag cancellation and hover handling (#901)
- Updated drag cancellation logic to ensure proper cleanup of internal drag states when the escape key is pressed or when a pointer cancel event occurs.
- Enhanced the handling of drop hover states across various components, ensuring that the UI reflects the correct state during drag operations.
- Added tests to verify the behavior of drag cancellation and hover states, ensuring robustness in user interactions.
- Refactored related functions for clarity and maintainability, improving overall code quality.
2026-10-14 23:50:10 +08:00
Kang 3cebee762f chore(dependencies): update gpui-kit references in Cargo files
- Updated the `gpui-base` and `gpui-kit` dependencies in `Cargo.toml` and `Cargo.lock` to point to the latest commit revision, ensuring access to recent changes and improvements.
- Added a new `NotificationDividerFixture` struct and corresponding tests in `root.rs` to enhance the UI's notification handling and interaction with dividers, improving user experience and functionality.
2026-10-13 20:23:23 +08:00
Kang 757be9d12d chore(release): bump version to 2.0.0-preview.6 2026-10-13 14:33:03 +08:00
Kang 1db8a4625f feat(tray): implement Linux tray functionality and update localization strings
- Added support for hiding and restoring windows to the system tray on Linux using the `x11rb` library.
- Introduced new methods in `linux.rs` for managing window visibility in the tray.
- Updated `workspaces.rs` to utilize the new tray functionality for window management.
- Enhanced localization strings across multiple languages for improved user experience when tray functionality is unavailable.
2026-10-13 13:44:17 +08:00
Kang a157bcdd01 chore(dependencies): update Cargo.lock and Cargo.toml for upstream revisions
- Updated dependencies for `alacritty_terminal`, `gpui`, `russh`, `russh-sftp`, `IronRDP`, and `vnc-rs` to their latest upstream revisions, ensuring compatibility and access to new features.
- Adjusted `Cargo.toml` to reflect the new git revisions for various packages, enhancing project stability and maintainability.
- Refined input handling in `nyaterm-ui` to improve user experience with dynamic input heights and right-click menu interactions.
- Added a new report documenting the synchronization of forks and the changes made during this update cycle.
2026-10-13 11:37:11 +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 e25be3f831 chore(dependencies): update git revisions for multiple packages and clean up localization strings
Updated the source revisions for several dependencies in Cargo.lock and Cargo.toml to the latest commits, including `gpui`, `gpui-base`, `gpui-kit`, and `gpui_platform`. Additionally, removed outdated drag-and-drop related strings from the localization files in English, French, Japanese, Korean, Simplified Chinese, and Traditional Chinese to streamline the user experience.
2026-10-07 22:31:02 +08:00
Kang 3493c2ffad feat(transfers): enhance drag-and-drop functionality for file transfers
Improved the drag-and-drop experience in the file transfer panel by adding support for dragging both files and directories. Updated the user interface to provide clearer feedback during drag operations, including new messages for drag preparation and readiness. Enhanced the underlying logic to handle multiple file types and ensure a seamless transfer experience. Additionally, introduced tests to validate the new drag-and-drop behavior across various scenarios, ensuring robustness and reliability.
2026-10-07 18:47:38 +08:00
Kang b00ae7cde0 chore(dependencies): update git revisions for multiple packages
Updated the source revisions for several dependencies in Cargo.lock and Cargo.toml to the latest commits. This includes changes for `gpui`, `gpui-base`, `gpui-kit`, and `gpui_platform`, ensuring the project uses the most recent versions from the respective repositories. Additionally, added new localization strings for drag-and-drop functionality in multiple languages within the nyaterm-desktop locale files.
2026-10-07 11:27:52 +08:00
Kang 8fd2e9a65a chore(release): bump version to 2.0.0-preview.5 2026-10-05 23:31:23 +08:00
Kang cec2ac6407 feat(plugins): improve runtime scheduling and draft provenance
Park idle guest workers and the epoch clock, and publish runtime faults as
explicit events. Prepare up to two replacements in the background while
serializing registry commits and preserving per-plugin request ordering.

Derive ABI constants and marker bytes from WIT. Retain ephemeral plugin/action
provenance through draft append, replacement and editing, with localized UI.
Preserve the V1 ABI, sandbox, package transactions and persisted formats.

Validation on Windows: cargo check --workspace; cargo test --workspace;
cargo fmt --all -- --check; cargo clippy --workspace --all-targets;
SDK guest builds, example component validation and SDK package verification.
2026-10-05 16:05:47 +08:00