Add SSH-authenticated transports with independent settings, protocol-aware menus and snippets, and tmux session persistence.
Restore eligible iOS workspaces from encrypted transport checkpoints without adding a macOS recovery entry. Include schema migrations and regression coverage.
Keep explicit workspace and pane closure destructive for owned sessions, but let window dismissal disconnect clients and retain recovery references. Cover managed-session window closure and restoration.
Add extensible remote session backends, safe ownership and restore handling, and pane-scoped shell integration over the existing SSH connection.
Keep iOS workspaces in memory and rebuild expired Activity targets on demand. Integrate session selection into Connection Journey with consistent controls, cancellation behavior, and localized counts.
Localize German, French, and Korean demo content and capture workflows. Preserve real software keyboards and invariant numeric parsing during captures. Sort language choices by code and update the published documentation and marketing asset submodules.
Centralize route lookup, progress fencing, reconnect scheduling, and authentication continuation while retaining channel-specific teardown and persistence policies.
Validate architecture boundaries, authentication, reconnect, routing, and new regression coverage. The full macOS suite had two timing failures; both passed focused reruns.
Consolidate code that existed twice and drop code nothing reaches.
- SSH: hoist the duplicated ASCII hex-nibble decoder out of
RemoteCharsetConverter and SSHPTYChannel into SSHWireEncoding.hexDigit.
- Transcript: AgentToolDetail.Tint shares BatchTint's vocabulary, so the
byte-identical detailColor map now delegates to batchColor.
- Commerce: replace ProPaywallState's unreachable default branch and its
`preconditionFailure("Handled above")` with an exhaustive switch the
compiler can prove complete.
- Strings: delete the unreferenced Workspace.closePaneAction (the live help
text uses closePane) and its orphan catalog entry.
- Drop the unused SwiftData and UniformTypeIdentifiers imports.
Co-Authored-By: Claude Code <noreply@anthropic.com>
The toggle describes behavior in tray terms rather than as a hidden
launch, so rename the string to "Start minimized to system tray" and
sync the Japanese and both Chinese translations.
Co-Authored-By: Claude Code <noreply@anthropic.com>