Conchshell 2.5.6 (macOS + Linux)
Серверы без интерактивного шелла больше не «висят молча»
Подключение к SFTP-серверу (SFTPGo, internal-sftp с ForceCommand, chroot-джейл) проходило авторизацию, вкладка показывала «подключено» — и терминал оставался пустым. Ни приглашения, ни ошибки.
Причина: create_pty_session уходил в channel.request_pty(...).await без таймаута. Такие серверы канал принимают, а шелл не выдают и на запрос не отвечают — ожидание не заканчивалось никогда.
request_ptyиrequest_shellограничены таймаутом в 10 секунд.- Вместо пустого окна терминал печатает понятное объяснение (en/ru/zh-CN): у сервера нет интерактивного шелла, для файлов нужно подключение по протоколу SFTP.
- Цикл переподключений в этом случае гасится — он структурно бесполезен.
Файловый браузер открывает настоящую домашнюю директорию
Раньше SSH-вкладка всегда стартовала в захардкоженном /home. У chroot-аккаунтов, на macOS (/Users/...), в контейнерах и на BSD такого пути нет — первый листинг падал, и панель выглядела сломанной.
- Новая команда
get_remote_home_dirспрашивает у сервераpwdпо exec-каналу (MOTD в выводе не сбивает разбор). - Ответ кэшируется на подключение; браузер переходит туда, только если вкладку не переключили и пользователь сам никуда не ушёл.
- Кнопка «Home» и возврат при исчезнувшем каталоге тоже используют реальный home.
Тесты
Rust 87 passed, фронтенд 488 passed / 7 skipped. i18n-паритет: 944 ключа во всех локалях.