feat: implement asset sorting and persistence in AssetView - #437
Merged
Conversation
- decouple authentication endpoints from forwarding configuration - support multiple external Agent endpoints and NyaTerm stored keys - add shared fingerprint allowlist and AllowAll policies - add Agent broker with protocol limits, signing controls, timeouts, and key-change invalidation - migrate legacy Agent forwarding settings - update runtime IPC, import/snapshot handling, UI, i18n, documentation, tests
…config # Conflicts: # src-tauri/src/cmd/connection.rs # src-tauri/src/config/connection.rs # src-tauri/src/config/mod.rs
…config # Conflicts: # src-tauri/src/core/portable_snapshot/tests.rs
nyakang
approved these changes
Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds configurable SSH Agent authentication and Agent forwarding
support to NyaTerm.
The SSH Agent endpoint used for login authentication is fully decoupled
from Agent forwarding. Agent forwarding now supports multiple external
SSH Agents and can combine them with NyaTerm's saved private keys. The
identities exposed to remote processes are controlled by a unified
fingerprint allowlist or an explicit
AllowAllpolicy.Background
Previously, SSH Agent authentication and forwarding shared a single
endpoint, which did not support the following use cases:
socket;
and saved private keys;
keys.
Main Changes
SSH Agent Configuration
auth_agent_endpointfor SSH Agent loginauthentication.
agent_forwarding_configfor Agent forwarding.explicit ordering.
Agent Forwarding Sources and Policies
Agent forwarding supports the following sources:
Both source types use the same identity policy:
AllowAll.Security behavior:
AllowAllrequires explicit risk confirmation;communicates with them only through the SSH Agent protocol.
Agent Broker
Add an SSH Agent forwarding broker responsible for:
private keys;
saved private keys;
concurrency;
timeouts;
To preserve extension behavior for external Agents, raw protocol relay is
used only when all of the following conditions are met:
AllowAll.All other configurations use the Agent Broker so that identity filtering
and signing routing can be enforced.
Runtime Behavior
forwarding Agent connection and does not send an
auth-agent-reqrequest to the server.
channels.
target.
Configuration Migration
Existing configurations remain readable and are migrated in one
direction:
agent_endpoint→auth_agent_endpoint;agent_forwarding→agent_forwarding_config.An existing
agent_forwarding: truevalue is migrated to:AllowAllpolicy;Legacy fields are not serialized again after migration. No additional
V1/V2 dual-model configuration is introduced.
UI and IPC
section.
AllowAll.translations.
get_ssh_agent_forwarding_identitiesTauri command.errors from identity preview IPC; private key material is never
returned.
Persistence and Synchronization
configuration.
restoring a cross-platform backup.
keys.
Documentation
Update the SSH connection documentation to explain:
AllowAll;Validation
The following validation has been performed:
limit, and fault-isolation tests;
tests;
cargo check --all-targets;pnpm lint;pnpm i18n:check;pnpm build;OpenSSH Agent authentication and NyaTerm saved private-key
authentication.
Known Issue
The Windows arm64 test environment is a local, non-domain Windows
account. As a result, the Pageant integration test currently fails in
the vendored Pageant transport implementation.
The relevant dependencies are vendored, so this PR does not make
unrelated upstream library changes. The issue is being tracked
separately:
The Pageant issue is independent of the SSH Agent forwarding
architecture implemented in this PR.