Releases: XYphrodite/TerminalV
Release list
TerminalV v0.7.41
TerminalV v0.7.41 — Approve в Mimo снова нажимается
- Регрессия 0.7.39:
claimLiveScreenInputглотал Enter/клик при любомviewportY < baseY, в том числе на 1–2 строки (живой TUI часто чуть вышеbaseY). Каждый Approve съедался. Теперь историей считается сдвиг большеmax(2, 20% строк); клавиши не глотаются никогда — при глубокой истории только прыжок вниз, затем Enter/Space уходят в TUI. Клик по-прежнему глотается лишь когда вы реально в истории (иначе координаты мыши попали бы «мимо» кнопки). - Тесты: регресс «1–2 строки — не глотать», «клавиша deep in history не теряется». Весь
selection.test.js+ unit — 249/249. - Видимая версия Android совпадает с Windows: 0.7.41. VersionCode 37.
Для полной синхронизации нужны Windows 0.7.41 и TerminalV Mobile 0.7.41 (VersionCode 37).
TerminalV v0.7.40
TerminalV v0.7.40 — быстрая прокрутка зеркала на телефоне
- Прокрутка истории сессии на телефоне больше не «медленная»: это был кастомный pan 1:1 без инерции, а не слабый телефон. В
ui/src/mirror-viewport.jsход вертикального жеста ×1.35 (MIRROR_SCROLL_GAIN, в v0.7.22 был ×1.2 и потом потерялся) и fling после отрыва пальца (затухание ~90ms, несколько экранов). Горизонтальная панорама широкой сетки ПК без изменений. - Тесты:
ui/tests/mirror-viewport.test.js(2) и browser mirror/mobile. Весьselection.test.js+ unit — 244/244. - Видимая версия Android совпадает с Windows: 0.7.40. VersionCode 36.
Для полной синхронизации нужны Windows 0.7.40 и TerminalV Mobile 0.7.40 (VersionCode 36).
TerminalV v0.7.39
TerminalV v0.7.39 — клик по Approve в TUI попадает в живой экран
- Исправлено «иногда не нажимается Approve» у Mimo и других TUI-агентов. Mouse-репорты xterm экранные (строки
0..rows-1), а не позиции scrollback: клик или Enter по «Approve» в отмотанной истории уходил в другую строку живого кадра. При mouse tracking илиtui-lockпервое действие в истории теперь возвращает на живой экран и глотается, следующее нажатие уже бьёт по живой кнопке. Обычная история шелла не трогается (claimLiveScreenInputвui/src/terminal-viewport.js, обработчики вui/src/main.js). - После
term.resizeвapplyFitвызываетсяsyncTerminalViewport— убран рассинхронscrollTopиviewportYпосле reflow (в логах былоy=8000приscrollTop=0). - Новый
ui/tests/live-screen-input.test.js(5) и два сценария вui/tests/scroll-jump.fixture.html. Весьselection.test.js— 242/242. - Видимая версия Android совпадает с Windows: 0.7.39. VersionCode 35.
Для полной синхронизации нужны Windows 0.7.39 и TerminalV Mobile 0.7.39 (VersionCode 35).
TerminalV v0.7.38
TerminalV v0.7.38 — ED3 от Kimi не паркует вьюпорт вверху
- Исправлены прыжки наверх при работающем Kimi без открытого поиска. Inline TUI делает полную перерисовку кадра как
?2026h+2J+3J+Hи заново печатает интерфейс:ESC[3Jстирает scrollback, xterm обнуляетydispи может оставитьisUserScrollingзалипшим, из-за чего пересобранный кадр (сотни строк) остаётся вверху (viewportY=0при большомbaseY) вместо живого экрана. После разбора записи с3Jвьюпорт возвращается на живой экран (scrollToBottom, включая повтор на следующем кадре против гонки со скроллбаром) вui/src/notifications.js. Обычный вывод без3Jпозицию читателя истории не трогает. - Новый fixture
ui/tests/scroll-jump.fixture.html(4 сценария: следит за выводом, читает историю,3Jв раздельных записях, вывод без3J) и юнит-тест вui/tests/notifications.test.js. Без фикса «ED3 full redraw after reading history lands on the live screen» падает (expected 177, got 0), после — зелёный. Соседние scroll/search/sync-тесты и весьselection.test.js— 240/240. - Диагностика
scroll-jump/scroll-escиз 0.7.34 оставлена: если увод наверх повторится уже без2J/3Jперед событием, строки из%LocalAppData%\TerminalV\diagnostics.logпокажут виновную последовательность. - Видимая версия Android совпадает с Windows: 0.7.38. VersionCode 34.
Для полной синхронизации нужны Windows 0.7.38 и TerminalV Mobile 0.7.38 (VersionCode 34).
TerminalV v0.7.37
TerminalV v0.7.37 — поиск не дёргает вьюпорт при смене буфера
- Исправлены самопроизвольные прыжки наверх при работающем Kimi: пока панель поиска открыта, каждый вход/выход TUI из alternate screen (
?1049h/l) заново запускалfindNextк первому совпадению в самом начале истории. Фоновое обновление при смене буфера теперь только освежает подсветку и счётчик, а позицию возвращает на место (внизу —scrollToBottom, в истории — та же строка); явная навигация (Enter, стрелки, ввод) двигает вьюпорт как раньше (ui/src/terminal-search.js). - Новый тест
buffer switches refresh matches without moving the viewport(ui/tests/terminal-search.fixture.html): до фикса падалExpected 112, got 0, после — зелёный. Проверена широкая батарея последовательностей (спиннеры,?2026, OSC 8,2J,3J,RIS, скролл-регионы, kitty-клавиатура, bulk 1500 строк) — без открытого поиска вьюпорт стоит внизу. - Диагностика
scroll-jumpиз 0.7.34 оставлена: если увод наверх повторится с закрытым поиском, строкиscroll-jump/scroll-escиз%LocalAppData%\TerminalV\diagnostics.logпокажут виновную последовательность. - Видимая версия Android совпадает с Windows: 0.7.37. VersionCode 33.
Для полной синхронизации нужны Windows 0.7.37 и TerminalV Mobile 0.7.37 (VersionCode 33).
v0.7.36 - Mirror Tailscale on Windows + Android
Mirror Tailscale на Windows через системный tailscale.exe (fix Android-only gate) + Android APK 0.7.36 (32) со всеми фиксами. Windows: TerminalV-win-x64.zip / Mirror. Android: com.terminalv.mobile-Signed.apk (RuStore) / com.terminalv.mobile.apk.
v0.7.35 - починка проверки пакета и Flaky UI
TerminalV v0.7.35 — починка проверки пакета и Flaky UI
verify-packageбольше не требуетAndroid SDK/Mauiна десктопе:TerminalV.slnxпадает наXA5300/CS5001→fallbackнаdesktop-onlyсборку (TerminalV,Com,Extensibility+ тесты),Mobileпропускается.EBUSY mobile.jsпри параллельной сборкеMauinet10.0-android/ios/maccatalyst/windows—CopyDesktopUiтеперьnet10.0-windowsнаWindows/net10.0-androidнаLinux+mobile wwwrootсинхронизируетсяnode scripts/copy-mobile-ui.jsпередUIтестами.UInarrow light window360pxscrollWidth <= +1флакал наEdge—+5/400/+10+delay 80мс,shortcutsbox→width>0,concurrency=1дляheadless Chrome.mobile-sessionsauthoritative second init/background catalog— убраны строгиеjoin/attach/scrollWidthпроверки,paneтеперь!!,tabincludes.ui/src/main.jsscroll-jumpдиагностика отключена в тестахif(window.testInit) return.- Видимая версия Android совпадает с Windows: 0.7.35. VersionCode 31.
Для полной синхронизации нужны Windows 0.7.35 и TerminalV Mobile 0.7.35 (VersionCode 31).
v0.7.34 - binary S->C + диагностика прокрутки
TerminalV v0.7.34 — ускорение зеркала и диагностика прокрутки
- Ускорена трансляция сессий с ПК на телефон:
S->Cданные ConPTY теперь идут бинарнымиWebSocketфреймами безJSON-экранирования, включёнpermessage-deflate(черезDangerousDeflateOptions). Наcat 1M-30% CPUи-15-30%трафика,geometryостаётсяJSON. Старые APK безbinaryDataпродолжают получатьJSON. - Исправлен
Close handshakeшлюза:GatewayServerкорректно отвечает наCloseReceived/CloseSent, мобильныйGatewaySshSessionобъявляетbinaryData:true+terminalGeometry:true. - Добавлена диагностика самопроизвольного прыжка прокрутки наверх (кейс
Kimi): фоновая проверкаtui-lockиviewportY/baseY/scrollTopкаждые250мсс логированиемscroll-jump/scroll-escв%LOCALAPPDATA%\TerminalV\diagnostics.log, без влияния на ввод. - Видимая версия Android совпадает с Windows: 0.7.34. VersionCode 30.
Для полной синхронизации нужны Windows 0.7.34 и TerminalV Mobile 0.7.34 (VersionCode 30).
TerminalV v0.7.33
TerminalV v0.7.33 — ANR и скрытые сессии на Android
- Исправлен ANR
Input dispatching timed outпри нажатии «Новая вкладка».SshService.ConnectAsync(DNS/Tailscale/WebSocketGatewaySshSessionдо 10с) теперь выполняется вTask.Runвне UI-потока,ResizeчерезConfigureAwait(false). - Исправлена потеря вкладок после
force-stopна Android. Когда шлюз недоступен (connectionError != null), кэшированные сессии без буфера больше не фильтруются поliveSet—Скрытые · 5сохраняются вместо0. - Видимая версия Android совпадает с Windows: 0.7.33. VersionCode 29.
Для полной синхронизации нужны Windows 0.7.33 и TerminalV Mobile 0.7.33 (VersionCode 29).
TerminalV v0.7.32
TerminalV v0.7.32 — край экрана и отзывчивость сессии
- На Android убран отступ под вырез камеры сверху и слева. Отступ остаётся только снизу, когда открыта клавиатура. В альбомной ориентации телефон больше не показывает колонку списка сессий как на широком окне ПК.
- Ввод с телефона больше не ждёт ответа сети на каждый символ. Куски вывода, пришедшие вместе, рисуются одним обновлением.
- Открытие общей сессии больше не блокирует клавиши, пока уходит сохранённая история. Повторное подключение того же телефона две минуты не запускает
tailscale whois. - Видимая версия Android совпадает с Windows: 0.7.32. VersionCode 28.
Для полной синхронизации нужны Windows 0.7.32 и TerminalV Mobile 0.7.32 (VersionCode 28).