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 `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.
- Added flex property to the connection import overlay to improve layout responsiveness.
- Ensured the overlay adapts better to varying content sizes, enhancing user experience.
- 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.
- 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.
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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 `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.
- 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.
- 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.
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.
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.
- 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.
- 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.
- 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.
- 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.
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.
- 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.
- 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.
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>
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>
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>
- 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.
- 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.
- 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.
- 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.