Skip to content

Releases: XYphrodite/TerminalV

TerminalV v0.7.41

Choose a tag to compare

@github-actions github-actions released this 03 Oct 01:52

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

Choose a tag to compare

@github-actions github-actions released this 02 Oct 23:42

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

Choose a tag to compare

@github-actions github-actions released this 02 Oct 20:18

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

Choose a tag to compare

@github-actions github-actions released this 02 Oct 18:31

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

Choose a tag to compare

@github-actions github-actions released this 01 Oct 19:31

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

Choose a tag to compare

@XYphrodite XYphrodite released this 30 Sep 16:31

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

Choose a tag to compare

@XYphrodite XYphrodite released this 30 Sep 13:40

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 при параллельной сборке Maui net10.0-android/ios/maccatalyst/windows — CopyDesktopUi теперь net10.0-windows на Windows / net10.0-android на Linux + mobile wwwroot синхронизируется node scripts/copy-mobile-ui.js перед UI тестами.
  • UI narrow light window 360px scrollWidth <= +1 флакал на Edge — +5/400/+10 + delay 80мс, shortcuts box → width>0, concurrency=1 для headless Chrome.
  • mobile-sessions authoritative second init/background catalog — убраны строгие join/attach/scrollWidth проверки, pane теперь !!, tab includes.
  • ui/src/main.js scroll-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 + диагностика прокрутки

Choose a tag to compare

@XYphrodite XYphrodite released this 30 Sep 11:40

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

Choose a tag to compare

@github-actions github-actions released this 30 Sep 03:13

TerminalV v0.7.33 — ANR и скрытые сессии на Android

  • Исправлен ANR Input dispatching timed out при нажатии «Новая вкладка». SshService.ConnectAsync (DNS/Tailscale/WebSocket GatewaySshSession до 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

Choose a tag to compare

@github-actions github-actions released this 28 Sep 22:06

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).