Skip to content

T-336 - Mostrar ao auditor a conversa e o código da regra #417

Open

Description

@pedro-fs-garcia

T-336 - Mostrar ao auditor a conversa e o código da regra

  • Componente: frontend.
  • Depende de: T-307 (área do auditor e dossiê) e T-332 (mockup das chamadas ao modelo).
  • Data máxima: 17/11/2026
  • Estimativa: 5 pontos (Fibonacci)

Entregável

  • Aba "Conversa e Python" do dossiê da regra.
  • Prompt e resposta de cada chamada ao modelo.
  • Testes da aba.

Descrição

O auditor precisa reconstruir como a regra foi descrita, corrigida e transformada em código. A T-307 cria o dossiê com a aba "Regra e versões". Esta tarefa acrescenta a aba "Conversa e Python", com a conversa registrada ao lado do código gerado, conforme o mockup.

Contexto e decisões tomadas

  • Os dados vêm da resposta de GET /auditoria/jobs/{id} que a T-307 já carrega: entradas, rodadas, versoes, codigos e chamadas_modelo. A aba não faz chamada nova.
  • A conversa mostra só o que foi registrado. A entrada inicial e as correções aparecem como mensagens do usuário. Os conflitos de cada rodada de correção, com o motivo de cada um, aparecem como mensagem do sistema. O registro de cada versão e de cada código aparece como marco, com o número da versão e o id do código.
  • O Synapse não escreve resumo das versões nem mensagem da IA em texto livre. As falas da "IA Synapse" do mockup são substituídas pelos marcos acima.
  • O mockup pede rolagem própria na conversa, para que a coluna da conversa e a do código tenham a mesma altura.
  • Prompt, resposta, código e texto da entrada são dados não confiáveis. São exibidos como texto, nunca com v-html, e o código nunca é executado.
  • O reprodutor do áudio das entradas por voz é da T-331.

Escopo

Dentro do escopo

  • Os componentes da aba na feature src/features/auditoria/ e os specs.

Fora do escopo

  • Áudio (T-331) e modelo da transcrição (T-328).
  • Arquivos quentes listados em frontend/AGENTS.md.

Requisitos

  1. Montar a conversa em ordem cronológica pelo instante de registro de cada item: entradas, rodadas, versões e códigos.
  2. Mostrar em cada mensagem do usuário o tipo da entrada, o login do dono e o horário, e ligar cada correção à sua rodada.
  3. Mostrar o código ao lado da conversa, com numeração de linhas, rolagem própria e cópia da fonte inteira. Com mais de um código, o auditor escolhe qual ver, e o código vem identificado pelo id e pelo número da versão da regra.
  4. Mostrar o prompt e a resposta de cada chamada ao modelo recolhidos, com a etapa (no), o modelo, o horário, o consumo de tokens, rolagem própria e cópia do texto, conforme a T-332.
  5. Mostrar loja, marca e cargo pelo código.
  6. Nenhum valor é calculado. Os dados aparecem como vieram da API.

Contexto técnico

  • Entradas: a resposta de GET /auditoria/jobs/{id} carregada pela T-307.
  • Saídas: a aba "Conversa e Python".
  • Componentes afetados: a feature src/features/auditoria/.
  • Restrições: nenhum v-html; nenhuma importação de outra feature; views com até cerca de 200 linhas, com o excedente em composables.
  • Referências: frontend/AGENTS.md, src/features/README.md, contracts/http/openapi.yaml (RegistroAuditoria, Rodada, ChamadaModeloAuditoria, CodigoAuditoria), contracts/domain/conflitos-rodada.schema.json, frontend/src/features/correcao-regra/components/ConversaRodadas.vue como exemplo de conversa por rodadas.

Critérios de aceitação

  • Num job com uma rodada de correção, a conversa mostra a entrada inicial, os conflitos da rodada, a correção, as duas versões e os códigos na ordem em que foram registrados.
  • Um código ou um prompt com marcação HTML aparece como texto.
  • Copiar o código copia a fonte inteira.
  • A conversa e o código têm a mesma altura, cada um com rolagem própria.

Definição de concluído (DoD)

  • make check no frontend sem falha.
  • Specs da ordem da conversa, do seletor de código, da cópia e da exibição como texto.
  • Uso no navegador contra a API local com uma conta de auditor, num job com rodada de correção.

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