feat: wire model download UI and native docs

This commit is contained in:
Evandro committed 2026-06-11 01:18:40 -03:00
1 parent 0c39063150
commit 8f754b3f00
8 files changed
+218 -152

No files matched your search

@@ -17,10 +17,10 @@
- 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.
- [x] Add URL de download do Hugging Face e resolução de diretório local.
- [x] Add validação por existência e tamanho mínimo/esperado.
- [x] Add comando `download_default_model` com escrita em arquivo temporário e rename atômico.
- [x] Testar status notInstalled/ready sem baixar o arquivo real.
## Task 2: Captura real de áudio
@@ -30,10 +30,10 @@
- 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.
- [x] Implementar gravador CPAL que escreve WAV via hound.
- [x] Manter stream vivo em thread de gravação e guardar handles seguros no estado.
- [x] Stop finaliza WAV e retorna caminho.
- [x] Manter teste unitário de máquina de estados.
## Task 3: Execução CrispASR
@@ -42,10 +42,10 @@
- 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 <model> -f <audio>`.
- [ ] Capturar stdout/stderr e retornar erro claro.
- [ ] Parsear texto simples ou JSON quando disponível.
- [x] Resolver binário padrão `parakeet-main` para o modelo v3.
- [x] Executar `parakeet-main -m <model> -f <audio> -t <threads>`.
- [x] Capturar stdout/stderr e retornar erro claro.
- [x] Parsear stdout como texto simples; JSON fica para evolução futura se o sidecar for configurado para isso.
## Task 4: Hotkey global
@@ -53,9 +53,9 @@
- Modify: `src-tauri/Cargo.toml`
- Modify: `src-tauri/src/lib.rs`
- [ ] Adicionar `tauri-plugin-global-shortcut`.
- [ ] Registrar `Ctrl+Alt+Space` no setup.
- [ ] Ao pressionar, mostrar/focar janela e emitir evento `hotkey-toggle-recording` para a UI.
- [x] Adicionar `tauri-plugin-global-shortcut`.
- [x] Registrar `Ctrl+Shift+Space` no setup.
- [x] Ao pressionar, emitir evento `transcript://toggle-recording` para a UI.
## Task 5: Inserção/cópia cross-platform
@@ -64,10 +64,10 @@
- Modify: `src-tauri/src/ui_commands.rs`
- Modify: `src-tauri/Cargo.toml`
- [ ] Adicionar clipboard backend com `arboard`.
- [ ] Implementar `request_insert_text` que sempre coloca o texto no clipboard.
- [ ] Retornar mensagens por plataforma/display server.
- [ ] Manter Wayland como parcial/manual.
- [x] Adicionar clipboard backend com `arboard`.
- [x] Implementar `request_insert_text` que sempre coloca o texto no clipboard.
- [x] Retornar mensagens por plataforma/display server.
- [x] Manter Wayland como parcial/manual.
## Task 6: UI, CI e docs
@@ -77,10 +77,10 @@
- Modify: `.github/workflows/*.yml`
- Modify: `README.md`
- [ ] Mostrar status de modelo e botão de download.
- [ ] Reagir ao evento de hotkey.
- [ ] Atualizar CI Linux com `libasound2-dev`.
- [ ] Rodar verificação final completa.
- [x] Mostrar status de modelo e botão de download.
- [x] Reagir ao evento de hotkey.
- [x] Atualizar CI Linux com `libasound2-dev`.
- [x] Rodar verificação final completa.
## Verification