Commit Graph
3960 Commits
Author SHA1 Message Date
Kang 32e09cb19a docs(release): account for absent channel manifests during recovery 2026-10-26 14:44:30 +08:00
Kang 1827027fb3 chore(release): bump version to 2.0.0 2026-10-26 14:26:14 +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 8f76a60ceb chore: adopt GPUI as the main application 2026-10-26 14:12:10 +08:00
Kang 18e6f2dafe Merge pull request #992 from victorwon2001/fix/issue-590
fix(win7): 禁用原生透明窗口和不兼容的背景效果
2026-10-26 14:00:42 +08:00
victorwon2001 30f6463fae fix(win7): 禁用原生透明窗口和不兼容的背景效果 2026-10-26 14:49:15 +09:00
Kang 25ec4166af Merge pull request #984 from LunaSpica/suiyue/fix-reasoning-effort-text
fix(ai): 使用文字颜色和字重区分模型推理强度档位
2026-10-26 13:08:20 +08:00
Kang 1a8a86d99c feat(terminal): implement live surface frame handling and cursor presentation (#985)
- Added `terminal_cursor_presentation_for_snapshot` function to manage cursor visibility and style based on session state and snapshot data.
- Enhanced `terminal_live_surface_frame` to return the current frame and cursor blink basis, ensuring accurate rendering during live updates.
- Updated `apply_live_scroll_frame` to commit live text and geometry, improving synchronization between visual state and terminal output.
- Introduced tests for live surface frame behavior, ensuring correct handling of cursor visibility and scroll synchronization during various scenarios.
2026-10-26 10:18:34 +08:00
Kang 47da6936a0 fix(connection_import_overlay): adjust layout for connection import overlay (#986)
- Added flex property to the connection import overlay to improve layout responsiveness.
- Ensured the overlay adapts better to varying content sizes, enhancing user experience.
2026-10-26 09:37:07 +08:00
Yue-Sui 659614cce3 fix(ai): distinguish enabled reasoning efforts across themes 2026-10-25 21:21:06 +08:00
Kang e37ed8dd0f fix(single_instance): ensure nonblocking socket handling on macOS and add tests
- Updated handle_connection to set accepted sockets to nonblocking mode on macOS, allowing for proper EOF handling.
- Added a test to verify that nonblocking accepted sockets wait for the complete activation frame, ensuring correct behavior across platforms.
- Enhanced test coverage for socket connection handling and activation frame processing.
2026-10-25 19:54:12 +08:00
Yue-Sui feba012f9e fix(ai): highlight enabled reasoning efforts with text color 2026-10-25 19:46:58 +08:00
Kang c245e020f1 feat(terminal): enhance action link tooltip management and session handling
- Added session_id to ActionLinkTooltipState for improved tracking of tooltip sources.
- Implemented checks to ensure tooltips only display for visible sources, enhancing user experience.
- Updated terminal session handling to maintain consistent behavior across workspace tabs and sessions.
- Refactored related functions to streamline tooltip visibility logic and session management.
2026-10-25 18:14:41 +08:00
Kang 4f9d81301c Merge pull request #975 from moonmicah/feat/local-cwd-sync
feat(transport,desktop): sync local POSIX shell cwd to file browser
2026-10-25 16:50:20 +08:00
Kang 9a99aea746 fix(transport): clean shell startup files on session teardown
Keep integration files in a host-owned TempDir until ConPTY teardown and
worker joins finish. Use exec for the target shell so active session close
no longer depends on a bootstrap process running its EXIT trap.

Cover close during rc input, foreground execution, normal exit, and WSL
foreground teardown. Run the Git Bash lifecycle tests in Windows CI.

Validation on Windows:
- cargo check --workspace --locked -j 1
- cargo test --workspace --locked --no-fail-fast -j 1
- cargo fmt --all -- --check
- cargo clippy --workspace --all-targets --locked -j 1 -- -D warnings
- Explicit Git Bash ConPTY and WSL startup/close regressions

Architecture lint retains the existing admission.rs thread-builder and
table.rs raw-scroll violations; neither file is changed here.
No persistence contracts or pinned dependencies change.
2026-10-25 16:27:57 +08:00
Kang 9966edd05f fix(transport): preserve local shell startup and cwd namespaces
Install cwd-only hooks through supported interactive shell startup paths instead of delayed PTY writes. Preserve startup output and user input, detect the selected WSL login shell, and retain raw commands for unsupported launch modes.

Keep shell cwd in session state and translate only at the Windows browser boundary using the resolved launcher namespace. Emit canonical Windows URIs for MSYS mounts and retain the first output chunk after SSH integration timeout.

Validated on Windows x64: workspace check, workspace tests (-j 1), fmt, clippy, and four explicit WSL/Git Bash integration regressions including isolated Bash/Zsh/Fish rc input and cleanup. Architecture lint retains its two pre-existing failures outside this change. No persisted formats or forked dependency revisions changed. macOS was not available for local validation.
2026-10-25 15:32:56 +08:00
Kang 274b1154b8 Merge pull request #976 from victorwon2001/fix/issue-973
fix: 修复远程桌面 Ctrl+R 被 WebView 拦截
2026-10-25 13:23:11 +08:00
Kang fd9ccc98f1 refactor(locales): improve descriptions and consistency across language files
- Updated various descriptions in the English, French, Japanese, Korean, Simplified Chinese, Traditional Chinese locale files for clarity and consistency.
- Added new help text for smart auto-execute risk settings to enhance user understanding.
- Removed unnecessary descriptions from settings components in the UI for a cleaner presentation.
- Ensured uniformity in terminology and phrasing across all supported languages.
2026-10-25 13:16:55 +08:00
Kang 5ec8375770 refactor(settings): unify control widths for input elements across settings pages (#981)
- Removed hardcoded maximum widths for input controls, replacing them with a consistent width constant for better layout management.
- Updated various settings components to utilize the new `settings_input_control` function, ensuring uniformity in input element sizing.
- Adjusted test cases to reflect changes in input control dimensions, enhancing the robustness of the settings UI.
2026-10-25 13:01:55 +08:00
Kang a63dd48371 feat(connection_editor): implement save functionality for edited connections and add tests (#977)
- Introduced a new `save_editor_connection` function to handle saving edited connections, preserving metadata and usage order.
- Updated the connection editor logic to utilize the new save function, improving code clarity and maintainability.
- Added comprehensive tests to validate the behavior of saving connections, ensuring correct handling of group changes and metadata retention.
2026-10-24 16:46:24 +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 a0a9d5f5f8 feat(selection): introduce TerminalSelectionText management for clipboard operations
- Added TerminalSelectionText struct to manage clipboard selection states and statuses.
- Implemented methods for ensuring terminal selection text is available and handling copy requests.
- Enhanced terminal context menu to reflect selection states and manage pending copy operations.
- Updated tests to validate new selection text functionality and clipboard interactions.
2026-10-24 13:25:43 +08:00
victorwon2001 df6448dc74 fix: 修复远程桌面 Ctrl+R 被 WebView 拦截 2026-10-23 20:18:20 +09:00
Kang 679c43936d chore(release): bump version to 2.0.0-preview.9 v2.0.0-preview.9 2026-10-23 18:48:15 +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 d7f6569232 feat(cloud_sync): enhance snapshot management with new heads and synchronization features
- Introduced a new `heads` module to manage device heads and their synchronization states, improving cloud sync reliability.
- Added functionality to handle concurrent snapshot publications, ensuring both branches are retained until explicitly resolved.
- Enhanced the `CloudLocalStore` trait with `apply_sync_snapshot_checked` to validate content before applying snapshots, preventing conflicts.
- Updated the `CloudSyncState` and `RemoteSyncPointer` structures to include synchronization clocks, enabling better tracking of snapshot revisions.
- Implemented tests for concurrent head management and regression scenarios, ensuring robust handling of cloud sync operations.
2026-10-23 16:59:40 +08:00
Kang b92d3860d2 feat(ai): enhance chat request body construction with system prompt context (#970)
- Updated the `build_openai_compatible_chat_request_body_with_stream` function to include a detailed system prompt that incorporates remaining tool decisions, improving clarity for AI interactions.
- Added a new test to ensure that the system message is preserved correctly in both initial and continuation requests, validating the structure of messages generated.
- Refactored the handling of system messages in the `append_openai` function to maintain a single leading system message, ensuring consistent behavior across different contexts.
2026-10-23 16:57:07 +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
moonmicah 1ff2658fb5 fix(transport): decode OSC 7 percent escapes and escape literal percent in emitters 2026-10-23 16:50:27 +08:00
moonmicah b2fdb1e754 feat(desktop): translate POSIX local shell cwd to Windows browser paths
When a local session reports a POSIX cwd (WSL /mnt/* or drive-letter forms), translate it before storing/applying so the transfer browser follows cd to Windows drives automatically on Windows hosts.
2026-10-23 16:04:31 +08:00
moonmicah defa9abd51 feat(transport): inject shell integration into local POSIX sessions
Local PTYs for wsl.exe, Git Bash, zsh, and fish now receive the same prompt script SSH uploads, so they report OSC 7 working directories and OSC 133 command boundaries without rc-file setup. cmd, PowerShell, and plain sh keep raw output.

The reader suppresses the injected script's echo and the early prompt until the ready marker arrives. Suppression forwards terminal queries (CSI n, CSI c) because wsl.exe blocks until the emulator answers CSI 6 n, but drops cursor movement and styling so the hidden stream cannot paint. The injection clears the ConPTY screen before the ready marker so absolute cursor repaints cannot leave a blank gap, and local sessions use a 30 s window for WSL cold boot instead of the 8 s SSH window.

Local Windows browsers cannot list POSIX paths, so this also adds local_shell_cwd_to_browser_path for /mnt/<drive>, /d:/x, and /d/x forms.
2026-10-23 16:04:21 +08:00
Kang 23a5271b9d feat(transfers): enhance transfer job management with bulk admission and queuing
- Introduced a new `TransferAdmission` module to manage bulk transfer job admission and lifecycle.
- Updated transfer job status handling to include a "Queued" state, allowing for better management of concurrent transfers.
- Enhanced the reconciliation logic to support bulk job admission limits based on user-defined settings for download and upload threads.
- Added localization strings for transfer job statuses in multiple languages, improving user experience.
- Implemented tests to validate the functionality of the new bulk admission feature and ensure correct behavior across various scenarios.
2026-10-23 12:54:58 +08:00
Kang 9d6cd36eda feat(file_manager): enhance file manager settings and UI components
- Introduced new `FileManagerPaneUiSettings` and `FileManagerUiSettings` structures to manage layout and view preferences for file manager panes.
- Implemented compatibility logic to read and apply legacy settings, ensuring smooth transitions for existing users.
- Added localization strings for various file manager actions and statuses in multiple languages, improving accessibility and user experience.
- Created new input handling and layout modules for file manager panes, enhancing user interaction and visual organization.
- Updated tests to validate the functionality of new settings and ensure correct behavior across different scenarios.
2026-10-23 09:35:44 +08:00
Kang b982656dad feat(dialog): enhance dialog action button with autofocus capability
- Updated the dialog action button to include an autofocus feature, improving user experience by automatically focusing on the accept button when the dialog is opened.
- Refactored the button return type to explicitly use `NyaButton`, ensuring clarity in the component's usage within the dialog context.
2026-10-23 09:35:29 +08:00
Kang b58b45e22f feat(shell): enhance command construction for WSL and improve working directory handling (#950)
- Updated the command method in ResolvedLocalShell to accept an optional working directory, allowing for more flexible shell initialization.
- Implemented logic to handle WSL-specific working directory requirements, ensuring correct path handling for both Windows and Linux environments.
- Added tests to validate the behavior of working directory configurations for WSL, ensuring expected command arguments and current working directory settings.
- Introduced a new test module for WSL to cover various scenarios related to working directory handling and command execution.
2026-10-22 23:53:29 +08:00
Kang c34221f935 Merge pull request #968 from yaoxinghuo/fix/tmux-cc-named-keys
fix(tmux): send special keys by name in control mode
2026-10-22 23:49:59 +08:00
Kang 42d45c35ce fix(tmux): preserve input protocol state across flushes
Keep bracketed paste tracking on each virtual pane, including markers split across flushes, without delaying literal input or Escape.

Pass parameterized CSI R through to avoid consuming cursor position reports as F3. Reject unsupported, empty, and overflowing key parameters instead of silently dropping modifiers.
2026-10-22 23:28:03 +08:00
Kang 7c90679435 Merge pull request #969 from yaoxinghuo/feat/tmux-detach-warning
feat(tmux): tint the detach button with the warning color
2026-10-22 23:13:03 +08:00
Kang 0c24d63e87 feat(session): implement session key management and reset protocols
- Added functionality to clear pressed keys for terminal sessions upon disconnection and reconnection, ensuring accurate input state management.
- Introduced methods to reset session input protocols without affecting screen state or history, enhancing the robustness of session transitions.
- Updated tests to validate the behavior of key handling during session reconnections, ensuring that input states are correctly managed across transitions.
2026-10-22 22:35:57 +08:00
Kang cfc6604dc5 feat(dialog): improve focus ring preservation in dialog components
- Added padding to dialog content to ensure focus rings are preserved at vertical edges, enhancing accessibility and visual clarity.
- Updated the dialog content method to include a scrollable body with appropriate padding, preventing clipping of focus indicators.
- Introduced a test to validate that focus rings are correctly displayed for input fields within dialogs, ensuring consistent user experience.
2026-10-22 21:59:43 +08:00
Terry YaoandDevin 4668b4ec4f feat(tmux): tint the detach button with the warning color
Detaching drops every pane view of the control session at once, unlike
the neighboring additive actions (split, new window). The warning tint
flags it as the one strip action worth a second look without reading as
destructive — the remote session survives and can be reattached.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-22 21:42:25 +08:00
Terry YaoandDevin f612a904b6 fix(tmux): keep bracketed paste payloads literal in control mode
Bytes between ESC[200~ and ESC[201~ reach the pane as pasted text, so a
payload copied from a terminal must not be reclassified: escape
sequences inside the markers stay on the send-keys -H path.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-22 21:31:24 +08:00
Terry YaoandDevin 34dc747689 fix(tmux): send special keys by name in control mode
Pane input was injected verbatim via `send-keys -H`, which delivers the
client TERM's sequences to a pane running a different TERM — xterm's End
(`ESC [ F`) reached a `screen`/`tmux` pane expecting `ESC [ 4 ~`, so vim
printed a stray `F` (`H` for Home).

Recognized special-key sequences are now sent as `send-keys` key names
(Home/End/IC/DC/PPage/NPage/F1-F12/arrows/BTab with C-/M-/S- modifiers)
so tmux re-encodes them for the pane's own TERM — the same translation a
normal tmux client applies on its input side. All other bytes still go
through `send-keys -H` unchanged.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-22 21:31:24 +08:00
Kang 0a9085f123 feat(shortcuts): refine terminal shortcut context handling and add tests for paste behavior
- Updated terminal shortcut context to prevent input conflicts by ensuring that terminal shortcuts do not trigger when in input mode.
- Enhanced the shortcut resolution logic to accommodate nested input scenarios, preserving expected paste behavior in search fields.
- Added tests to validate the correct invocation of terminal paste shortcuts and their interaction with input contexts, ensuring robust functionality.
2026-10-22 21:30:50 +08:00
Kang 556685049f Merge pull request #960 from llyVictory/feat/agent-custom-instructions
feat(ai): 支持内置 Agent 附加指令
2026-10-22 20:56:57 +08:00
Kang 0eb9b29a3b feat(title_bar): add macOS double-click handling for title bar resizing (#963)
- Implemented double-click functionality on the title bar for macOS to toggle fullscreen mode.
- Added logic to prevent event propagation for nested drag areas, ensuring consistent behavior during title bar interactions.
- Enhanced user experience by adhering to macOS system preferences for window management.
2026-10-22 20:04:11 +08:00
Kang cf0352ccb9 feat(telnet): enhance text input handling and newline processing (#964)
- Introduced a new `TelnetInputState` struct to manage text input policies independently of Telnet negotiation.
- Refactored input handling to support configurable newline behaviors based on `TelnetEnterMode`.
- Updated tests to validate the correct submission of locally edited text and newline handling across different configurations.
- Removed deprecated functions related to input normalization and line editing, streamlining the codebase.
2026-10-22 19:36:40 +08:00
Kang 950be4a283 feat(contrast): implement minimum contrast ratio adjustments and tests (#966)
- Introduced a new method to apply minimum contrast ratios for terminal text against backgrounds, enhancing readability.
- Refactored existing palette application logic to utilize the new contrast ratio functionality.
- Added tests to validate the correct application of minimum contrast ratios across various settings.
- Updated terminal rendering components to support the new contrast adjustments, ensuring consistent visual output.
2026-10-22 18:50:20 +08:00
Kang a5fcaa7836 chore(.gitignore): update artifacts path to simplify ignore rules 2026-10-22 18:50:04 +08:00