- Add resolve_safe_ui_font to gracefully resolve UI fonts across all platforms.
- If default system UI fonts (.SystemUIFont) or requested custom fonts cannot be resolved (e.g. on minimal Linux distros like Gentoo/Arch without desktop fonts installed), automatically fallback to embedded Maple Mono NF CN font.
- Prevents GPUI runtime text system panic: 'failed to resolve font .SystemUIFont or any of the fallbacks'.
- Redesign sidebar layout and management mode:
- Add explicit "Edit" / "Done" toggle button in the sidebar header to toggle connection management mode cleanly.
- Remove top sidebar Import/Export buttons and move them into the Settings dialog ("配置文件与备份" / Config File & Backup page).
- Remove the bottom right Switch toggle widget from sidebar layout.
- Add a full-width "+ 新增分组" button below the connection filter search box in Edit Mode.
- Improve connection item click UX:
- Make the entire connection row clickable in non-edit mode to immediately launch saved sessions.
- Hide redundant external link icon button in non-edit mode for a cleaner sidebar appearance.
- Allow user resizing of sidebar width down to 200px while maintaining default 310px.
- Fix tab bar hover panic & dropdown navigation:
- Remove duplicate `.hover(...)` call on tab close button to resolve GPUI runtime debug assert panic ("hover style already set").
- Update tab bar '+' dropdown menu second item to "打开连接" (Open Connection), triggering the Session Selector Dialog (`show_selector_dialog`).
- Add corresponding localization strings in English and Simplified Chinese.
Add AuthMethod::Config: parse ~/.ssh/config and list concrete host
entries in the connection dialog. Selecting an entry pre-fills
host/port/user/identity file and connects.
- Extract shared key utilities into session::ssh_keys
(private_keys_with_algs, normalize_inline_private_key,
authenticate_with_default_keys, session_has_explicit_key), reused by
backend::ssh and sftp to remove duplication.
- Add session::ssh_config parser for ~/.ssh/config (Host/HostName/User/
Port/IdentityFile), skipping wildcard patterns and Match/Include.
- Key auth now falls back to default keys (~/.ssh/id_*) when no explicit
key path or inline content is provided.
- Preserve escaped \r\n normalization in normalize_inline_private_key
when refactoring into the shared module.