Commit Graph
758 Commits
Author SHA1 Message Date
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
Kang de44b58f02 Merge pull request #802 from LunaSpica/feat/ai-provider-model-settings
feat(ai): 重构供应商与模型设置,完善连接测试和推理配置
2026-09-27 21:19:47 +08:00
Kang e6699580d4 feat(zmodem): enhance ZMODEM upload command handling and add tests for control escaping (#740, #803)
- Refactored `buildZmodemReceiveCommand` to include control escaping options for overwrite and skip modes.
- Introduced new tests for `buildZmodemReceiveCommand` to validate command generation.
- Updated ZMODEM header and transmission logic to support control escaping, ensuring proper handling of control characters during transmission.
- Added tests to verify control escaping functionality in the ZMODEM protocol.
2026-09-27 18:32:30 +08:00
Yue-Sui 2d06062600 feat(ai): refactor provider and model settings 2026-09-27 16:08:00 +08:00
Kang 334817dbff feat(terminal): implement synchronized binary input handling for XTerminal
- Added `sendSessionBinaryInputWithSync` function to broadcast binary input to sync peers.
- Updated `XTerminal` component to utilize the new function for handling binary input with peer synchronization.
- Enhanced tests to verify the correct broadcasting of binary input to multiple peers without text bookkeeping.
- Introduced `escape_telnet_application_data` function to handle IAC byte escaping for telnet transport.
- Added tests for the new escaping functionality to ensure proper data handling in telnet sessions.
2026-09-26 23:59:13 +08:00
Kang 280272aaaf feat(terminal): add binary input handling to XTerminal and session management (#444)
- Implemented `sendSessionBinaryInput` function to send binary data to terminal sessions.
- Enhanced `XTerminal` component to handle binary input events, ensuring proper data transmission.
- Updated session commands to support raw data writing, allowing for better handling of binary inputs.
- Added tests for binary input functionality to ensure accurate data processing without text bookkeeping.
2026-09-26 23:27:23 +08:00
Kang 1dd59a0a39 Merge pull request #796 from nyakang/fix/issue-792-platform-default-shell
fix(local-terminal): use platform-specific default shells
2026-09-26 19:31:04 +08:00
Kang 1d0f302783 fix(local-terminal): use platform default shell (#792) 2026-09-26 19:00:35 +08:00
Kang 2ce1972ea3 fix(connection): change attribute from expect to allow for single use lifetimes
- Updated the `create_gcc_blocks` function to change the attribute from `#[expect(single_use_lifetimes)]` to `#[allow(single_use_lifetimes)]`, addressing stability concerns with anonymous lifetimes in `impl Trait`.
2026-09-26 11:14:21 +08:00
Kang 31d1c51edb feat(conpty): integrate bundled ConPTY support and verification (#488)
- Added scripts to prepare and verify the Microsoft ConPTY package for Windows.
- Updated build workflows to include checks for bundled ConPTY in installers.
- Enhanced application support info to display ConPTY status and version.
- Modified the portable updater to handle ConPTY files during updates.
- Updated documentation to reflect changes in ConPTY usage and requirements.
- Introduced tests for ConPTY backend functionality to ensure reliability.
2026-09-26 08:53:48 +08:00
Kang 8174db0860 feat(rdp-clipboard): enhance file transfer capabilities and update clipboard format handling
- Introduced a new atomic boolean to manage file transfer availability.
- Updated clipboard advertisement methods to reflect the new file transfer logic.
- Improved handling of clipboard formats based on file transfer capabilities.
- Updated UI component to use a more descriptive translation for clipboard options.
2026-09-24 14:06:24 +08:00
Kang d48a0f8ba4 feat(pane-focus): implement pane focus mode and native fullscreen functionality
- Added state management for pane focus mode and native fullscreen in the App component.
- Introduced keyboard shortcuts to toggle pane focus and native fullscreen.
- Updated the AppLayout and PaneWorkspace components to support the new focus mode, ensuring inactive panes remain mounted but hidden.
- Enhanced the file transfer context to handle RDP events, allowing users to paste files after RDP transfers.
- Added translations for new clipboard options and updated relevant UI components to reflect these changes.
- Improved test coverage for pane focus behavior in the PaneWorkspace component.
2026-09-23 08:59:30 +08:00
Kang 527cbbb80a chore: remove ironrdp-client and ironrdp-connector dependencies
- Deleted the entire `ironrdp-client` and `ironrdp-connector` directories, including all associated files such as Cargo.toml, Cargo.lock, and source code.
- This cleanup removes unused components from the project, streamlining the codebase.
2026-09-23 08:56:01 +08:00
Kang 4f89328c8e chore: bump version to v1.2.11 2026-09-22 09:13:43 +08:00
Kang 28ac23f868 feat(file-explorer): add upload folder contents functionality (#750)
- Implemented `handleUploadFolderContents` to allow users to upload the contents of a selected local directory.
- Integrated the new upload option into the File Explorer context menu, toolbar, and list items.
- Enhanced error handling and user notifications for empty uploads and failures during the upload process.
- Updated relevant components to support the new upload feature, ensuring a seamless user experience.
2026-09-21 23:14:18 +08:00
Kang 9b55c706e4 feat(cloudSync): update sync debounce time and enhance settings validation (#744)
- Increased the `sync_debounce_seconds` from 15 to 60 to improve sync performance.
- Added new fields to `CloudSyncState` for better tracking of remote validation and garbage collection attempts.
- Implemented a function to detect changes in sync settings, ensuring notifications are sent only when necessary.
- Refactored cloud sync manager to optimize settings replacement and remote check logic.
- Added tests for new functionality and validation logic.
2026-09-21 00:26:15 +08:00
Kang 8e4aa6e238 Merge pull request #724 from nyakang/fix/issue-722
fix(telnet): allow closing tabs during pending connection
2026-09-18 18:17:45 +08:00
Kang 74055b5f25 fix(telnet): cancel pending connection creation 2026-09-18 18:02:43 +08:00
Kang 37e8ec2f75 fix(ai): avoid UTF-8 panic when truncating agent output 2026-09-18 17:45:01 +08:00
Kang 536fac1ce8 fix(terminal): guard local terminal on old Windows 2026-09-18 11:40:06 +08:00
Kang 9f59805cad Merge branch 'main' of https://github.com/nyakang/nyaterm into feat/sftp-clipboard-safe 2026-09-18 00:31:27 +08:00
Kang b7f9f7db89 feat(file-explorer): rework SFTP copy cut paste 2026-09-18 00:27:54 +08:00
Kang 159fb888d8 Merge pull request #717 from nyakang/fix/docker-compose-command-fallback
fix(docker): support standalone Docker Compose v2
2026-09-17 22:37:24 +08:00