diff --git a/.gitignore b/.gitignore index c4fea1b..3dddcdf 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ src-tauri/target/ src-tauri/gen/ # Local app data and large speech models -models/ +/models/ *.gguf *.nemo *.wav diff --git a/docs/superpowers/plans/2026-06-10-transcription-app-native-integrations.md b/docs/superpowers/plans/2026-06-10-transcription-app-native-integrations.md new file mode 100644 index 0000000..bb59b6c --- /dev/null +++ b/docs/superpowers/plans/2026-06-10-transcription-app-native-integrations.md @@ -0,0 +1,97 @@ +# Integrações Nativas do Transcript Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Implementar as integrações que faltavam no MVP: gerenciador real do modelo GGUF, captura de áudio WAV, execução CrispASR, hotkey global e inserção/cópia com fallback cross-platform. + +**Architecture:** Manter cada integração atrás de um módulo pequeno. A UI chama comandos Tauri, os comandos consultam `ManagedAppState`, e integrações dependentes de SO retornam mensagens explícitas quando o ambiente limita a automação. + +**Tech Stack:** Tauri 2, Rust, CPAL, hound, reqwest, Tauri global-shortcut plugin, TypeScript. + +--- + +## Task 1: Model manager real + +**Files:** +- Modify: `src-tauri/src/models/mod.rs` +- Modify: `src-tauri/src/ui_commands.rs` +- Modify: `src-tauri/Cargo.toml` + +- [ ] Add URL de download do Hugging Face e resolução de diretório local. +- [ ] Add validação por existência e tamanho mínimo/esperado. +- [ ] Add comando `download_default_model` com escrita em arquivo temporário e rename atômico. +- [ ] Testar status notInstalled/ready sem baixar o arquivo real. + +## Task 2: Captura real de áudio + +**Files:** +- Modify: `src-tauri/src/audio/mod.rs` +- Modify: `src-tauri/src/app_state.rs` +- Modify: `src-tauri/src/ui_commands.rs` +- Modify: `src-tauri/Cargo.toml` + +- [ ] Implementar gravador CPAL que escreve WAV via hound. +- [ ] Guardar stream ativo no estado para manter gravação viva. +- [ ] Stop finaliza WAV e retorna caminho. +- [ ] Manter teste unitário de máquina de estados. + +## Task 3: Execução CrispASR + +**Files:** +- Modify: `src-tauri/src/transcription/crispasr.rs` +- Modify: `src-tauri/src/ui_commands.rs` +- Modify: `src-tauri/tauri.conf.json` + +- [ ] Resolver binário via variável/env/config e depois sidecar empacotado. +- [ ] Executar `crispasr -m -f