Обёртка Obsidian: запись голоса, очередь и команды #10

Open
opened 2026-10-15 00:00:27 +03:00 by aep · 0 comments
Owner

Цель

Довести плагин до рабочего сценария на телефоне и десктопе: нажал «записать» → говоришь → «стоп» → в voice/inbox/ появляется заметка, которая сама наполняется текстом, в том числе после потери сети и перезапуска Obsidian.

Core уже готов: жизненный цикл записи и очередь (#1), провайдер OpenAI-совместимого распознавания (#5). Не хватает обёртки Obsidian, которая их связывает.

Что входит (уточняется в brainstorming)

  • Запись голоса через MediaRecorder: старт и стоп из интерфейса (команда, иконка на ленте), индикация идущей записи, форматы iOS (audio/mp4), Android (audio/webm), десктоп (webm/ogg); прерванная запись сохраняется (recording-lifecycle: «Сохранение захваченного аудио»).
  • Адаптеры портов core на API Obsidian: RecordingStore и NoteStore (vault, metadataCache без чтения содержимого в list()), Env с идентификатором устройства, который не синхронизируется между устройствами.
  • Запуск очереди: при загрузке плагина, после записи, по таймеру повторов, при возвращении сети; отмена запросов при выгрузке.
  • Команды «Распознать все ожидающие здесь» и «Повторить распознавание» из спеки recording-lifecycle.

Критерий готовности

Ручная проверка на Mac и iPhone в тестовом vault: запись → заметка saved без сети → текст после появления сети; запись с одного устройства не отправляется автоматически с другого; обе команды работают.

## Цель Довести плагин до рабочего сценария на телефоне и десктопе: нажал «записать» → говоришь → «стоп» → в `voice/inbox/` появляется заметка, которая сама наполняется текстом, в том числе после потери сети и перезапуска Obsidian. Core уже готов: жизненный цикл записи и очередь (#1), провайдер OpenAI-совместимого распознавания (#5). Не хватает обёртки Obsidian, которая их связывает. ## Что входит (уточняется в brainstorming) - Запись голоса через `MediaRecorder`: старт и стоп из интерфейса (команда, иконка на ленте), индикация идущей записи, форматы iOS (`audio/mp4`), Android (`audio/webm`), десктоп (`webm`/`ogg`); прерванная запись сохраняется (`recording-lifecycle`: «Сохранение захваченного аудио»). - Адаптеры портов core на API Obsidian: `RecordingStore` и `NoteStore` (vault, `metadataCache` без чтения содержимого в `list()`), `Env` с идентификатором устройства, который не синхронизируется между устройствами. - Запуск очереди: при загрузке плагина, после записи, по таймеру повторов, при возвращении сети; отмена запросов при выгрузке. - Команды «Распознать все ожидающие здесь» и «Повторить распознавание» из спеки `recording-lifecycle`. ## Критерий готовности Ручная проверка на Mac и iPhone в тестовом vault: запись → заметка `saved` без сети → текст после появления сети; запись с одного устройства не отправляется автоматически с другого; обе команды работают.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/obsidian-voice-note#10
No description provided.