Releases: PavelLizunov/suflyor
Release list
Suflyor v0.37.0
Suflyor v0.37.0 promotes the owner-accepted RC16 build to stable.
Highlights:
- reliable long-text read-aloud: the player stays visible until audio actually finishes;
- remembered playback speed applies from the first audio frame of a new tile;
- opening another tile no longer steals an active or paused player;
- substantially improved rendering of matrices, fractions, roots, systems, and common algebraic notation;
- restored reliable left-click recovery from the Windows tray;
- agent workflow now keeps post-release branches, RC artifacts, worktrees, and build caches under control.
Known backlog after the macOS port:
- some less-common TeX commands can still appear as raw text;
- tray icon right-click can fail to open the custom menu on the owner's Windows.
Suflyor v0.36.0
Suflyor v0.36.0
This release keeps saved memory exactly as approved, removes Suflyor's
auxiliary windows from the Windows taskbar, and makes interface language more
consistent.
Highlights
- Explicitly saved memory from tiles and transcripts is now stored verbatim,
preserving internal whitespace, newlines, table rows, identifiers, and
repetitions. Approved memory is no longer rewritten in the background. - Added an explicit Restore original action for legacy memory entries that
still have their original source. Manual edits disable restoration so newer
user changes cannot be overwritten. - Auxiliary windows no longer create or briefly flash a Windows taskbar
button. Taskbar exclusion is requested before the first visible frame, with
a shared hardened Win32 tool-window fallback. - Deterministic tile chrome, notices, statuses, and errors now follow the
selected interface language; generated answers continue to follow the
separate AI response-language setting. - Polished Session Archive alignment, row actions, and scrollbar spacing, and
refreshed the public screenshots with the current privacy-safe English UI.
Compatibility
- Legacy memory entries can be restored only when an older version retained
their original source; already-condensed entries without that provenance
cannot be reconstructed automatically. - Windows 10/11 remains the supported platform. Native Linux and macOS versions
are planned, with no announced delivery date.
suflyor v0.35.3
suflyor v0.35.3
This release focuses on clearer setup and diagnostics, safer session handling,
and more predictable local speech and AI controls.
Highlights
- Added guided speech-to-text provider and cloud Whisper model selection.
- Added a consistent drag grip to the wizard and movable auxiliary windows.
- Improved Help, Archive, empty answer tiles, Diagnostics, and audio-source
labels so the app is easier to understand without an explanation. - Fixed local-AI context preset selection on high-RAM systems.
- Added visible, debounced notices when the configured session cost cap is hit.
Reliability
- Kept transcription suppressed correctly while read-aloud is playing or
paused, then resumes it after playback. - Moved persistence work off the UI thread and flush session journals before
exit. - Verifies the effective Windows capture-exclusion state and reports stealth
failures instead of silently claiming success. - Fixed diarization model installation and window lifecycle handling.
- Preserved journal response semantics and expanded translation guards.
Engineering and security
- Updated Slint, base64, and TTS dependencies.
- Added regression-tested fast CI for documentation-only changes.
- Removed the Slint MCP debug server from normal production builds; UI QA can
still enable it explicitly with theui-mcpCargo feature.
Windows 10/11 remains the supported platform. Native Linux and macOS versions
are planned, with no announced delivery date.
Validation
- Full local gate and mandatory pre-push checks passed for all three Rust crates.
- GitHub Actions Rust gate, gitleaks, and all cargo-deny jobs passed.
- Live Slint MCP before/after audit and the complete 13-shortcut smoke passed.
- Independent Qwen 3.8 release audit:
READY. - The normal non-MCP release binary reports product/file version 0.35.3.
Installer SHA-256: 957F6853832079D3955F7E6333A2601CCC36F5E530E6BBDD04C81BC2BDCDA0D9
suflyor v0.35.2
suflyor v0.35.2
This release fixes local-model installation and hardware detection.
Changes
- 4B, 12B, and 26B-A4B can be selected and downloaded on any hardware. RAM/VRAM estimates are advisory and no longer hard-block a model.
- Near-nominal RAM/VRAM readings are normalized, including PCs with an enabled integrated GPU alongside a discrete NVIDIA GPU.
- Existing legacy 4B and installed 12B models remain detected across upgrades instead of being downloaded again.
- Managed model downloads use immutable pins, verify integrity, and resume interrupted transfers.
- Model, OCR, and TTS download helpers no longer open visible console windows.
Validation
- Full local gate and pre-push gate passed for all three Rust crates.
- GitHub Actions Rust gate, gitleaks, and all cargo-deny jobs passed.
- Independent Qwen 3.8 release-blocker review: PASS.
Installer SHA-256: 4E7249AAD5D75E9B161CF148BEF83D8CF216CA2C0C76E255A15D854216397AF1
suflyor v0.35.1
suflyor v0.35.1 — надёжность локальных моделей и Vision
Исправлено
- Gemma 26B-A4B теперь поддерживает Vision через совместимый проверяемый projector; F8 работает и настройка сохраняется.
- Исправлен неверный размер Gemma 12B в метаданных 0.35.0; частичная загрузка корректно продолжается и больше не принимается за готовую модель.
- Исправлены статусы установки и выбор локальных моделей, включая пользовательские GGUF.
- Убрано крайнее нулевое положение контекста и уменьшены задержки при переключении размеров.
- Исправлены лишние отступы и прокрутка общих карточек Settings.
- Исправлена надёжность Shift+Alt+1 после отпускания модификаторов.
Проверка
- Полный локальный gate прошёл для всех трёх Rust-crate.
- GitHub CI, security и cargo-deny прошли успешно.
- Все 16 вкладок Settings проверены через Slint MCP.
- Vision Gemma 26B-A4B и F8 проверены на реальной локальной модели.
suflyor v0.35.0
suflyor v0.35.0 — локальные модели и управление контекстом
Что нового
- Добавлен выбор окна контекста: Auto, 8K, 16K, 32K, 64K и 96K.
- Настройки показывают предварительную оценку потребления VRAM для выбранного контекста.
- Возвращён быстрый профиль Gemma 4B; доступны профили 4B, 12B QAT и 26B-A4B.
- Для каждой модели явно показан статус: активна, установлена или не установлена.
- Установка локального AI повторно использует проверенные файлы и продолжает частичные загрузки.
- Запись сессии больше не запускается автоматически вместе с приложением.
- Исправлено поведение курсора над скрытым оверлеем в stealth-режиме.
- Выровнены размеры полей, кнопок и слайдеров на всех вкладках Settings.
- Добавлена обязательная визуальная проверка интерфейса через Slint MCP.
Проверка
- Владелец визуально принял сборку 0.35.0.
- Все 16 вкладок Settings проверены при размере 720×600.
- Полный локальный gate и GitHub CI для PR и
masterпрошли успешно. - Независимая проверка Qwen: SHIP, без critical/important замечаний.
Известно
- Дополнительная полировка крайнего положения и плавности ползунка контекста запланирована на следующую мини-версию.
suflyor v0.34.0
suflyor v0.34.0 — качество озвучки, диаризации и интерфейса
Что нового
- Neural TTS произносит числа, проценты, время, версии, диапазоны и десятичные значения естественными русскими словами.
- Диаризация склеивает короткие разрывы и осколки, автоматически выбирает число говорящих и сохраняет стабильную WeSpeaker-модель.
- Auto-sweep останавливается сразу после вырожденного кандидата: reference-аудио 6:29 ускорено примерно с 6:00 до 1:41 без изменения выбранных трёх голосов.
- Длинный STT-блок со сменой голоса показывает все значимые подписи (
Говорящий 1 + Говорящий 2), а не только доминирующую. - Плеер стал чище на скоростях 2×/3× благодаря расширенному WSOLA crossfade.
- Интерфейс Settings, overlay bar и тайлов приведён к общей системе отступов.
- Все SVG приведены к сетке 16×16 и stroke 1.6; разные действия получили отдельные понятные иконки.
Техническое
- Slint обновлён до 1.17.1.
- Обновлены global-hotkey, rfd, reqwest, rodio, timestretch и sha2.
- Добавлены icon guard и security-проверки cargo-deny для всех трёх crates.
- Системный звук теперь обозначается привычной иконкой динамика в стиле Windows.
Проверка
- Полный CI: fmt, clippy и тесты всех трёх crates — PASS.
- Backend: 481 passed; TTS sidecar: 9 passed; UI/guard тесты — PASS.
- Release build, NSIS installer и live smoke
v0.34.0— PASS.
v0.33.0 — Hermes: установка плагина в один клик
suflyor v0.33.0 — интеграция с Hermes: установка в один клик
Локальный двусторонний мост между suflyor и Hermes-агентом. Всё по умолчанию выключено, включается во вкладке Настройки → Hermes. Никаких скриптов и распаковок — установка целиком из приложения.
Установка плагина — одна кнопка
Настройки → Hermes → «Установить плагин в Hermes»: приложение само кладёт файлы плагина в Hermes, прописывает токен и включает плагин (комментарии в твоём config.yaml сохраняются — правка точечная). Повторный клик безопасен (обновление). После установки — перезапусти Hermes.
① Мост: Hermes читает suflyor
Токен-защищённый HTTP-сервер: недавние созвоны, стенограммы, сводки, полнотекстовый поиск, одобренная память, профили; предложение факта в память (идёт в очередь на одобрение) и создание/обновление профиля. 9 инструментов + команда /suflyor.
Хост привязки настраивается: по умолчанию 127.0.0.1 (Hermes на той же машине); для удалённого Hermes по Tailscale — Tailscale-IP этой машины (100.x) или 0.0.0.0 (Настройки предупреждают; токен обязателен всегда). Ручная установка плагина на удалённый сервер: integrations/hermes-plugin/README.md.
② API: suflyor дергает Hermes для профиля
Кнопка «Подготовить профиль (Hermes)» отдаёт вводную агенту (он ресёрчит) и пишет активный профиль созвона. Живой путь ответов не затронут.
Безопасность
Мост: bearer-токен обязателен (пустой ⇒ не стартует), только текст (без аудио/скринов), тела не логируются, generic-ошибки, loopback по умолчанию. Установщик плагина: .env правится line-merge'ем (остальное байт-в-байт), нечитаемый .env — стоп, а не перезапись; нестандартный YAML не трогается (подсказка hermes plugins enable suflyor).
Установка: suflyor-slint-setup.exe → меню Пуск → suflyor. Приёмка тестером: docs/retest-hermes-v0.33.0.html (плагин ставится кнопкой — шаг H1b).
v0.32.0 — Hermes integration (bridge + agent plugin)
suflyor v0.32.0 — двусторонняя интеграция с Hermes
Локальный двусторонний мост между suflyor и Hermes-агентом. Всё по умолчанию выключено, включается во вкладке Настройки → Hermes.
① Мост: Hermes читает suflyor
Токен-защищённый HTTP-сервер, который локальный (или доступный по Tailscale) Hermes-агент читает через плагин:
- недавние созвоны, стенограммы, сводки, полнотекстовый поиск;
- одобренная память и профили созвонов;
- предложить факт в память (идёт в очередь на одобрение, не напрямую) и создать/обновить профиль.
Хост привязки настраивается: по умолчанию 127.0.0.1 (Hermes на той же машине); для удалённого Hermes по Tailscale впишите Tailscale-IP этой машины (100.x) или 0.0.0.0. При не-loopback адресе Настройки показывают предупреждение — токен обязателен в любом случае.
② API: suflyor дергает Hermes для профиля
Кнопка «Подготовить профиль (Hermes)» в редакторе профилей отдаёт вводную агенту (он ресёрчит) и пишет активный профиль созвона. Живой путь ответов это НЕ трогает (остаётся быстрым/локальным).
Плагин для Hermes
suflyor-hermes-plugin.zip — распакуйте, запустите install.ps1, следуйте README.md. Zero-deps (stdlib urllib), 9 инструментов + команда /suflyor.
Безопасность
Мост: bearer-токен обязателен (пустой токен ⇒ не стартует), только текст (без аудио/скринов), тела ответов не логируются, generic-ошибки. По умолчанию loopback.
Установка: suflyor-slint-setup.exe → меню Пуск → suflyor. Приёмка тестером: docs/retest-hermes-v0.32.0.html.
suflyor v0.31.0
suflyor v0.31.0
🧠 Память: отвечает по фактам (фикс «нет информации»)
- Вопрос теперь выбирает релевантные факты из одобренной памяти, а не слепо 8 последних (раньше факт №9+ молча выпадал → «в моей базе нет информации»).
- Нечёткий матч имён: сокращения («Влад» ↔ «Владислав»), склонения («у Влада»), и даже опечатки в фамилиях («Писчанкин» ↔ «Писчаскин») находят нужный факт.
- Если совпадений нет — память подмешивается как раньше (всегда).
- Модель получает явную инструкцию: вопрос о факте из памяти → ответ ИЗ памяти.
📸 Скрин-тайл: перегенерация умным облаком
- В меню «⋯» тайла ответа по скриншоту появился пункт Smart cloud — переотправляет тот же скриншот в умную облачную модель и обновляет ответ (как у текстовых тайлов). Тайл помечается «cloud (escalated)».
- Пункт показывается, когда первый ответ шёл через локальную модель и настроен облачный ключ; в OCR-режиме его нет (намеренно).
🖱 Плашка ввода: перетаскивание + память позиции
- «Напишите вопрос ассистенту» теперь таскается мышью за заголовок в любое место (включая второй монитор).
- Позиция запоминается — после закрытия и даже перезапуска плашка открывается там же. Если сохранённая позиция ушла вместе с отключённым монитором — вернётся в центр.
🔒 Безопасность
- Обновлена транзитивная зависимость
crossbeam-epoch0.9.18 → 0.9.20 (RUSTSEC-2026-0204).
Тестеру: чек-лист приёмки — docs/retest-v0.31.0-tz.html в репозитории (открыть в браузере, заполнить, «Скачать отчёт»).
Установка: скачайте suflyor-slint-setup.exe ниже, установите и запустите установленный suflyor (ярлык из меню «Пуск»).