Skip to content

T-331 - Reproduzir ao auditor o áudio das entradas por voz #408

Open

Description

@pedro-fs-garcia

T-331 - Reproduzir ao auditor o áudio das entradas por voz

  • Componente: frontend.
  • Depende de: T-336 (aba "Conversa e Python" do dossiê), T-332 (mockup do reprodutor) e T-330 implantada, porque é ela que devolve o áudio.
  • Data máxima: 18/11/2026
  • Estimativa: 3 pontos (Fibonacci)

Entregável

  • Reprodutor do áudio em cada entrada por voz do dossiê da regra, inicial ou de correção.
  • Estados de carregamento, de erro e de áudio indisponível.
  • Testes do reprodutor.

Descrição

O auditor precisa ouvir o áudio enviado pelo usuário para conferir a transcrição. A PO decidiu isso na T-314. A T-330 cria a rota GET /auditoria/jobs/{id}/entradas/{entradaId}/audio, e a área do auditor, criada na T-307, não toca o áudio. Esta tarefa acrescenta o reprodutor às entradas por voz do dossiê da regra, na entrada inicial da aba "Regra e versões" e nas mensagens da aba "Conversa e Python", conforme o mockup da T-332.

Contexto e decisões tomadas

  • A rota exige o token da sessão, que só existe em memória. Por isso o elemento de áudio não aponta direto para a URL da rota: o cliente HTTP baixa o áudio, e o reprodutor toca o arquivo baixado.
  • O áudio só é baixado quando o auditor pede para ouvi-lo, e não ao abrir o dossiê, porque cada entrada chega a 5 MB.
  • O cliente HTTP (src/services/http.ts) só trata respostas JSON. A leitura de resposta binária é acrescentada nele, e por ser arquivo quente vai num PR próprio, antes do PR da tela.
  • O áudio é dado pessoal do usuário. Nenhum log, evento de telemetria ou mensagem de erro inclui o conteúdo.

Escopo

Dentro do escopo

  • A leitura binária em src/services/http.ts, em PR próprio.
  • A chamada da rota em src/features/auditoria/services/, o componente do reprodutor na feature auditoria, o uso dele nas duas abas do dossiê e os specs.

Fora do escopo

  • O resto da área do auditor.
  • Transcrever de novo ou comparar o áudio com a transcrição.
  • As telas do profissional de RH.

Requisitos

  1. Acrescentar ao cliente HTTP uma leitura que devolve o corpo binário com o tipo da resposta, com o mesmo tratamento de sessão e de erro das demais requisições, em PR próprio.
  2. Na feature auditoria, baixar o áudio da entrada pela rota da T-330 quando o auditor pedir para ouvir, criar a URL local do arquivo baixado e liberá-la ao sair da tela ou trocar de job.
  3. Mostrar o reprodutor só nas entradas por voz, nos estados do mockup.
  4. Registrar as falhas do download pelo transporte de telemetria existente, com nome de operação fixo e código de erro, sem o conteúdo nem a URL com identificadores.

Contexto técnico

  • Entradas: as entradas da consulta de auditoria e o áudio devolvido pela T-330.
  • Saídas: o reprodutor nas entradas por voz do dossiê.
  • Componentes afetados: src/services/http.ts e a feature src/features/auditoria/.
  • Restrições: nenhuma importação de outra feature; nenhum token fora da memória; nenhum conteúdo do áudio em telemetria.
  • Referências: frontend/AGENTS.md, src/features/README.md, contracts/http/openapi.yaml, T-330, que define a rota.

Critérios de aceitação

  • Uma entrada por voz toca o áudio gravado, e as entradas de formulário e de texto não mostram reprodutor.
  • O áudio só é baixado depois que o auditor pede para ouvi-lo.
  • Uma falha no download mostra o estado de erro do mockup, sem detalhe interno.
  • Trocar de job não toca nem mantém o áudio do job anterior.

Definição de concluído (DoD)

  • make check no frontend sem falha nos dois PRs.
  • Specs do reprodutor nos estados de carregamento, erro e reprodução, e da leitura binária no cliente HTTP.
  • Uso no navegador contra a API local, com uma entrada por voz inicial e uma de correção.
  • Emissão da telemetria das falhas conferida no navegador; a coleta ponta a ponta é informada como verificação separada.

Metadata

Metadata

Assignees

Labels

frontendtarefa que diz respeito ao frntend da aplicação

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions