Investigação de pedidos com fontes verificáveis e revisão por outra pessoa.
O EvidenceDesk investiga casos em que o pagamento foi confirmado, mas o pedido continua pendente. A aplicação reúne eventos, snapshots e documentos; usa regras determinísticas, oferece rascunhos opcionais de IA e exige outra conta para aprovar uma revisão. Os dados da demonstração são sintéticos.
Captura real da aplicação em 22/09/2026, com dados sintéticos: 222 pedidos no snapshot, duas divergências do mesmo pedido e o evento de pagamento aberto no leitor de fontes. A geração por IA está desativada nesse ambiente. É um registro histórico da interface. Origem da captura.
O leitor apresenta a alegação junto à fonte citada. A busca de fontes permanece ao navegar ou recarregar, e a aprovação exige uma decisão explícita e a conferência das alegações. O workbench local permite ler a fonte antes do julgamento e aponta campos incompletos.
O recorte mostra duas divergências do mesmo pedido, entre 222 pedidos do snapshot sintético. Duas divergências não significam dois pedidos afetados. A jornada registrada em 22/09/2026, 12:34 UTC conferiu fontes, criou um dossiê, aprovou com outra conta e exportou a revisão. Prova da jornada · origem da captura.
No caso PED-009-000, as regras apontam incompatibilidade entre pagamento e snapshot e uma transição não observada dentro da cobertura. Elas não identificam a causa nem corrigem o sistema de origem.
- Importe fontes e confira a cobertura do snapshot.
- Investigue divergências, linha do tempo e originais.
- Edite o dossiê ou solicite um rascunho opcional de IA.
- Submeta a revisão para outra conta.
- Exporte a versão aprovada com as fontes da decisão.
Na jornada registrada acima, a consulta independente ao banco mostrou zero chamadas ao provedor antes e depois da execução. O teste da jornada cobre esse percurso. Contas distintas testaram o fluxo; a execução não avaliou a qualidade da revisão humana.
O EvidenceDesk é um monólito modular com dois processos de backend: a API atende consultas e admite operações; o worker executa os trabalhos demorados. No perfil local do Compose, o banco concentra domínio, fila e orçamento.
flowchart TB
UI["Next.js :3106<br/>Investigação e revisão"]
API["FastAPI :8106<br/>Sessão, ACL e domínio"]
DB[("PostgreSQL / pgvector<br/>Corpus, revisões e jobs")]
Worker["Worker Python<br/>Ingestão, geração e exportação"]
Files[("Volume privado /data<br/>Originais e artefatos")]
Parser["Parser isolado<br/>Extração + localizadores"]
Models["Serviço ML :8090<br/>Embeddings e reranker"]
Azure["Azure OpenAI<br/>Rascunho estruturado"]
UI -->|"Proxy /api/v1<br/>cookie + CSRF"| API
API -->|"Consulta / revisão<br/>ou intenção + job"| DB
API -->|"Upload e download<br/>com autorização"| Files
DB -->|"Worker faz polling<br/>SKIP LOCKED + lease"| Worker
Worker -->|"Commit com token<br/>e política atuais"| DB
Worker -->|"Fontes e resultados"| Files
Worker -->|"Extração"| Parser
Worker -.->|"Busca híbrida opcional"| Models
Worker -.->|"Reserva de tokens<br/>e fontes autorizadas"| Azure
Setas contínuas representam o caminho local; pontilhadas, integrações opcionais. O progresso passa pela API e pelo proxy, sem conexão direta do navegador ao banco. O worker compartilha código, banco e volumes com a API; os módulos de domínio não são microsserviços independentes.
| Fronteira | O que acontece nela | Implementação |
|---|---|---|
| Navegador → API | O proxy preserva sessão e streaming; o backend confere CSRF e acesso ao recorte. | Proxy, identidade |
| HTTP → fila | Finalizar importação, pedir geração ou exportar grava a intenção e o job antes de responder. | Ingestão, jobs |
| Worker → publicação | Parsing e rede ocorrem fora da transação; o commit revalida lease, token de execução e política. | Dispatcher, processamento |
| Fontes → decisão | O snapshot fixa o corpus; regras calculam divergências, e uma revisão imutável exige decisão de outra conta. | Conciliação, revisões |
| Aplicação → IA | Busca lexical funciona sem ML; geração recebe fontes delimitadas e não aprova nem altera pedidos. | Ferramentas de leitura, admissão de tokens |
O percurso começa no manifesto e upload, passa por extração, snapshot, incidente e conciliação, e termina no dossiê revisado e na exportação HTML autorizada. O dossiê pode ser manual ou partir de um rascunho opcional. A interface acompanha geração por eventos SSE persistidos, retomáveis com Last-Event-ID.
No perfil local, db_data, evidence_data e deletion_ledger são volumes distintos no mesmo host. O adaptador Blob e a infraestrutura Azure têm bloqueadores de implantação próprios. A arquitetura detalhada descreve contratos entre módulos, sequência de importação, modelo de dados, falhas e observabilidade.
Geração opcional por Azure OpenAI, integrada pelo SDK OpenAI:
O perfil ml usa PyTorch e Transformers/Sentence Transformers para embeddings e reranking locais. MLflow registra os experimentos do laboratório.
| Componente | Papel e compromisso |
|---|---|
| Python, FastAPI e SQLAlchemy | Domínio, autorização, persistência, importação e operações assíncronas |
| Pydantic | Valida os contratos de ingestão, conciliação e geração |
| PostgreSQL | Dados, fila, isolamento e recuperação; o mesmo banco concentra essas responsabilidades |
| pgvector | Extensão do PostgreSQL para embeddings e busca vetorial no perfil opcional ml |
| TypeScript, React e Next.js | Interface para investigar, editar, revisar e exportar |
| Docker Compose | Operação local com volumes próprios |
| SDK OpenAI e Azure OpenAI | Geração opcional; o fluxo manual e lexical permanece disponível |
| PyTorch, Transformers e Sentence Transformers | Embeddings e reranker locais no perfil opcional ml |
| MLflow | Registro dos experimentos do laboratório; candidato treinado sem promoção |
As versões estão fixadas nas dependências do backend, do frontend e no Compose. O nome do deployment Azure é configuração do operador; não prova a identidade ou versão do modelo, conforme o contrato da integração e a documentação Microsoft.
Conciliação, revisão e geração têm responsabilidades separadas: uma citação válida estruturalmente ainda precisa sustentar o texto. O candidato treinado permanece sem promoção e sem adjudicação humana. O model card reúne o protocolo, as medições e os limites dessa avaliação.
Use Docker com containers Linux, Compose 2.24.4+ e Python 3.11+ para a CLI do host. Os overlays usam !override, que requer essa versão do Compose. O build baixa dependências; a geração Azure exige configuração própria e pode ter cobrança do provedor.
python scripts/ops.py config
python scripts/ops.py build
python scripts/ops.py start
python scripts/ops.py seedAbra localhost:3106. Use ana@aurora.demo para investigar ou bruno@aurora.demo para revisar, com a senha pública da demonstração EvidenceDesk-demo-2026!. As contas do seed são sintéticas e os serviços ficam publicados em loopback.
python scripts/ops.py stopstop preserva os volumes. O runbook local detalha instalação, Azure opcional e diagnóstico.
Os comandos de testes, lint, tipos e build estão no guia de desenvolvimento. O guia do frontend descreve os contratos de navegação e autorização; o runbook de CI prepara bancos isolados para as jornadas de navegador.
O recibo de 12/10/2026 registra os snapshots, comandos e limites desta evolução. O workbench offline de avaliação, capturado em Chromium, tem versão móvel e prova automatizada. Essas imagens mostram a ferramenta de anotação, não a bancada de incidentes autenticada. Usam fixtures sintéticas, inclusive texto hostil exibido como texto para verificar escaping; o gate humano permanece inconclusivo. O executor adversarial registra contratos simulados, sem execução de modelo real.
| Evidência | Data e alcance |
|---|---|
| Jornada de pagamento | 22/09/2026; UI/API reais, dados sintéticos e nenhuma avaliação humana |
| Chamadas ao provedor | 22/09/2026; contagem no banco antes e depois da jornada manual |
| Reabertura após restauração | 22/09/2026; execução histórica com identidade própria |
| Scan da rodada editorial | 22/09/2026; imagens e base do scanner identificadas no registro |
Os resultados se aplicam às versões e datas identificadas em cada registro. A lista de cenários e comandos está em verificação e desenvolvimento.
python -m pip install --require-hashes -r scripts/requirements-docs.lock
python scripts/check_repository_docs.pyO checker verifica caminhos e âncoras locais; não certifica conteúdo, sites externos ou qualidade semântica de respostas.
Política de segurança e relato de vulnerabilidades · Modelo de ameaças · Scans das imagens · Revisão dos controles em 3 de outubro de 2026.
A aplicação não corrige pedidos nem executa ferramentas de escrita nos sistemas de origem. As permissões são verificadas fora do modelo. Uma chamada com resultado desconhecido conserva sua reserva de tokens; a contabilidade é de tokens, não uma tabela monetária.
O pacote humano reúne 60 casos de desenvolvimento em oito famílias, marcado prepared_not_executed. Não há resultado de adjudicação nesse pacote; referências sintéticas não demonstram qualidade em incidentes reais. Manifesto do pacote, preparado em 22/09/2026. O conjunto reservado não foi usado nesta revisão.
O workbench local prepara rodadas dev, abre um HTML sem servidor e importa anotações com validação de versões e hashes. Cada resposta exige dois julgamentos independentes e uma decisão explícita de outro adjudicador. O relatório conserva falhas e respostas não executadas nos denominadores e mantém o gate humano inconclusivo até reunir a amostra exigida. A suíte adversarial exercita contratos com transporte simulado; comportamento de modelo real permanece not_run.
A infraestrutura Azure permanece não implantada por este projeto nos registros disponíveis: a validação local de fmt, init e validate não comprova quota, SKU, rede ou capacidade regional. O runbook hospedado detalha os bloqueadores. Scans e testes têm imagem e data próprias; não constituem garantia de ausência de falhas.
Padrão compartilhado da documentação · Fontes e afirmações.
| Para consultar | Documento |
|---|---|
| Explorar o produto | Demo · casos e decisões |
| Implementar e testar | Arquitetura · API · dados · desenvolvimento |
| Operar e recuperar | Local · backup/restore · retenção |
| Entender IA e orçamento | Model card · modelos locais · tokens |
| Conferir riscos e resultados | Política de segurança · threat model · publicação · fontes e afirmações |
| Conferir imagens | Origem e reprodução |
| Desenvolver a interface | Frontend · tipografia e acessibilidade |
Licença MIT. Ícones Devicon e Simple Icons: fontes e licenças. LinkedIn: Devicon, licença MIT.


