Commit Graph

  • e81026b9f5 Слои записи и оверлей берут стт-статус и сессию из единого GlassesStt dev subochev 2026-09-07 04:27:05 +03:00
  • 7db0fc71de Слои записи и оверлей берут стт-статус и сессию из единого GlassesStt subochev 2026-09-07 03:59:15 +03:00
  • 8083978849 Слой записи владеет микрофоном и распознаванием, движок — только диалогом subochev 2026-09-07 03:27:31 +03:00
  • 1b817aa9a6 Сохраняем прогресс просмотра и возобновляем с позиции subochev 2026-09-07 01:09:44 +03:00
  • 79a500150d Пейринг RayNeo: кнопка ручного (без QR) ре-паринга + debug-роуты + keep-screen-on main subochev 2026-09-04 03:08:38 +03:00
  • f68ea10342 Сборка release: подпись ключом Binom (v2+v3) + таск assembleSigned subochev 2026-09-04 03:08:28 +03:00
  • 5c86ed00b4 STT: очки распознают речь локально и шлют готовый текст (SttText) в телефон subochev 2026-09-04 03:08:26 +03:00
  • 0b3f9ff975 Mirror: медленный list(500) не роняет каталог и не дёргается в цикле subochev 2026-09-02 23:02:56 +03:00
  • 40723fa584 Каталог: массовые действия (конвертировать/скачать/удалить), фильтр «только скачанные» и BackHandler вложенных экранов subochev 2026-09-02 22:38:54 +03:00
  • 728116662e Добавляем WatchProgressStore (watchprogress.json) и его тесты subochev 2026-09-02 22:38:30 +03:00
  • 0cfd92a68f Добавляем экран «Активность»: что сейчас конвертируется и скачивается subochev 2026-09-02 22:37:31 +03:00
  • f656f43e10 Сохраняем прогресс просмотра и возобновляем с позиции subochev 2026-09-02 20:55:00 +03:00
  • 1b28760c6e Добавляем в бейдж каталога статусы загрузки и готовности видео на очки subochev 2026-09-02 19:53:21 +03:00
  • b2e2d2697d Добавляем индикатор рассинхронизации звука и видео в статус-панели очков subochev 2026-09-02 19:27:11 +03:00
  • 92b483a5e3 Добавляем свёрнутый блок результата тула в чат с раскрытием по тапу subochev 2026-09-02 02:49:48 +03:00
  • edf7cf63f6 Внедряем единый тул-канал для локального LiteRT и удалённого LLM-клиента subochev 2026-09-02 02:42:00 +03:00
  • d5e60a2565 Заменяем litertlm-android 0.14.0 на KMP-обёртку litert-google 3 subochev 2026-09-01 18:46:18 +03:00
  • 4587e22b50 Приложение добавляет OpenAI-совместимый HTTP-сервер и KMP-обёртку LiteRT subochev 2026-09-01 18:45:25 +03:00
  • e18b82642f audio-sync: учитывать латентность линка очки→телефон subochev 2026-08-30 05:08:37 +03:00
  • b11879520e fix(phone): поднимаем порог жёсткого seek аудио 2000→5000 мс subochev 2026-08-30 04:50:37 +03:00
  • 3af74851db feat(mercury): синхронизировать часы очков с телефоном на подключении subochev 2026-08-30 03:42:47 +03:00
  • 1aa389a3a0 fix(log): разблокировать спул лог-коллектора при устаревших таймстемпах subochev 2026-08-30 03:30:39 +03:00
  • 6cd4a8de43 feat: управление яркостью/WiFi очков через Mercury + накопленные доработки subochev 2026-08-29 23:06:52 +03:00
  • 62d2f06797 soft sync audio via PlaybackParameters speed (rate-based, no seekTo jump) subochev 2026-08-27 23:23:50 +03:00
  • cf8c5ef604 ui(phone): переключение сессий ступенчатым свайпом (порог 120dp, ±1 сессия за жест) + крупнее текст сообщений (14→20sp) subochev 2026-08-27 18:46:31 +03:00
  • 236ff18543 ui(glasses): оверлей ассистента накрывает весь вьюпорт (fillMaxSize, непрозрачный чёрный) — независимо от масштаба и регулятора «Высота» видео subochev 2026-08-27 18:46:31 +03:00
  • 412e093174 ui(glasses): отмена первой записи не закрывает оверлей — возврат в «слушаю», диалог жив даже при пустой истории; выход из режима — только явный жест ExitMode subochev 2026-08-27 18:46:29 +03:00
  • da8182443c stt(phone): SttDebug переведён на Qwen3-ASR-0.6B (отладочный прогон wav) subochev 2026-08-25 21:30:09 +03:00
  • 17385d1784 stt(phone): Qwen3-ASR-0.6B int8 вместо whisper-small (константа STT_BACKEND, hotwords тулсет/тулы/умеешь) — откат в одну строку (opencode по ТЗ) subochev 2026-08-25 19:57:33 +03:00
  • 98ac84ffe8 stt(phone): сегментация буфера на фразы перед whisper (лимит ≤30с) — длинные сессии распознаются целиком, фразы склеиваются пробелом (opencode по ТЗ) subochev 2026-08-25 18:09:56 +03:00
  • ac56e70283 stt(phone): VAD удалён (резал рваный микрофон очков) — полный буфер + trimEdges + хвост 120с + авто-финиш по тишине 30с (opencode по ТЗ) subochev 2026-08-25 03:45:42 +03:00
  • 4e60e11d24 stt: дамп закрывает цикл в finally (нет Stream Closed при стопе) subochev 2026-08-25 03:13:27 +03:00
  • b0baa19e7d stt: полный поток без VAD (резал речь на рваном ARGT78) — whisper распознаёт сырой поток (проверено: 1-10 идеально), усиление ×3, сырой дамп subochev 2026-08-25 03:12:04 +03:00
  • d34d15ecef stt(dump): сырой WAV всего потока микрофона (до усиления/VAD) — что реально слышат очки subochev 2026-08-25 03:00:47 +03:00
  • 19fe1b34bc stt(mic): возврат на 16 кГц (48 кГц молчит на ARGT78); VAD на сыром + gain ×5 остаются subochev 2026-08-25 02:59:00 +03:00
  • 1009713a28 stt(mic): 48 кГц как pair-view + VAD на сыром сигнале + усиление ×5 без клиппа + FIR-даунсэмпл 48→16 subochev 2026-08-25 02:55:42 +03:00
  • 0f235da0ed Высота — только для видео: ассистент/коннект-экран следуют масштабу, но всегда у верха subochev 2026-08-25 02:43:45 +03:00
  • 74701a2108 Панель статуса сдвигается к носу вместе с контейнером (panelOffsetX): центр панели = центр контейнера subochev 2026-08-25 02:39:43 +03:00
  • 4f4a551c91 Панель времени/заряда: масштабируется как контент, но прибита к низу экрана subochev 2026-08-25 02:35:24 +03:00
  • 80236902ba Панель времени/заряда: шрифт фиксированный (scale=1f) — не сжимается вместе с масштабом контента subochev 2026-08-25 02:31:28 +03:00
  • d113ffd744 Панель времени/заряда: оверлей-слой поверх контента, у низа экрана — стабильно при любом масштабе subochev 2026-08-25 02:28:00 +03:00
  • 8958370507 Панель времени/заряда — вне контейнера, всегда у верха экрана (не повисает между верхом и видео при vertical=0) subochev 2026-08-25 02:24:57 +03:00
  • 883fd8e5e4 Высота: видео в контейнере прижимается к верху/низу по vertical (Row-центрирование съедало вертикаль) subochev 2026-08-25 02:15:48 +03:00
  • 6d22f56bd8 Регулятор «Высота» экрана очков (0..1, с учётом масштаба): SetVertical по протоколу, offset Y в кино/коннект/оверлее, слайдер на пульте subochev 2026-08-25 02:11:01 +03:00
  • b17b5bf424 stt(glasses): VAD на очках (WebRTC, схема pair-view) — речевые сегменты с пре-роллом, межфразовая тишина не шлётся subochev 2026-08-25 01:51:57 +03:00
  • d78ed4429e stt(mic): микрофон на 48 кГц (нативная частота) + даунсемплинг 48→16 — рваность ARGT78 давала ровные провалы 100 мс subochev 2026-08-25 01:39:12 +03:00
  • 032424f513 Mercury: enable heartbeat on connect (keeps link alive), autolock endpoint subochev 2026-08-25 01:15:00 +03:00
  • 4556d3b6e4 Mercury: verify handshake echo, autolock endpoint, ringInfo-safe status subochev 2026-08-25 00:54:31 +03:00
  • b40e44c653 DebugHttpServer: Mercury BLE-эндпоинты (/mercury/status|connect|disconnect|screen/off|screen/on) subochev 2026-08-24 23:24:07 +03:00
  • d674b31a81 Внедрение rayneo-mercury: зависимость + MercuryPanel (BLE-тест: погасить/включить экран) subochev 2026-08-24 23:19:37 +03:00
  • c222a4ac76 stt(phone): полный текст по клику — whisper на всём буфере, VAD только для промежуточных фраз subochev 2026-08-24 22:11:08 +03:00
  • e21c27b0ee stt(dump): WAV-заголовок — размеры little-endian (плееры открывают дампы) subochev 2026-08-24 21:36:53 +03:00
  • 0d79b5aa33 stt(mic): усиление микрофона очков ×10 — VAD/Whisper видят речь (пустая фраза) subochev 2026-08-24 20:57:06 +03:00
  • 40edd88c1d stt(mic): вынести кадровую арифметику в micChunkBytes + регрессионные тесты MicChunkTest subochev 2026-08-24 12:23:33 +03:00
  • fc84ba16b6 stt(mic): request frames in frames (inFrameCount), not bytes — each chunk now carries full 100 ms subochev 2026-08-24 11:10:05 +03:00
  • c940a7e0eb stt(mic): AudioRecord.read возвращает КАДРЫ, а не байты — не терять вторую половину каждого 100-мс чанка (впечатление 'пропускает через один') subochev 2026-08-24 11:08:27 +03:00
  • 22eb83fd17 stt: debug-дампы аудио-пути (очки: сырой микрофон в WAV; телефон: принятые PCM) по старту от stt_dump.marker subochev 2026-08-24 05:58:59 +03:00
  • c1c169036a stt: VAD-интерфейс (Sherpa боевая / Silero тестовая), PhraseRecognizer (Whisper), чистый full-text-тест на реальном Silero VAD subochev 2026-08-24 05:43:29 +03:00
  • 7557d7229f Очки: отмена слушания двойным тапом — SttCancel reason=cancel subochev 2026-08-24 03:01:55 +03:00
  • 504e66f0c6 Очки: красный индикатор записи микрофона в режиме «слушаю» subochev 2026-08-23 21:58:36 +03:00
  • e24caaa684 Очки: разграничение SttCancel (user/timeout) — выход из режима при тишине 30с, микрофон закрывается при потере фокуса subochev 2026-08-23 21:17:43 +03:00
  • eaca47c443 Очки: единый скролл диалога на оба глаза + мгновенная пауза звука телефона при вызове ассистента subochev 2026-08-23 21:08:40 +03:00
  • 706cc10d1e Очки: история диалога в свайпе + распознавание в LLM только по клику (касяки 1-3) subochev 2026-08-23 20:15:21 +03:00
  • 51049d56a8 Чат: автоименование сессии из первого сообщения subochev 2026-08-23 17:40:12 +03:00
  • ce2d9c5448 Чат: клавиатура не вырезает верх окна (adjustResize + imePadding) subochev 2026-08-23 17:30:40 +03:00
  • d585ddf576 Локальная LLM: конфиг автора + uses-native-library в <application> subochev 2026-08-23 17:25:55 +03:00
  • 75496dd35d Фикс локальной LLM: таймаут 300с для LOCAL (инициализация движка ~17с + генерация), CPU-бэкенд без спекуляции (MTP виснет на CPU, GPU-делегат падает), диагностика chat() subochev 2026-08-23 04:38:02 +03:00
  • 7527cf8848 LLM: интерфейс + две реализации (Qwen удалённо / Gemma 4 E2B локально) + переключатель subochev 2026-08-23 02:52:22 +03:00
  • 2d6ca1e097 План: локальная модель на телефоне (Gemma 4 E2B, LiteRT LM) — в очереди, ждёт отмашки subochev 2026-08-23 02:00:21 +03:00
  • f75e672819 Очки: жесты и режимы общения с ассистентом (по docs/gestures-and-modes.md) subochev 2026-08-23 01:55:24 +03:00
  • f36d04adc1 Доки: жесты и режимы общения с ассистентом (design) + TASK subochev 2026-08-23 01:08:38 +03:00
  • 28d0f9b68d Агент: медиа-тулсет (search/info/play) на Jellyfin + скилл media subochev 2026-08-22 21:42:53 +03:00
  • c5cbc893ac Агент: механика скиллов и тулсетов (ядро 5 тул, подмена, невидимые enable/disable) subochev 2026-08-22 21:13:29 +03:00
  • 22369670cb ТЗ: агент — скиллы + тулсеты (TASK-agent-tools.md) subochev 2026-08-22 20:15:48 +03:00
  • bbf7a020d4 Ассистент Порфирий: тула времени, сессии, чат-UI, голосовой цикл; BT-транспорт очки↔телефон subochev 2026-08-22 16:31:04 +03:00
  • adfe376dd4 CI: системный JDK 17 на раннере вместо setup-java (adoptium виснет) 1 subochev 2026-08-21 19:45:43 +03:00
  • 20654e916e CI: Java 17 (jvmToolchain в lib-core) subochev 2026-08-21 19:31:37 +03:00
  • ee9700c558 CICD: сборка APK на release → F-Droid; versionCode из тега; фикс скролла каталога и масштаба subochev 2026-08-21 19:27:02 +03:00
  • ee86b9dc50 Revert "feat: retry конвертации (2 попытки) при failed/error" subochev 2026-08-21 12:08:57 +03:00
  • cbcd22f09c feat: retry конвертации (2 попытки) при failed/error Hermes Agent 2026-08-21 11:54:48 +03:00
  • a434d5bb12 feat: потоковый локальный ассистент — фраза → LLM → ответ на очки Hermes Agent 2026-08-20 12:35:49 +03:00
  • d9d34e9277 feat: история общения (SQLite) + Koog LLM-клиент в app-phone Hermes Agent 2026-08-20 11:52:50 +03:00
  • 3ed63012f4 build: Kotlin 2.2.0 → 2.4.10 (AGP 8.9.2, Gradle 8.14 — в официальном диапазоне) Hermes Agent 2026-08-20 10:51:07 +03:00
  • 1304c6d921 feat: голосовой ввод на очках — TripleClick + PCM → телефон → текст на очки Hermes Agent 2026-08-20 04:12:28 +03:00
  • 324c427c74 feat(app-phone): офлайн-распознавание речи — sherpa-onnx + Whisper-small Hermes Agent 2026-08-20 03:29:57 +03:00
  • 97aaabeb65 fix(app-glasses): не застревать на fallback 10.0.2.2 — перепоиск телефона Hermes Agent 2026-08-20 01:41:43 +03:00
  • 2844d6a3ac feat: разделение контента — на телефон только аудио, на очки только видео Hermes Agent 2026-08-20 01:41:43 +03:00
  • 9f1c6735c1 feat(app-glasses): AR-метка RayNeoX2 (com.rayneo.mercury.app) + тема + landscape Hermes Agent 2026-08-20 01:22:27 +03:00
  • 896185244b fix(app-glasses): scale на паузе — принудительная перерисовка кадра Hermes Agent 2026-08-20 00:52:21 +03:00
  • 9f20093bbf fix(app-glasses): панель статуса — по центру в оба глаза, процент цветной Hermes Agent 2026-08-20 00:24:12 +03:00
  • 3f858c4a1a feat(app-glasses): панель статуса — время + заряд (цвет по статусу) Hermes Agent 2026-08-20 00:03:23 +03:00
  • 2b6fdb7148 fix(app-glasses): старт быстрее — mDNS-таймаут 15с → 3с Hermes Agent 2026-08-19 23:47:28 +03:00
  • cc3dac7a54 fix(app-glasses): фон очков чёрный полностью Hermes Agent 2026-08-19 23:42:31 +03:00
  • 53a0ffd3dc docs: TESTING.md OFF9 (жесты), notes 49 Hermes Agent 2026-08-19 23:38:54 +03:00
  • 345e7b74fa feat(app-glasses): жесты RayNeo SDK (TempleAction) + отключение звуков трекпада Hermes Agent 2026-08-19 23:38:45 +03:00
  • 654a5f9e26 fix(app-phone): аппаратный back — детали → каталог, инфо об очках → пульт Hermes Agent 2026-08-19 22:59:07 +03:00
  • fd9a6940a4 docs: TESTING.md OFF8 (гашение экрана) Hermes Agent 2026-08-19 22:56:02 +03:00
  • 8182a62885 feat: стабилизация гашения экрана очков (пауза/резюм звука) Hermes Agent 2026-08-19 22:55:49 +03:00
  • 4309d4edd2 feat(app-glasses): гашение экрана очков → пауза видео+звука, включение → продолжение Hermes Agent 2026-08-19 21:56:46 +03:00
  • a4ade1ffcf fix(app-phone): автоподхват восстанавливает контекст просмотра (слайдер/длительность) Hermes Agent 2026-08-19 21:50:10 +03:00