# Icarus Bridge para Windows

O `IcarusBridge.exe` mantém a ponte local entre um PLAUD NOTE e o serviço Icarus
na Hetzner. A ponte lê o volume USB compatível ou usa Bluetooth perto do
gravador; a VPS recebe o arquivo Ogg/Opus pela sessão HTTPS e executa
transcrição e análise. O USB precisa expor os arquivos, como observado nesta
unidade; um cabo que só fornece energia não transfere gravações.

## PC de origem (onde o gravador já está pareado)

1. Abra o executável e informe a URL, usuário/e-mail e senha do Icarus.
2. Clique em **Entrar e salvar**. A sessão é guardada no DPAPI do usuário
   Windows; a senha não é salva.
3. Clique em **Iniciar bridge** e conecte o PLAUD NOTE por USB. Para usar sem
   cabo, ligue o Bluetooth. O perfil USB validado está em [USB.md](USB.md).
4. Marque **Iniciar com o Windows** somente depois de confirmar que o teste
   funcionou.

## PC de destino (o novo computador)

O pareamento Bluetooth não é transportado pelo servidor. No primeiro PC use
**Exportar vínculo**, defina uma senha do arquivo privado e transfira apenas o
`.icarus-pairing` por um meio seguro. No segundo PC abra o executável, faça o
login e use **Importar vínculo** com a senha do arquivo. O importador grava o
vínculo como DPAPI do usuário atual e recusa sobrescrever um vínculo existente.

O arquivo de pareamento contém o vínculo do PLAUD NOTE validado neste projeto
(perfil de porta 10) dentro de AES-GCM com chave derivada por Scrypt. Ele não
deve entrar no ZIP público, no repositório ou no servidor.

## Empacotamento

No checkout do projeto, execute `tools\build_bridge.ps1`. O build usa o ambiente
`%LOCALAPPDATA%\Icarus\ai-env` e grava o resultado em
`%LOCALAPPDATA%\Icarus\client-dist\IcarusBridge-public.zip`. O ZIP é um onedir
portátil e não inclui sessão, vínculo, chave OpenAI ou token da Hetzner.

O bridge é deliberadamente limitado a listar e baixar gravações concluídas do
PLAUD NOTE. Ele não envia comandos de apagar, resetar, gravar, atualizar
firmware ou alterar o vínculo.

Gravar é uma ação no aparelho: a ponte não simula o botão. Um arquivo novo
precisa ficar estável antes de ser copiado e enviado. O aparelho observado
responde ao status Bluetooth durante o modo USB, mas a listagem BLE expira;
por isso a ponte usa os arquivos USB quando estão disponíveis. O formato
original Opus mono é apenas encapsulado em Ogg, sem recompressão.

## Pacote privado opcional

Uma distribuição particular pode colocar um `bridge-defaults.json` ao lado do
executável com usuário, senha, perfil `.icarus-pairing` e senha desse perfil.
Na primeira abertura ele faz o login, importa o vínculo uma vez e pode iniciar
a ponte. Esse arquivo contém credenciais em texto e deve ficar apenas no pacote
privado do proprietário; o script de build remove esse arquivo antes de gerar
o ZIP público.
