feat: upload de documentos - listagens e design system (S1-19, S1-20, S1-22) - #34
Conversation
…zer e design system
QA — pontos encontrados na PR #34Revisei o commit 5cb8b2e e a descrição da PR. Encontrei este problema funcional que precisa ser corrigido antes do merge: P1 — Projeto arquivado ainda permite remover documentosEm Assim, um usuário com perfil Sugestão: aplicar a mesma regra de projeto arquivado no fluxo de remoção, retornando 400/403 conforme o contrato adotado, e adicionar teste de rota/serviço cobrindo DELETE em projeto arquivado. P2 — Checklist da própria PR ainda tem validações pendentesA descrição informa que ainda não foram executados: teste de banco no CI, fluxo n8n do evento P2 — Validação localNo ambiente atual não consegui executar a suíte porque Peço corrigir o bloqueio de remoção em projetos arquivados e adicionar a cobertura correspondente. |
Checkpoint de correção — não aprovar merge aindaA branch da PR foi atualizada com merge normal da Validação deste checkpoint
O que falta antes do merge
O checklist detalhado e o estado deste checkpoint também estão em |
Atualização do CI no commit
|
…chat e E2E Documentos (S1-19/S1-20/S1-22) - Corrige o teste de outbox para lease/backoff e cobre SKIP LOCKED, operacoes de armazenamento, paginacao por cursor e estatisticas de manutencao em PostgreSQL - Adiciona teste da migration 012 (banco limpo e banco ja na 011, idempotencia) - CI passa a rodar backlog-tree, migrations 011/012, documentos e chat no PostgreSQL - /health expoe filas e alertas do worker; OpenAPI com cursor, next_cursor, armazenamento_pendente e 409; docs/DOCUMENTOS_INTEGRACAO.md Frontend - Abas acessiveis (tablist, setas/Home/End, hash e rota /documents) na ProjectsView - RepoAnalyzerView reescrita (etapas, progresso, relatorio em Markdown seguro, repetir analise) e ChatView profissional (log, fontes, origem, retry, escopo) - Testes portados para as views atuais; componentes orfaos removidos - Tokens unificados com o prototipo, responsivo do cabecalho e das abas Backend - Chat: posse da conversa, isolamento por projeto e busca textual honesta - RepoAnalyzer: UUID, projeto inexistente, arquivado (409) e erro do motor (503) - Cadastro publico nao concede administrador E2E - e2e/ com 12 cenarios de navegador contra API real e PostgreSQL
O que foi feito?
Alterações técnicas
Como validar
A ser feito (checklist)
cc @LoadCG |
O que foi feito?
document.removedquando há conteúdo indexado.tokens.csspassa a ser a fonte única de tokens, alinhada aoDESIGN_SYSTEM.md.Alterações técnicas
documents(validação por conteúdo, storage local em duas fases, repositório transacional, outboxevento_integracao) e migration011_document_upload.sql.GET/POST /api/v1/projects/:projectId/documentseDELETE .../documents/:documentId.errorHandlerpara arquivo acima do limite.DocumentsTab,api_documents,api_errors,RepoAnalyzerTabreescrito, UI kit estendido (Alert,EmptyState) e abas acessíveis.client_max_body_sizeno nginx, volumedocuments_data, variáveisDOCUMENT_*e CI incluindo o teste de banco de documentos.docs/api/openapi.yaml.Como validar
cd backend && npm ci && npm test && npm run buildcd frontend && npm ci && npm test && npm run buildnpm run migrate) e abrir um projeto, na aba Documentos: enviar um PDF, tentar um.exee um.txtrenomeado para.pdf, remover com confirmação.DOCUMENT_MAX_SIZE_MB=1, enviar arquivo maior e confirmar a mensagem de limite.A ser feito (checklist)
documents.repository.db.test.tsno CI (não rodei local)document.removede preencherDOCUMENT_EVENTS_WEBHOOK_URLprojectIdinválido e projeto inexistente)cc @LoadCG