Commit Graph
1942 Commits
Author SHA1 Message Date
fonaix 05d80677c7 feat(session_import): 为 WindTerm 连接导入添加账户关联流程
同步读取 onekeys.config 文件,并在 nyaterm 中添加对应账户并关联
2026-11-05 13:01:06 +08:00
fonaix 1d627306fd Merge branch 'nyakang:main' into main 2026-11-05 07:38:43 +08:00
Kang 06e3c3bb7e Merge branch 'main' of https://github.com/nyakang/nyaterm 2026-11-04 22:54:29 +08:00
Kang 9f007abb6d fix(ai): enable transcript text selection and context menus
Keep stable, scoped text states across streaming updates and virtualized rows. Use standard context menus with opening-time selection snapshots for Copy and Quote, preserving whitespace and composer focus.

Validated workspace check, tests, formatting and clippy, plus Linux Xvfb mouse, clipboard and focus interactions. Workspace tests ran as a temporary ordinary user: 5147 passed and 27 ignored. Preserve pinned dependencies and persistence formats.
2026-11-04 22:31:31 +08:00
Kang 70547300b3 refactor(settings): remove multi-open panel settings from UI and localization
- Removed the multi-open panel feature from the settings UI and corresponding localization strings in English, French, Japanese, Korean, Simplified Chinese, and Traditional Chinese.
- Updated the SettingsPresentation structure to eliminate references to the panel multi-open setting, streamlining the settings management.
2026-11-04 21:53:38 +08:00
Kang ab9495c119 refactor(tmux): improve error handling for seed commands and enhance session management
- Updated the handling of pending responses in the ControlSession to better manage errors during seed commands, ensuring that subsequent commands can still be processed correctly.
- Introduced new PendingKind variants to track the state of paused panes and seed commands, allowing for more robust session recovery.
- Added a test to verify that failed seed commands preserve the next snapshot and correctly retry paused panes, enhancing the reliability of session management.
2026-11-04 21:42:38 +08:00
Kang 6a206852d5 feat(settings): enhance settings panel appearance and functionality
- Updated the SettingsChrome structure to include new properties for surface and transparent colors, improving the visual consistency of the settings panel.
- Refactored the settings panel rendering logic to utilize the new chrome properties, ensuring proper background and section header transparency.
- Added a test to verify that window material and content opacity settings correctly affect the cached settings panel appearance.
- Introduced a content_background option in NyaSettingsLayout to allow for customizable backgrounds, enhancing flexibility in UI design.
2026-11-04 21:18:41 +08:00
fonaix 03c0148e2e Merge branch 'nyakang:main' into main 2026-11-04 20:27:26 +08:00
fonaix dbc510d0c2 refactor(quick_command): 重构快速命令分类选择的背景色逻辑并添加测试 2026-11-04 20:22:20 +08:00
Kang c280134417 test(native): enhance system control tests with Mutex for thread safety
Added a Mutex to ensure thread safety during system control initialization tests. Updated tests to manage multiple application sessions sharing the UI STA, verifying connection policies and resource management across threads.
2026-11-04 20:20:43 +08:00
fonaix 1339dbb716 feat(log): 添加日志分片大小配置功能
问题:我个人的2026-11-03的日志文件已经到达3.96GB,2026-11-04的日志文件也已经达到688MB。
解决:新增日志分片大小设置选项,允许用户自定义单个日志文件的最大字节数,达到该大小后自动切换到新的日志分片。同时增加多语言本地化支持,实现本地时间戳格式化和日志轮转逻辑,完善相关测试用例。
2026-11-04 19:59:14 +08:00
fonaix 6f68b7b5f3 fix(remote_desktop): RDP 连接方式为 ActiveX时,会导致程序卡死的问题
问题:当RDP连接方式为 ActiveX时,会话连接成功后,断开连接,编辑连接,点击会话选项卡时,程序会卡死。
解决:重构原生桌面会话的判断逻辑,抽取为独立的 native_surface_needed 函数,同时优化原生子表面模式的设置时机,避免模态窗口输入被拦截的问题
2026-11-04 19:08:04 +08:00
fonaix f59c3749b0 Merge branch 'nyakang:main' into main 2026-11-04 18:11:54 +08:00
fonaix 2817a4fb07 Merge branch 'main' of https://github.com/fonaix/nyaterm 2026-11-04 18:10:59 +08:00
fonaix 3e78bb7a74 fix(terminal): 实现行号锚点和保留行缓存策略优化
新增行号系统的基准跟踪,确保快照间行号一致性
实现保留行缓存的距离感知淘汰策略,提升滚动时的行覆盖率
新增转义状态模块用于安全的终端输入切片处理
重构终端核心逻辑,优化行号初始化和重排锚点机制
修复行号在重排和滚动时的基准漂移问题,提升滚动体验
新增相关测试用例验证缓存策略和行号正确性
2026-11-04 18:02:15 +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
fonaix 066104c93e Merge branch 'nyakang:main' into main 2026-11-04 17:38:59 +08:00
Kang cb3997d3e3 Merge pull request #1152 from nyakang/feat/ai-rust-genai-073
refactor(ai): migrate native providers to rust-genai 0.7.3
2026-11-04 17:36:43 +08:00
Kang 9b1a935cb9 refactor(ai): migrate native providers to rust-genai 0.7.3 2026-11-04 17:05:21 +08:00
Kang c95fa5b656 refactor(settings): remove unused dirty state handling in tab strip
Eliminated the conditional rendering of a warning indicator based on the 'dirty' state in the settings tab strip, streamlining the UI code for better readability and maintainability.
2026-11-04 17:01:13 +08:00
Kang b7cb4cfad5 fix(ssh): use 'command' prefix for rm to avoid alias issues
Updated the command strings for Bash, Zsh, and Fish shells to include the 'command' prefix before 'rm -rf', ensuring that the built-in shell aliases do not interfere with the intended behavior of the command.
2026-11-04 16:55:20 +08:00
Kang c1d77f4ae8 feat(settings): enhance search engine management and UI interactions
- Implemented functionality to collapse the open search engine editor when navigating away from the settings tab, ensuring a cleaner user experience.
- Removed the actions index from the search engine presentation state, simplifying the state management.
- Updated the search engine addition process to automatically open the editor for new entries while ensuring proper cleanup of previous inputs.
- Enhanced test coverage for search engine interactions, including adding and removing engines, and verifying UI behavior during state transitions.
2026-11-04 16:54:11 +08:00
Kang 7c85c9b789 feat(terminal): add alternating row stripe mode
Add an opt-in display-row mode with matching gutter backgrounds and stable colors through scrolling and history eviction. Preserve existing behavior by defaulting the new local setting to false, and update translations, documentation, and regression tests.
2026-11-04 16:42:05 +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
fonaix 607c35bf8c Merge branch 'nyakang:main' into main 2026-11-04 15:20:42 +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
fonaix cf02ce6b23 Merge branch 'nyakang:main' into main 2026-11-04 14:50:33 +08:00
Kang 9fed0698c6 fix(ai): 修复 ClaudeAgent 不可用的问题 2026-11-04 14:48:08 +08:00
fonaix 28fa85c797 Merge branch 'nyakang:main' into main 2026-11-04 14:11:49 +08:00
Kang 462e61f64a feat(remote-desktop): add system mstsc client mode 2026-11-04 13:48:18 +08:00
Kang 97e42b7215 fix(desktop): prevent sidebar stack resize panics and jumps
Use measured panel heights and rebase visible weights before dragging to preserve the 48px minimum without moving unrelated panels. Reject invalid geometry and use finite, ordered resize bounds while preserving existing settings formats.

Validation on Windows in an isolated checkout: cargo check --workspace; cargo test --workspace (5141 passed, 43 ignored); cargo clippy --workspace --all-targets; cargo fmt --all -- --check. Includes numeric and GPUI layout regression coverage. macOS hardware validation remains outstanding.
2026-11-04 13:47:22 +08:00
fonaix 32543edd49 Merge branch 'nyakang:main' into main 2026-11-04 12:52:24 +08:00
Kang 2920f1dcb3 feat(update): enhance update failure handling and localization support
- Introduced detailed classification for update failures, including specific package issues such as unexpected files, missing files, and signature verification failures.
- Updated localization files for English, French, Japanese, Korean, Simplified Chinese, and Traditional Chinese to reflect new update failure messages.
- Enhanced the update overlay to display appropriate failure messages based on the classification of the update failure.
- Implemented logic to maintain the visibility of release notes during the update process, improving user experience.
- Added tests to ensure the robustness of the new failure handling and localization features.
2026-11-04 12:03:37 +08:00
fonaix 3c47d9a0c6 fix(quick_commands):快速命令变量输入框丢失焦点的问题
添加occlude属性避免背景层拦截点击事件,确保变量输入框在被点击后保持焦点,同时点击背景仍能聚焦到变量提示,维持键盘操作的可用性。
2026-11-03 20:57:33 +08:00
fonaix be712b3271 feat(terminal): 行号显示的相关问题
添加了 `ensure_origin` 方法来固定行号原点,防止滚动修剪后重新基准化
添加了 `max_display_line_number` 方法来获取快照中的最大显示行号
修改了行号 gutter 宽度计算逻辑,使用最大显示行号而非仅总行数
修复了清除终端后行号 gutter 宽度未正确重置的问题
添加了相关测试以验证行号在滚动修剪、宽度重排和清除后的行为
2026-11-03 19:55:47 +08:00
Kang a7f5382766 refactor(sort): improve process and transfer entry sorting logic (#1065)
- Extracted sorting logic into dedicated functions for better readability and maintainability.
- Updated sorting to handle NaN values correctly, ensuring consistent ordering.
- Added comprehensive tests for process sorting and transfer entry comparisons to validate sorting behavior across various scenarios.
- Enhanced dock zone detection logic to prioritize edges at equal distances and handle NaN distances appropriately.
2026-11-03 19:06:21 +08:00
Kang 58a7929644 feat(ui): enhance command row highlighting and selection wash (#1131)
- Introduced `command_row_highlight_index` to determine the highlighted command row based on user selection.
- Added `command_row_selection_wash` to visually indicate the selected command row with a custom background.
- Updated the quick switch overlay to utilize the new highlighting and selection wash features for improved user experience.
- Added tests to ensure the highlighting and selection wash functionality works as intended.
2026-11-03 18:07:10 +08:00
Kang da26ec5f3e Merge pull request #1124 from WerVa/feat/dracula-theme
feat(ui): follow the official Dracula palette and add Dracula Light
2026-11-03 17:26:50 +08:00
Kang 5a39c55d4a Merge pull request #1133 from backkoom/fix/quick-switch-architecture
fix(shell): quick switch 模块不再违反架构检查
2026-11-03 17:26:37 +08:00
Kang f248da4f87 feat(settings): add terminal wrap mode and wrap markers options
- Introduced `TerminalWrapMode` enum to manage line wrapping behavior in the terminal.
- Updated `AppSettingsSummary` to include `terminal_wrap_mode` and `terminal_show_wrap_markers` fields.
- Enhanced settings panel to allow users to select wrap mode and toggle wrap markers visibility.
- Updated localization files for English, French, Japanese, Korean, Simplified Chinese, and Traditional Chinese to reflect new settings.
- Implemented logic to handle wrap mode in terminal rendering and selection processes.
2026-11-03 17:26:16 +08:00
backkoom 59aa69beb5 fix(shell): quick switch 模块不再违反架构检查
`#[path]` 属性被 `module_tree` 规则完全禁止,`use super::*;` 的豁免清单
也是空的——任何一处都算违规。#1130 引入的 quick switch 搜索模块同时踩中
这两条,导致 main 的 Lint 一直红。

改法:

- `quick_switch_search.rs` 移入 `quick_switch_runtime/` 目录,
  去掉 `#[path = "quick_switch_search.rs"]`,改用常规的 `mod` 声明。
  模块路径不变,别处无需改动。
- 测试模块里的 `use super::*;` 换成显式导入 `filter_quick_switch_items`
  与 `crate::models::QuickSwitchItem`。

`python scripts/ci/check_architecture.py` 通过,`cargo fmt --check` 通过,
nyaterm-desktop 2554 项测试全绿。
2026-11-03 17:17:01 +08:00
Kang 3bb1d66517 fix(ui): keep Dracula success labels readable on hover 2026-11-03 16:37:20 +08:00
Kang 768904827b Merge pull request #1132 from hualong1009/fix/transcript-local-timestamps
fix(recording): Transcript 日志时间戳改用本地时区
2026-11-03 16:16:28 +08:00
Kang afc8f9456c fix(quick_switch): match names and endpoints by field 2026-11-03 13:15:21 +08:00
fonaix 7e31eda0e4 fix(quick_switch): 为快速切换功能添加数字IP片段精确匹配规则 2026-11-03 13:15:11 +08:00
王浩生 52f9ed4bc4 fix(recording): write transcript timestamps in the local timezone
Per-record timestamps came from OffsetDateTime::now_utc while the
session header (Started), footer (Stopped) and the terminal display all
used the local clock, so a saved transcript read as if it happened hours
earlier or later than the session actually did.

Record, header and footer timestamps now share one local_now() helper
(local time with a UTC fallback where the local offset is unavailable),
and the saved transcript filename uses the same clock instead of UTC.

Fixes #1116
2026-11-03 13:11:22 +08:00
Kang 4b3f384c1f chore(locales): standardize sessionInfo translations across multiple languages
- Updated the translation for "sessionInfo" in English, French, Japanese, Korean, Simplified Chinese, and Traditional Chinese localization files for consistency.
- Removed the "editConnection" entry from Japanese and Korean localization files to streamline the translations.
2026-11-03 11:10:54 +08:00
Kang 1ab617d9ce feat(hover_card): add suspended state to NyaHoverCard for improved interaction handling
- Introduced a `suspended` state to the `NyaHoverCard` to manage interactions when competing surfaces are active.
- Updated the hover card's behavior to dismiss when suspended, enhancing user experience during overlapping interactions.
- Modified related methods to accommodate the new suspended functionality, ensuring proper opening and closing logic based on user actions.
2026-11-03 11:10:40 +08:00
Kang 84015d4542 Merge branch 'main' of https://github.com/nyakang/nyaterm 2026-11-03 09:25:07 +08:00