- Added options for selecting between built-in RDP and Windows Remote Desktop in the settings and connection menus.
- Updated connection handling to respect user preferences for RDP client mode during connection attempts.
- Introduced context menu actions for opening RDP connections with specified client modes.
- Enhanced documentation for RDP session types to clarify client selection behavior.
- Added tests to ensure correct behavior of RDP client mode selection and connection handling across different platforms.
- Simplified atomic operations in SessionCommandQueueMetrics by replacing fetch_update with custom compare-exchange loops for better clarity and performance.
- Added new utility functions for saturating atomic addition and subtraction for both usize and u64 types.
- Introduced tests to ensure that counters saturate correctly at their limits in both session command metrics and terminal presentation step counters.
- Removed NYATERM_WEB_PUBLIC_URL from docker-compose.yml and related files, replacing it with NYATERM_WEB_BASE_PATH for improved path management.
- Adjusted Dockerfile and README to reflect changes in environment variable usage.
- Enhanced validation logic in auth module to support multiple host configurations without a public URL.
- Updated tests to ensure compatibility with the new base path configuration.
- Updated AIAssistantPanel to include savedGroups and savedConnections in the app state.
- Added tests to validate the integration of selected connection metadata and runtime profiles in AI chat requests.
- Refactored buildAIContext to support new group and session information, ensuring sensitive data is redacted before processing.
- Introduced new types and context fields in AIContext to accommodate additional metadata for connections.
Added a new `useSecretListSorting` hook to manage the drag-and-drop functionality for reordering SSH keys and passwords. Updated the `KeyManagementTab` and `PasswordManagementTab` components to utilize this hook, allowing users to reorder entries visually. Introduced sort_order property to both SshKey and SavedAccount types to maintain the order of entries. Added tests to ensure the sorting functionality works as expected.
Updated the socket loop to read control frames and heartbeats more effectively, ensuring buffered terminal output is prioritized during backend cancellations. Introduced new logic for handling continuous output commands in the Echo struct, allowing for better management of session detachment during abrupt transport losses. Enhanced test coverage for continuous output scenarios to validate session behavior under network disruptions.
Prevent long-running TUI output without line feeds from growing an
unbounded pending line and repeatedly rebuilding it on the output path.
Keep the line and cursor across chunks, split oversized transcript lines,
bound CSI expansion, and preserve echo filtering across forced segments.
Add focused regressions for these bounds and raw recording preservation.
Verify Store packages against pinned Ed25519 keys and catalog metadata, persist installation provenance, and add Marketplace review and installation UI while preserving unsigned local packages.
Bundle standalone plugin authoring tools and add a six-platform CLI packaging workflow. Official key initialization and protected signing environment setup remain separate rollout steps.
Persist server keys only after authenticated RA2 and RFB initialization, guarded against cancellation and stale generations. Preserve owner routing through creation, restoration, and reconnect, and clear resolved verification prompts.
Keep the compatible RSA range, honor the configured 8192-bit maximum, support both documented and TigerVNC random lengths, and add protocol, storage, and frontend regressions.
- Updated the PowerShell prompt initialization to better manage virtual environment prompts, ensuring that the original prompt is preserved and restored correctly.
- Added a new test to validate that the virtual environment prompt survives idle repairs and deactivation, preventing recursive prompt issues.
- Enhanced the prompt wrapper logic to avoid cycles when dealing with shared delegates, improving overall stability.
- Introduced `build_initial_agent_conversation` function to construct the initial conversation with prior messages, ensuring context is maintained across sessions.
- Implemented logic to filter and limit history messages based on session ID and specified history turns.
- Updated `run_agent_stream` to utilize the new conversation building function, improving the handling of user input and assistant responses.
- Added unit tests to validate the correct restoration of previous turns and session-specific history management.
When the login shell exports PROMPT_COMMAND (for example from
/etc/profile), the bash shell integration line keeps that export, so
`su`, a nested `bash` and zellij panes inherit "__nyaterm_prompt; ..."
without the function. They print
"bash: __nyaterm_prompt: command not found" before every prompt, and
the user's own hook sees $? = 127.
For an exported PROMPT_COMMAND, call the hook through a variable that
is not exported. Child shells then skip it and run the rest of
PROMPT_COMMAND with the real $?. A non-exported PROMPT_COMMAND is
installed exactly as before.
A full Gitee snippet could wedge cloud sync for good: the API answered 200
without storing the new snapshot file, the read-back verification then reported
a missing snapshot, and that failure was classified as non-retryable, so even
automatic checks stopped until the settings changed.
- verify gist PATCH responses so a silently dropped write or an ignored delete
surfaces as an explicit error instead of a missing-snapshot mystery
- treat a response without a files map as unknown rather than rejected
- count every file in the gist, including entries outside the current sync
root: the managed listing alone made capacity math far too optimistic
- keep the hard file limit Gitee-only, since GitHub gists have no such cap
- prune capacity before every upload path (push, recovery, legacy migration),
best effort, and only when the upload would exceed the limit, so the common
case costs one count request instead of reading every snapshot
- classify SnapshotNotAccepted/RemoteFileRejected as retryable again, and
publish CloudSyncStatus.error_code so the UI stops matching English error
prose to decide whether to offer its recovery action
- offer the capacity recovery action for gist providers only
- Added logic to detect gist capacity sync failures and introduced a recovery button in the SyncBackupTab for users to clean remote snapshots and retry the push.
- Updated internationalization files to include new strings for the recovery action and hints regarding gist capacity limits.
- Enhanced cloud sync management to prune snapshots before uploads to avoid exceeding gist file limits, improving overall sync reliability.
- Implemented tests to ensure proper functionality of the new gist handling features.
- Added support for reading and expanding Windows environment variables from the registry.
- Introduced `RegistryEnvValue` struct to manage registry values and their expandability.
- Implemented `reg_value_to_env` and `expand_environment_value` functions for converting registry values to environment variables and expanding them recursively.
- Enhanced `merge_windows_env` function to merge system and user environment variables, ensuring proper handling of expandable values.
- Updated the environment retrieval logic to utilize the new functions, improving compatibility with Windows environment management.
- Added `paneId` to `PendingTabCreation` and updated related functions to handle recording scope IDs for various session types.
- Implemented logic to finish recording scopes when sessions are disconnected or finalized, ensuring proper resource management.
- Updated session creation functions to accept and utilize `recordingScopeId`, improving the integration of recording features across different session types.
- Enhanced tests to validate the new recording scope functionality and ensure isolated pane behavior during session management.
- Introduced `shell_available` field in `AutoRemoteFs` and `SftpBackend` to manage shell command execution availability.
- Updated SFTP command execution to return an error if shell commands are attempted in SFTP-only sessions.
- Enhanced logging for SFTP directory read operations and identity resolution processes.
- Added a new constant for SFTP execution timeout to improve command handling.