780 Commits
Author SHA1 Message Date
Kang 95c8b4ab48 feat(rdp): enhance RDP client selection and connection handling
- 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.
2026-10-08 13:23:39 +08:00
Kang ec5e47ee59 chore: bump version to v1.3.0 2026-10-07 23:43:24 +08:00
Kang ba7da69e25 refactor(session): replace fetch_update with compare-exchange loops for atomic operations
- 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.
2026-10-07 23:22:40 +08:00
Kang b35e71906a chore(docker): update environment variables and configurations for web deployment
- 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.
2026-10-07 20:33:49 +08:00
Kang 7b6c2cf544 feat(ai): enhance AIAssistantPanel with saved groups and connections (#481)
- 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.
2026-10-07 13:36:38 +08:00
Kang 073c0d5a20 feat(security-auth): implement drag-and-drop sorting for SSH keys and passwords (#738)
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.
2026-10-07 13:01:23 +08:00
Kang edf0813d93 test(web): drain SSH fixture channels under output backpressure 2026-10-07 11:36:52 +08:00
Kang b676b00bdc test(web): order continuous SSH output before stop acknowledgement 2026-10-07 11:22:27 +08:00
Kang bceaed3ce0 chore(web): merge main and preserve runtime adapters 2026-10-07 11:22:08 +08:00
victorwon2001 0ef5d1be48 feat: add Windows Remote Desktop client option 2026-10-07 10:00:10 +09:00
Kang 0ae11a4e5c refactor(session): enhance socket loop for improved message handling and output management
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.
2026-10-06 13:01:30 +08:00
mengshouer 59b4c7ae31 fix(recording): bound incremental transcript replay
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.
2026-10-05 19:46:00 +08:00
Kang cbf6004b96 fix(plugins): use reorganized store catalog endpoint
Load public/v1/plugins.json, document the Store layout and upgrade requirement, and verify generated catalogs with the runtime parser.
2026-10-05 02:35:18 +08:00
Kang dc4c0116e2 fix(ci): stabilize web merge checks 2026-10-04 23:24:21 +08:00
Kang 1423f1538a fix(ci): repair web merge checks 2026-10-04 22:46:42 +08:00
Kang 8bc63a2b54 feat(backup): implement legacy password handling for desktop imports and enhance encryption validation for connection credentials 2026-10-04 20:00:44 +08:00
Kang 9f68379fb8 feat(web): enhance web functionality with backup and import/export features, improve logging configuration, and add end-to-end tests for UI components 2026-10-04 19:16:29 +08:00
Kang cf84f0764a feat(web): enhance web deployment with Playwright integration for end-to-end testing and add CI workflow for automated checks 2026-10-04 16:48:38 +08:00
Kang 9c14602b27 feat(web): add web API inventory and compatibility audit documentation for enhanced command coverage and interface tracking 2026-10-04 14:08:59 +08:00
Kang ed348d88e2 feat(vnc): add VNC support for web, including frame subscription and clipboard management; enhance proxy settings and session handling for Telnet and VNC protocols 2026-10-04 10:38:46 +08:00
Kang 60c15946de feat(web): allow insecure HTTP connections via environment variable NYATERM_WEB_ALLOW_INSECURE_HTTP 2026-10-04 01:16:30 +08:00
Kang 5d1df9e237 feat: add web deployment support 2026-10-04 00:56:09 +08:00
Kang 7f42ffb39e feat(proxy): implement proxy settings in AI configuration, including support for system, direct, and custom modes; enhance UI for proxy management in AiGeneralTab and AiModelsTab; add tests for proxy functionality and validation 2026-10-03 22:53:15 +08:00
Kang 8debbfbc9f feat(plugins): add signed marketplace and standalone authoring CLI
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.
2026-10-03 21:00:30 +08:00
Kang 2b123a67a3 fix(gpu-monitor): update to version 1.0.1, resolving CRLF line ending issues in scripts; enhance validation and error reporting for GPU probe execution 2026-10-03 19:10:01 +08:00
Kang e5b7daad99 feat(gpu-monitor): introduce GPU monitoring plugin with validation, build scripts, and documentation; enhance plugin development guidelines 2026-10-03 18:57:34 +08:00
Kang bb0c24d5e5 feat(plugin): add new plugin creation, packaging, and example commands; enhance Vite config and documentation for plugin development 2026-10-03 16:09:58 +08:00
Kang 3eb38492a5 fix(serial): avoid flushing the port after each command on Windows to prevent input stalling (#795) 2026-10-03 01:18:47 +08:00
Kang 86879ec58e feat(serial): implement flow control selection in SerialForm and integrate with NewSessionPage (#794) 2026-10-03 01:01:34 +08:00
Kang f79818c319 Merge pull request #823 from jeeinn/fix/gitee-gist-sync-capacity
Fix/gitee gist sync capacity
2026-10-01 21:26:43 +08:00
Kang 1a1c77fc53 fix(sync): account for snapshot overwrites in capacity pruning 2026-10-01 20:46:40 +08:00
Kang 0fb704b726 fix(sync): protect remote heads during capacity pruning 2026-10-01 20:20:41 +08:00
Kang 5b331dbbb0 fix(sync): limit capacity recovery to gitee snippets 2026-10-01 19:59:40 +08:00
Kang be061b2467 fix(sync): make gist capacity cleanup safe 2026-10-01 19:41:33 +08:00
Kang e15af8f6c5 fix(vnc): prevent stale trusted key writeback 2026-10-01 18:26:34 +08:00
Kang 28c7115504 fix(vnc): guard server trust and route verification to owner windows
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.
2026-10-01 17:28:31 +08:00
victorwon2001 64d592cf41 fix(vnc): support RA2_256 Raspberry Pi connections 2026-10-01 15:28:38 +08:00
Kang 642c0de88b Merge pull request #827 from developerjillur/fix/694-exported-prompt-command
fix(ssh): keep child shells working when PROMPT_COMMAND is exported
2026-10-01 15:19:28 +08:00
Kang b895c80b29 fix(ssh): keep prompt hook out of child shells 2026-10-01 15:16:57 +08:00
Kang 3de2029125 feat(terminal): improve PowerShell prompt handling for virtual environments
- 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.
2026-10-01 14:55:48 +08:00
sgnay 28d9a7b24d Merge branch 'nyakang:main' into feat/package-manager-support 2026-10-01 06:30:46 +08:00
sgnay f6cadb1eb2 feat(packaging): support external package managers 2026-09-30 15:16:12 +08:00
Kang a0c0ee5b1d feat(agent): enhance conversation history management in agent interactions (#825)
- 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.
2026-09-30 13:24:50 +08:00
Jillur Rahman f9a4f3b8c5 fix(ssh): keep child shells working when PROMPT_COMMAND is exported
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.
2026-09-30 09:18:29 +06:00
jeeinn b54917809c fix(sync): make gist capacity handling reliable and self-healing
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
2026-09-30 10:58:55 +08:00
jeeinn a096009812 feat(sync): implement gist capacity handling and recovery actions
- 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.
2026-09-29 23:53:41 +08:00
Kang 1ef75d1bbb feat(env): implement Windows environment variable handling (#821)
- 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.
2026-09-29 18:57:35 +08:00
Kang fb48336f55 feat(recording): enhance session management with pane ID support
- 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.
2026-09-29 16:27:35 +08:00
Kang 9b9b57069a chore: bump version to v1.2.12 2026-09-29 01:55:41 +08:00
Kang 505ccfef3c feat(sftp): add shell availability support and enhance SFTP command execution (#773)
- 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.
2026-09-28 10:55:57 +08:00