-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgithub-issues-raw.json
More file actions
1 lines (1 loc) · 239 KB
/
Copy pathgithub-issues-raw.json
File metadata and controls
1 lines (1 loc) · 239 KB
1
[{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1723,"state":"OPEN","title":"[GTM-P2] TD-008: Database schema improvements & LGPD compliance"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1722,"state":"OPEN","title":"[GTM-P2] TD-007: Accessibility & i18n fixes for WCAG compliance"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1721,"state":"OPEN","title":"[GTM-P1] LGPD: IP address storage non-compliant with Art. 12"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1720,"state":"OPEN","title":"[GTM-P2] TD-005: Monetary type inconsistency across 6 entities"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1719,"state":"OPEN","title":"[GTM-P1] TD-006: Frontend/backend password validation mismatch"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1718,"state":"OPEN","title":"[GTM-P1] TD-004: Add 22 missing database indexes"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1717,"state":"OPEN","title":"[GTM-P1] TD-003: Remove cascading eager loading (10+ JOINs per query)"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1716,"state":"OPEN","title":"[GTM-BLOCKER] TD-002: Multi-tenancy isolation gaps - cross-tenant data leak"},{"closedAt":"2026-01-29T22:46:34Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1715,"state":"CLOSED","title":"[GTM-BLOCKER] TD-001: Password hashes exposed in API responses + API keys in plain text"},{"closedAt":"2026-01-26T12:13:20Z","milestone":null,"number":1712,"state":"CLOSED","title":"chore(deps): update to lodash@4.17.23 after NestJS releases patched versions"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1708,"state":"OPEN","title":"[EXPORT-1168f] Create frontend UI for export history and sharing"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1707,"state":"OPEN","title":"[EXPORT-1168e] Add API endpoint to list export history for an ETP"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1706,"state":"OPEN","title":"[EXPORT-1168d] Implement retention policy and cleanup job for old exports"},{"closedAt":"2026-01-29T23:54:30Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1705,"state":"CLOSED","title":"[EXPORT-1168c] Implement signed URL generation for sharing exports"},{"closedAt":"2026-01-26T13:31:36Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1704,"state":"CLOSED","title":"[EXPORT-1168b] Implement automatic upload to S3 after export generation"},{"closedAt":"2026-01-26T01:41:28Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1703,"state":"CLOSED","title":"[EXPORT-1168a] Setup S3 bucket and AWS SDK configuration"},{"closedAt":null,"milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1698,"state":"OPEN","title":"[INTEL-1545e] Criar API REST para extração e comparação de editais"},{"closedAt":null,"milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1697,"state":"OPEN","title":"[INTEL-1545d] Implementar EditalComparisonService para análise de preços"},{"closedAt":null,"milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1696,"state":"OPEN","title":"[INTEL-1545c] Implementar normalização de itens para comparação"},{"closedAt":"2026-01-25T21:25:29Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1695,"state":"CLOSED","title":"[INTEL-1545b] Implementar EditalExtractionService para dados estruturados"},{"closedAt":"2026-01-25T20:13:34Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1694,"state":"CLOSED","title":"[INTEL-1545a] Integrar PageIndex com Contract Price Collector"},{"closedAt":null,"milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1690,"state":"OPEN","title":"[API-1275f] Testes de carga e documentação final"},{"closedAt":null,"milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1689,"state":"OPEN","title":"[API-1275e] Criar dashboard de uso da API no frontend"},{"closedAt":"2026-01-26T01:09:24Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1688,"state":"CLOSED","title":"[API-1275d] Criar ApiUsage entity e tracking de métricas"},{"closedAt":"2026-01-25T19:25:36Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1687,"state":"CLOSED","title":"[API-1275c] Adicionar OpenAPI/Swagger documentation"},{"closedAt":"2026-01-25T18:20:45Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1686,"state":"CLOSED","title":"[API-1275b] Implementar API Key authentication e rate limiting"},{"closedAt":"2026-01-25T17:24:03Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1685,"state":"CLOSED","title":"[API-1275a] Criar PublicPricesController com 3 endpoints RESTful"},{"closedAt":"2026-01-25T16:37:01Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1678,"state":"CLOSED","title":"[CONT-GOV-1289f] Adicionar testes de integração e documentação"},{"closedAt":"2026-01-25T14:28:23Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1677,"state":"CLOSED","title":"[CONT-GOV-1289e] Implementar tratamento de conflitos de sincronização"},{"closedAt":"2026-01-25T13:50:09Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1676,"state":"CLOSED","title":"[CONT-GOV-1289d] Implementar sincronização Pull de contratos"},{"closedAt":"2026-01-25T12:32:44Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1675,"state":"CLOSED","title":"[CONT-GOV-1289c] Implementar sincronização Push de contratos"},{"closedAt":"2026-01-25T11:25:23Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1674,"state":"CLOSED","title":"[CONT-GOV-1289b] Implementar autenticação Gov.br OAuth"},{"closedAt":"2026-01-24T23:39:51Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1673,"state":"CLOSED","title":"[CONT-GOV-1289a] Estudar e documentar API Contratos Gov.br"},{"closedAt":"2026-01-24T20:59:13Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1663,"state":"CLOSED","title":"[CONT-1288f] Add E2E tests for contracts dashboard"},{"closedAt":"2026-01-24T19:59:29Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1662,"state":"CLOSED","title":"[CONT-1288e] Add contracts expiration timeline"},{"closedAt":"2026-01-24T19:17:03Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1661,"state":"CLOSED","title":"[CONT-1288d] Add contract value by status chart"},{"closedAt":"2026-01-24T17:54:28Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1660,"state":"CLOSED","title":"[CONT-1288c] Add contracts list table with filters"},{"closedAt":"2026-01-24T15:23:04Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1659,"state":"CLOSED","title":"[CONT-1288b] Add KPI summary cards for contracts dashboard"},{"closedAt":"2026-01-24T13:34:56Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1658,"state":"CLOSED","title":"[CONT-1288a] Create contracts dashboard page structure"},{"closedAt":"2026-01-24T11:37:38Z","milestone":null,"number":1656,"state":"CLOSED","title":"[P0] Fix ESLint errors in FiscalizacaoPage"},{"closedAt":"2026-01-24T12:02:44Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1655,"state":"CLOSED","title":"[P0] Fix ESLint errors in FiscalizacaoPage and useFiscalizacao test"},{"closedAt":"2026-01-24T01:45:58Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1647,"state":"CLOSED","title":"[FISC-1286g] Add notification system for fiscalização events"},{"closedAt":"2026-01-24T11:37:38Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1646,"state":"CLOSED","title":"[FISC-1286f] Add E2E tests for fiscalização workflow"},{"closedAt":"2026-01-24T02:56:05Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1645,"state":"CLOSED","title":"[FISC-1286e] Create fiscalização interface in frontend"},{"closedAt":"2026-01-24T00:48:43Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1644,"state":"CLOSED","title":"[FISC-1286d] Add document upload to fiscalização entities"},{"closedAt":"2026-01-23T22:33:34Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1643,"state":"CLOSED","title":"[FISC-1286c] Create Ateste entity and approval workflow"},{"closedAt":"2026-01-23T21:48:21Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1642,"state":"CLOSED","title":"[FISC-1286b] Create Ocorrencia entity and CRUD endpoints"},{"closedAt":"2026-01-23T12:23:47Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1641,"state":"CLOSED","title":"[FISC-1286a] Create Medicao entity and CRUD endpoints"},{"closedAt":"2026-01-23T03:02:03Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":1637,"state":"CLOSED","title":"[QA-1074c] Implementar teste chaos: Payload grande com memory safety"},{"closedAt":"2026-01-23T11:27:15Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":1636,"state":"CLOSED","title":"[QA-1074b] Implementar teste chaos: API timeout com circuit breaker"},{"closedAt":"2026-01-23T02:14:46Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":1635,"state":"CLOSED","title":"[QA-1074a] Implementar teste chaos: Redis down com fallback"},{"closedAt":"2026-01-19T11:56:16Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1607,"state":"CLOSED","title":"[ANALYTICS-1270f] Validar acurácia e criar testes de benchmark"},{"closedAt":"2026-01-19T02:51:06Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1606,"state":"CLOSED","title":"[ANALYTICS-1270e] Criar API de correção manual e review"},{"closedAt":"2026-01-19T02:18:46Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1605,"state":"CLOSED","title":"[ANALYTICS-1270d] Criar pipeline de normalização batch"},{"closedAt":"2026-01-19T01:51:44Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1604,"state":"CLOSED","title":"[ANALYTICS-1270c] Implementar algoritmo de similaridade de texto"},{"closedAt":"2026-01-19T01:15:43Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1603,"state":"CLOSED","title":"[ANALYTICS-1270b] Implementar ItemNormalizationService com classificação LLM"},{"closedAt":"2026-01-18T21:54:18Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1602,"state":"CLOSED","title":"[ANALYTICS-1270a] Criar entity ItemCategory com taxonomia CATMAT/CATSER"},{"closedAt":"2026-01-18T21:16:04Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1596,"state":"CLOSED","title":"[RAG-1542e] Criar benchmark suite para Hybrid RAG"},{"closedAt":"2026-01-18T20:46:18Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1595,"state":"CLOSED","title":"[RAG-1542d] Implementar fallback automático entre paths RAG"},{"closedAt":"2026-01-18T20:17:49Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1594,"state":"CLOSED","title":"[RAG-1542c] Criar interface unificada HybridRagService"},{"closedAt":"2026-01-18T19:52:19Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1593,"state":"CLOSED","title":"[RAG-1542b] Implementar RagRouterService com decision logic"},{"closedAt":"2026-01-18T19:13:47Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1592,"state":"CLOSED","title":"[RAG-1542a] Implementar query complexity classifier"},{"closedAt":"2026-01-18T15:52:18Z","milestone":null,"number":1585,"state":"CLOSED","title":"[P0] Backend de Produção Fora do Ar - 502 Bad Gateway"},{"closedAt":"2026-01-18T18:11:53Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1582,"state":"CLOSED","title":"[JURIS-1540f] Integrar jurisprudência com ComplianceService para alertas"},{"closedAt":"2026-01-18T17:26:44Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1581,"state":"CLOSED","title":"[JURIS-1540e] Criar API de busca por jurisprudência no PageIndex"},{"closedAt":"2026-01-18T16:48:24Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1580,"state":"CLOSED","title":"[JURIS-1540d] Coletar e indexar acórdãos TCU sobre Lei 14.133 (mínimo 50)"},{"closedAt":"2026-01-18T16:22:12Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1579,"state":"CLOSED","title":"[JURIS-1540c] Coletar e indexar súmulas TCE-SP (mínimo 50)"},{"closedAt":"2026-01-18T15:32:15Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1578,"state":"CLOSED","title":"[JURIS-1540b] Criar JurisprudenciaSeeder com estrutura base"},{"closedAt":"2026-01-18T03:12:16Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1577,"state":"CLOSED","title":"[JURIS-1540a] Pesquisar e documentar fontes de jurisprudência TCE-SP e TCU"},{"closedAt":"2026-01-18T02:50:14Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1569,"state":"CLOSED","title":"[SINAPI-1539f] Configurar sync mensal automático SINAPI"},{"closedAt":"2026-01-18T02:07:41Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1568,"state":"CLOSED","title":"[SINAPI-1539e] Integrar busca SINAPI no price-aggregation.service"},{"closedAt":"2026-01-17T23:18:00Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1567,"state":"CLOSED","title":"[SINAPI-1539d] Criar endpoint de busca SINAPI com TreeSearchService"},{"closedAt":"2026-01-17T20:50:46Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1566,"state":"CLOSED","title":"[SINAPI-1539c] Processar catálogo SINAPI com TreeBuilderService"},{"closedAt":"2026-01-17T22:20:15Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1565,"state":"CLOSED","title":"[SINAPI-1539b] Extrair e normalizar dados SINAPI para formato JSON"},{"closedAt":"2026-01-17T21:21:32Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1564,"state":"CLOSED","title":"[SINAPI-1539a] Identificar e documentar fonte oficial SINAPI"},{"closedAt":"2026-01-17T14:05:25Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1554,"state":"CLOSED","title":"[PI-1538e] PoC PageIndex com Lei 14.133/2021 (Nova Lei de Licitações)"},{"closedAt":"2026-01-17T13:37:17Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1553,"state":"CLOSED","title":"[PI-1538d] Implementar TreeSearchService com LLM reasoning"},{"closedAt":"2026-01-17T11:41:38Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1552,"state":"CLOSED","title":"[PI-1538c] Implementar TreeBuilderService com integração Python"},{"closedAt":"2026-01-17T11:12:57Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1551,"state":"CLOSED","title":"[PI-1538b] Criar DocumentTree entity e migrations"},{"closedAt":"2026-01-17T05:11:09Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1550,"state":"CLOSED","title":"[PI-1538a] Setup infraestrutura módulo PageIndex - estrutura NestJS"},{"closedAt":null,"milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1545,"state":"OPEN","title":"feat(market-intel): Extração estruturada de editais com PageIndex"},{"closedAt":"2026-01-24T23:02:53Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1544,"state":"CLOSED","title":"feat(chat): Tree search contextualizado em documentos anexos"},{"closedAt":"2026-01-20T02:37:18Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1543,"state":"CLOSED","title":"feat(document-extraction): Gerar tree structure com PageIndex em uploads"},{"closedAt":"2026-01-18T21:20:04Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1542,"state":"CLOSED","title":"feat(rag): Implementar Hybrid RAG - Embeddings + PageIndex com router inteligente"},{"closedAt":"2026-01-18T18:44:52Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1541,"state":"CLOSED","title":"feat(orchestrator): Integrar PageIndex no Anti-Hallucination Agent"},{"closedAt":"2026-01-18T18:49:32Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1540,"state":"CLOSED","title":"feat(compliance): Indexar jurisprudências TCE-SP e TCU com PageIndex"},{"closedAt":"2026-01-18T02:54:31Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1539,"state":"CLOSED","title":"feat(gov-api): Indexar catálogo SINAPI completo com PageIndex"},{"closedAt":"2026-01-18T02:56:52Z","milestone":{"number":19,"title":"M17-PageIndex","description":"Integração do framework PageIndex para RAG reasoning-based. Sem Vector DB, sem chunking, human-like retrieval com 98.7% accuracy. Diferenciais: precisão legal, auditabilidade, compliance dinâmico, market intelligence.","dueOn":null},"number":1538,"state":"CLOSED","title":"feat(backend): Criar módulo PageIndex para indexação hierárquica de documentos"},{"closedAt":"2026-01-17T04:12:52Z","milestone":null,"number":1534,"state":"CLOSED","title":"[Parity] Implementar serialização Date em Compliance types"},{"closedAt":"2026-01-17T03:44:04Z","milestone":null,"number":1533,"state":"CLOSED","title":"[Parity] Adicionar currentVersion no TermoReferencia type"},{"closedAt":"2026-01-17T03:19:59Z","milestone":null,"number":1532,"state":"CLOSED","title":"[Parity] Adicionar campos LGPD/audit no User type"},{"closedAt":"2026-01-17T02:52:03Z","milestone":null,"number":1531,"state":"CLOSED","title":"[Parity] Corrigir tipo indicadoresDesempenho (string → string[])"},{"closedAt":"2026-01-17T02:16:18Z","milestone":null,"number":1530,"state":"CLOSED","title":"[Parity] Corrigir estrutura responsavelTecnico (flat → nested)"},{"closedAt":"2026-01-17T01:49:51Z","milestone":null,"number":1529,"state":"CLOSED","title":"[Parity] Sincronizar Section type com EtpSection entity"},{"closedAt":"2026-01-17T16:25:21Z","milestone":null,"number":1528,"state":"CLOSED","title":"[Frontend] Padronizar focus ring styles em todos componentes interativos"},{"closedAt":"2026-01-17T20:09:34Z","milestone":null,"number":1527,"state":"CLOSED","title":"[Frontend] Auditar e adicionar aria-labels em todos icon buttons"},{"closedAt":"2026-01-17T19:33:09Z","milestone":null,"number":1526,"state":"CLOSED","title":"[Frontend] Padronizar EmptyState em todas as listas e grids"},{"closedAt":"2026-01-17T16:32:09Z","milestone":null,"number":1525,"state":"CLOSED","title":"[Frontend] Adicionar skeleton states faltantes em todas as páginas"},{"closedAt":"2026-01-17T17:28:44Z","milestone":null,"number":1524,"state":"CLOSED","title":"[Frontend] Unificar hierarquia de Card/Surface components"},{"closedAt":"2026-01-17T16:00:42Z","milestone":null,"number":1523,"state":"CLOSED","title":"[Frontend] Documentar direção 'Sophistication & Trust' para sistema enterprise"},{"closedAt":"2026-01-17T15:47:27Z","milestone":null,"number":1522,"state":"CLOSED","title":"[Frontend] Implementar ESLint plugin para enforcement de design tokens"},{"closedAt":"2026-01-17T04:39:51Z","milestone":null,"number":1521,"state":"CLOSED","title":"[Frontend] Criar .design-engineer/system.md com tokens e direção de design"},{"closedAt":"2026-01-16T22:35:02Z","milestone":null,"number":1517,"state":"CLOSED","title":"[P0] Production Railway backend timeout - Server not responding"},{"closedAt":"2026-01-16T12:13:34Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1509,"state":"CLOSED","title":"[PESQ-1259d] Implementar Step 5: Revisão de Resultados e Tabela Comparativa"},{"closedAt":"2026-01-16T11:33:06Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1508,"state":"CLOSED","title":"[PESQ-1259c] Implementar Steps 3-4: Seleção de Fontes e Execução da Pesquisa"},{"closedAt":"2026-01-16T02:32:34Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1507,"state":"CLOSED","title":"[PESQ-1259b] Implementar Steps 1-2: Seleção de ETP/TR e Definição de Itens"},{"closedAt":"2026-01-16T01:55:24Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1506,"state":"CLOSED","title":"[PESQ-1259a] Criar página base e estrutura do wizard de Pesquisa de Preços"},{"closedAt":"2026-01-15T12:42:49Z","milestone":null,"number":1494,"state":"CLOSED","title":"[MOTION-1430f] Implementar suporte a prefers-reduced-motion global"},{"closedAt":"2026-01-15T12:10:48Z","milestone":null,"number":1493,"state":"CLOSED","title":"[MOTION-1430e] Implementar animações em Form Inputs"},{"closedAt":"2026-01-15T11:17:04Z","milestone":null,"number":1492,"state":"CLOSED","title":"[MOTION-1430d] Implementar animações em Modals e Dropdowns"},{"closedAt":"2026-01-15T03:03:23Z","milestone":null,"number":1491,"state":"CLOSED","title":"[MOTION-1430c] Implementar micro-interações em Cards"},{"closedAt":"2026-01-15T02:11:52Z","milestone":null,"number":1490,"state":"CLOSED","title":"[MOTION-1430b] Implementar micro-interações em Buttons"},{"closedAt":"2026-01-15T00:07:16Z","milestone":null,"number":1489,"state":"CLOSED","title":"[MOTION-1430a] Criar design tokens de animação Apple HIG"},{"closedAt":"2026-01-15T01:32:34Z","milestone":null,"number":1488,"state":"CLOSED","title":"[P0] Implement MSW Mocking for Lighthouse CI in GitHub Actions"},{"closedAt":"2026-01-15T00:41:55Z","milestone":null,"number":1487,"state":"CLOSED","title":"[P0] Implement Lighthouse CI with Railway Preview Deployments"},{"closedAt":"2026-01-14T23:34:22Z","milestone":null,"number":1480,"state":"CLOSED","title":"[A11Y-1431f] Testes WCAG e documentação de acessibilidade"},{"closedAt":"2026-01-14T22:40:25Z","milestone":null,"number":1479,"state":"CLOSED","title":"[A11Y-1431e] Implementar color accessibility (não usar cor como único indicador)"},{"closedAt":"2026-01-14T13:47:21Z","milestone":null,"number":1478,"state":"CLOSED","title":"[A11Y-1431d] Implementar focus management e keyboard navigation"},{"closedAt":"2026-01-14T12:47:53Z","milestone":null,"number":1477,"state":"CLOSED","title":"[A11Y-1431c] Implementar screen reader support (ARIA)"},{"closedAt":"2026-01-14T12:10:53Z","milestone":null,"number":1476,"state":"CLOSED","title":"[A11Y-1431b] Implementar touch targets >= 44x44px"},{"closedAt":"2026-01-14T11:44:38Z","milestone":null,"number":1475,"state":"CLOSED","title":"[A11Y-1431a] Implementar contraste WCAG AA com Liquid Glass"},{"closedAt":"2026-01-14T03:26:43Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1468,"state":"CLOSED","title":"[LAYOUT-1429f] Aplicar spacing tokens a Navigation, Modals e Lists"},{"closedAt":"2026-01-14T02:54:38Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1467,"state":"CLOSED","title":"[LAYOUT-1429e] Aplicar spacing tokens a Card grids e Form layouts"},{"closedAt":"2026-01-14T02:09:49Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1466,"state":"CLOSED","title":"[LAYOUT-1429d] Aplicar spacing tokens aos Page layouts principais"},{"closedAt":"2026-01-14T01:38:10Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1465,"state":"CLOSED","title":"[LAYOUT-1429c] Implementar safe areas e insets para notch/home indicator"},{"closedAt":"2026-01-14T00:38:02Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1464,"state":"CLOSED","title":"[LAYOUT-1429b] Implementar grid system responsivo 12 colunas"},{"closedAt":"2026-01-13T23:57:43Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1463,"state":"CLOSED","title":"[LAYOUT-1429a] Criar design tokens de espaçamento Apple HIG"},{"closedAt":"2026-01-13T12:13:41Z","milestone":null,"number":1446,"state":"CLOSED","title":"feat(frontend): handle blocked demo user state in dashboard"},{"closedAt":"2026-01-13T11:36:21Z","milestone":null,"number":1445,"state":"CLOSED","title":"feat(frontend): create Demo Users management page for system admin"},{"closedAt":"2026-01-13T03:30:54Z","milestone":null,"number":1444,"state":"CLOSED","title":"feat(frontend): add demo user management to admin store"},{"closedAt":"2026-01-13T02:54:22Z","milestone":null,"number":1443,"state":"CLOSED","title":"feat(backend): allow blocked demo users to login in read-only mode"},{"closedAt":"2026-01-13T02:04:19Z","milestone":null,"number":1442,"state":"CLOSED","title":"feat(backend): implement DemoUserEtpLimitGuard for ETP creation"},{"closedAt":"2026-01-13T01:21:49Z","milestone":null,"number":1441,"state":"CLOSED","title":"feat(backend): add demo user management endpoints to system-admin"},{"closedAt":"2026-01-13T00:28:24Z","milestone":null,"number":1440,"state":"CLOSED","title":"feat(backend): implement DemoUserService for demo account management"},{"closedAt":"2026-01-12T22:56:50Z","milestone":null,"number":1439,"state":"CLOSED","title":"feat(backend): add etpLimitCount field to User entity for demo users"},{"closedAt":"2026-01-13T14:09:58Z","milestone":null,"number":1437,"state":"CLOSED","title":"[HIG-1426f] Aplicar Liquid Glass a Tooltips e Popovers"},{"closedAt":"2026-01-13T15:02:29Z","milestone":null,"number":1436,"state":"CLOSED","title":"[HIG-1426e] Aplicar Liquid Glass a Navigation e Sidebar"},{"closedAt":"2026-01-13T13:26:41Z","milestone":null,"number":1435,"state":"CLOSED","title":"[HIG-1426d] Aplicar Liquid Glass a Modals e Dialogs"},{"closedAt":"2026-01-13T12:57:07Z","milestone":null,"number":1434,"state":"CLOSED","title":"[HIG-1426c] Aplicar Liquid Glass aos Cards"},{"closedAt":"2026-01-13T12:35:03Z","milestone":null,"number":1433,"state":"CLOSED","title":"[HIG-1426b] Criar componente base GlassSurface"},{"closedAt":"2026-01-12T14:59:56Z","milestone":null,"number":1432,"state":"CLOSED","title":"[HIG-1426a] Criar design tokens Liquid Glass"},{"closedAt":"2026-01-14T23:40:17Z","milestone":null,"number":1431,"state":"CLOSED","title":"[P0] Implementar Acessibilidade Apple HIG (WCAG 2.1 AA + Apple A11y)"},{"closedAt":"2026-01-15T12:48:48Z","milestone":null,"number":1430,"state":"CLOSED","title":"[P0] Implementar Micro-interações e Animações Apple HIG (Motion Design)"},{"closedAt":"2026-01-14T03:30:13Z","milestone":null,"number":1429,"state":"CLOSED","title":"[P0] Implementar Layout e Espaçamento Apple HIG (Grid + Whitespace)"},{"closedAt":"2026-01-13T23:19:16Z","milestone":null,"number":1428,"state":"CLOSED","title":"[P0] Implementar Sistema de Cores Apple HIG (Paleta Semântica + Contraste)"},{"closedAt":"2026-01-13T22:38:41Z","milestone":null,"number":1427,"state":"CLOSED","title":"[P0] Implementar Tipografia Apple HIG (San Francisco + Escala Dinâmica)"},{"closedAt":"2026-01-13T15:05:37Z","milestone":null,"number":1426,"state":"CLOSED","title":"[P0] Implementar Liquid Glass Design System (Apple HIG 2025)"},{"closedAt":"2026-01-12T01:42:42Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1415,"state":"CLOSED","title":"[Pesquisa-b4] Endpoint e testes de integracao para coleta multi-fonte"},{"closedAt":"2026-01-11T21:19:03Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1414,"state":"CLOSED","title":"[Pesquisa-b3] Expandir busca de preços de contratos PNCP/Compras.gov"},{"closedAt":"2026-01-11T20:31:26Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1413,"state":"CLOSED","title":"[Pesquisa-b2] Implementar busca em Atas de Registro de Preços via PNCP"},{"closedAt":"2026-01-11T20:06:08Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1412,"state":"CLOSED","title":"[Pesquisa-b1] Integrar PriceAggregation no PesquisaPrecosService"},{"closedAt":"2026-01-11T03:13:18Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1398,"state":"CLOSED","title":"[CHAT-1167g] Add E2E tests and documentation for chatbot feature"},{"closedAt":"2026-01-11T02:53:07Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1397,"state":"CLOSED","title":"[CHAT-1167f] Add proactive suggestions and field validation hints"},{"closedAt":"2026-01-11T02:15:16Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1396,"state":"CLOSED","title":"[CHAT-1167e] Integrate ChatWidget into ETP Editor page"},{"closedAt":"2026-01-11T01:32:51Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1395,"state":"CLOSED","title":"[CHAT-1167d] Create ChatWidget React component"},{"closedAt":"2026-01-11T00:33:33Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1394,"state":"CLOSED","title":"[CHAT-1167c] Implement AI chat completion with ETP context injection"},{"closedAt":"2026-01-10T23:44:55Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1393,"state":"CLOSED","title":"[CHAT-1167b] Implement chat API endpoints with rate limiting"},{"closedAt":"2026-01-10T22:53:48Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1392,"state":"CLOSED","title":"[CHAT-1167a] Create ChatMessage entity and backend module structure"},{"closedAt":"2026-01-10T22:10:16Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1386,"state":"CLOSED","title":"[TCU-1163e] Componente indicador de conformidade no ETP Editor"},{"closedAt":"2026-01-10T21:23:10Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1385,"state":"CLOSED","title":"[TCU-1163d] Criar endpoints REST para validação de conformidade"},{"closedAt":"2026-01-10T20:30:14Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1384,"state":"CLOSED","title":"[TCU-1163c] Seed checklist de conformidade TCU por tipo de ETP"},{"closedAt":"2026-01-10T19:49:31Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1383,"state":"CLOSED","title":"[TCU-1163b] Criar entity ComplianceChecklist e service de validação"},{"closedAt":"2026-01-10T18:55:30Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1382,"state":"CLOSED","title":"[TCU-1163a] Pesquisa e documentação de modelos TCU/TCE"},{"closedAt":"2026-01-09T13:40:23Z","milestone":null,"number":1374,"state":"CLOSED","title":"[P0] Badge de status ausente em alguns cards de ETP"},{"closedAt":"2026-01-09T14:05:47Z","milestone":null,"number":1373,"state":"CLOSED","title":"[P0] Onboarding checklist não reconhece ETPs existentes"},{"closedAt":"2026-01-09T13:18:56Z","milestone":null,"number":1372,"state":"CLOSED","title":"[P0] Botão 'Gerar Todas Seções' exibe funcionalidade indisponível como se estivesse ativa"},{"closedAt":"2026-01-09T12:51:28Z","milestone":null,"number":1371,"state":"CLOSED","title":"[P0] BLOQUEANTE: Criação de novo ETP via wizard falha com erro 400"},{"closedAt":"2026-01-10T18:24:56Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1367,"state":"CLOSED","title":"[DASH-1164e] Implementar ranking de produtividade por usuário (Admin)"},{"closedAt":"2026-01-10T16:13:18Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1366,"state":"CLOSED","title":"[DASH-1164d] Implementar filtro por período no dashboard"},{"closedAt":"2026-01-09T12:28:27Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1365,"state":"CLOSED","title":"[DASH-1164c] Implementar gráfico de distribuição por status"},{"closedAt":"2026-01-09T03:55:13Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1364,"state":"CLOSED","title":"[DASH-1164b] Implementar métrica de tempo médio de criação de ETP"},{"closedAt":"2026-01-09T03:22:32Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1363,"state":"CLOSED","title":"[DASH-1164a] Implementar cálculo de taxa de sucesso de ETPs"},{"closedAt":"2026-01-09T00:08:47Z","milestone":null,"number":1355,"state":"CLOSED","title":"[P0] REGRESSAO: Exportacao PDF ainda falha com erro 500 (#1342 nao corrigido)"},{"closedAt":"2026-01-09T14:35:24Z","milestone":null,"number":1354,"state":"CLOSED","title":"[P2] Lixo de testes E2E em ambiente de producao - dominios test-e2e-* nao limpos"},{"closedAt":"2026-01-09T00:39:11Z","milestone":null,"number":1353,"state":"CLOSED","title":"[P0] Pagina de Administracao parcialmente em ingles - i18n quebrado"},{"closedAt":"2026-01-09T00:35:17Z","milestone":null,"number":1352,"state":"CLOSED","title":"[P0] Estatisticas da pagina Admin retornam zeros apesar de haver dominios"},{"closedAt":"2026-01-09T01:36:25Z","milestone":null,"number":1351,"state":"CLOSED","title":"[P0] Dashboard Admin mostra ETPs de outros usuarios sem identificar a autoria"},{"closedAt":"2026-01-09T02:58:35Z","milestone":null,"number":1347,"state":"CLOSED","title":"[P0] Campo de data aceita apenas formato ISO, nao formato brasileiro"},{"closedAt":"2026-01-09T02:04:35Z","milestone":null,"number":1346,"state":"CLOSED","title":"[P0] Banner de vendas intrusivo durante uso do sistema demo"},{"closedAt":"2026-01-09T00:53:33Z","milestone":null,"number":1345,"state":"CLOSED","title":"[P0] Tabs de secoes mostram apenas numeros, nao o titulo da secao"},{"closedAt":"2026-01-09T01:16:59Z","milestone":null,"number":1344,"state":"CLOSED","title":"[P0] Inconsistencia no indicador de progresso entre lista e detalhe do ETP"},{"closedAt":"2026-01-08T23:41:46Z","milestone":null,"number":1343,"state":"CLOSED","title":"[P0] Templates de ETP nao disponiveis no wizard de criacao"},{"closedAt":"2026-01-08T22:48:28Z","milestone":null,"number":1342,"state":"CLOSED","title":"[P0] Exportacao PDF falha com erro 500"},{"closedAt":"2026-01-08T22:24:23Z","milestone":null,"number":1341,"state":"CLOSED","title":"[P0] Usuario demo nao consegue criar novos ETPs - Erro 403"},{"closedAt":"2026-01-08T03:49:03Z","milestone":null,"number":1332,"state":"CLOSED","title":"[P0] Botão Próximo no passo 6 dispara criação do ETP prematuramente"},{"closedAt":"2026-01-08T11:59:06Z","milestone":null,"number":1331,"state":"CLOSED","title":"[P0] Inconsistência: ETP mostra 100% mas 0 Concluídos no dashboard"},{"closedAt":"2026-01-08T12:23:16Z","milestone":null,"number":1330,"state":"CLOSED","title":"[P0] Passo 5 do wizard inútil quando não há templates"},{"closedAt":"2026-01-08T12:54:37Z","milestone":null,"number":1329,"state":"CLOSED","title":"[P0] Textos sem acentuação em toda interface - aspecto amador"},{"closedAt":"2026-01-08T13:15:56Z","milestone":null,"number":1328,"state":"CLOSED","title":"[P0] Conta demo sem templates - primeira impressão arruinada"},{"closedAt":"2026-01-08T11:24:34Z","milestone":null,"number":1327,"state":"CLOSED","title":"[P0] Modal de boas-vindas aparece repetidamente a cada navegação"},{"closedAt":"2026-01-08T03:28:17Z","milestone":null,"number":1326,"state":"CLOSED","title":"[P0] Dashboard mostra ETP de outro usuário - vazamento de dados e loading infinito"},{"closedAt":"2026-01-08T11:02:47Z","milestone":null,"number":1325,"state":"CLOSED","title":"[P0] Erro genérico ao criar ETP - usuário não sabe o que está errado"},{"closedAt":"2026-01-08T02:25:26Z","milestone":null,"number":1318,"state":"CLOSED","title":"[P0] Tabs das seções do ETP estão fora de ordem numérica"},{"closedAt":"2026-01-08T02:10:23Z","milestone":null,"number":1317,"state":"CLOSED","title":"[P0] Título do ETP não aparece no Editor - heading vazio"},{"closedAt":"2026-01-08T01:52:02Z","milestone":null,"number":1316,"state":"CLOSED","title":"[P0] Progresso do ETP mostra apenas '%' sem valor numérico"},{"closedAt":"2026-01-08T00:56:56Z","milestone":null,"number":1315,"state":"CLOSED","title":"[P0] Exportar PDF retorna erro 404 - exportação não funciona"},{"closedAt":"2026-01-08T01:20:06Z","milestone":null,"number":1314,"state":"CLOSED","title":"[P0] BLOQUEADOR: Salvar seção do ETP retorna erro 404 - conteúdo perdido"},{"closedAt":"2026-01-08T00:25:23Z","milestone":null,"number":1313,"state":"CLOSED","title":"[P0] BLOQUEADOR: Criar novo ETP retorna erro 500 - happy path quebrado"},{"closedAt":"2026-01-07T14:30:34Z","milestone":null,"number":1304,"state":"CLOSED","title":"[P0] Erro ao salvar secao no ETP Editor"},{"closedAt":"2026-01-07T14:50:54Z","milestone":null,"number":1303,"state":"CLOSED","title":"[P0] Erro ao clicar em 'Gerar Sugestao' no ETP Editor"},{"closedAt":"2026-01-07T23:28:31Z","milestone":null,"number":1302,"state":"CLOSED","title":"[P0] Politica de Privacidade - UI mediocre e falta responsividade mobile"},{"closedAt":"2026-01-07T22:40:53Z","milestone":null,"number":1301,"state":"CLOSED","title":"[P0] Termos de Uso - UI mediocre e falta responsividade mobile"},{"closedAt":"2026-01-07T22:15:43Z","milestone":null,"number":1300,"state":"CLOSED","title":"[P0] Textos sem acentuacao em toda UI"},{"closedAt":"2026-01-07T13:22:05Z","milestone":null,"number":1299,"state":"CLOSED","title":"[P0] System Admin nao ve botoes de gestao de usuarios/managers"},{"closedAt":"2026-01-07T13:53:44Z","milestone":null,"number":1298,"state":"CLOSED","title":"[P0] Link 'Manual do Usuario' retorna 404"},{"closedAt":null,"milestone":{"number":18,"title":"M16: Features Complementares","description":"Features adicionais de oportunidades de mercado: IA similar ALICE/TCU, suporte MPE, integrações TCE estaduais, white-label.","dueOn":null},"number":1294,"state":"OPEN","title":"[White-label] Personalização por cliente"},{"closedAt":null,"milestone":{"number":18,"title":"M16: Features Complementares","description":"Features adicionais de oportunidades de mercado: IA similar ALICE/TCU, suporte MPE, integrações TCE estaduais, white-label.","dueOn":null},"number":1293,"state":"OPEN","title":"[Integração] Conectar com sistemas estaduais TCE"},{"closedAt":null,"milestone":{"number":18,"title":"M16: Features Complementares","description":"Features adicionais de oportunidades de mercado: IA similar ALICE/TCU, suporte MPE, integrações TCE estaduais, white-label.","dueOn":null},"number":1292,"state":"OPEN","title":"[MPE] Suporte especial para Micro e Pequenas Empresas"},{"closedAt":null,"milestone":{"number":18,"title":"M16: Features Complementares","description":"Features adicionais de oportunidades de mercado: IA similar ALICE/TCU, suporte MPE, integrações TCE estaduais, white-label.","dueOn":null},"number":1291,"state":"OPEN","title":"[IA] Validação automática similar ao ALICE/TCU"},{"closedAt":null,"milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1290,"state":"OPEN","title":"[Contratos-g] App mobile para fiscalização em campo"},{"closedAt":"2026-01-25T16:42:15Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1289,"state":"CLOSED","title":"[Contratos-f] Integração com Contratos Gov.br"},{"closedAt":"2026-01-24T23:14:08Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1288,"state":"CLOSED","title":"[Contratos-e] Painel de acompanhamento de contratos"},{"closedAt":"2026-01-22T23:39:52Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1287,"state":"CLOSED","title":"[Contratos-d] Alertas de vencimento e aditivos"},{"closedAt":"2026-01-24T23:14:12Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1286,"state":"CLOSED","title":"[Contratos-c] Módulo de fiscalização"},{"closedAt":"2026-01-20T12:52:52Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1285,"state":"CLOSED","title":"[Contratos-b] Vínculo ETP → TR → Edital → Contrato"},{"closedAt":"2026-01-19T23:56:40Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1284,"state":"CLOSED","title":"[Contratos-a] Criar entity Contrato com ciclo de vida"},{"closedAt":"2026-01-24T23:14:56Z","milestone":{"number":17,"title":"M15: Gestão de Contratos","description":"Módulo completo de fiscalização e execução contratual: ciclo de vida, medições, alertas, integração com Contratos Gov.br.","dueOn":null},"number":1283,"state":"CLOSED","title":"[Contratos] Módulo de Gestão de Contratos - EPIC"},{"closedAt":"2026-01-22T12:41:50Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1282,"state":"CLOSED","title":"[Edital-f] Export edital formatado PDF/DOCX"},{"closedAt":"2026-01-22T11:13:58Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1281,"state":"CLOSED","title":"[Edital-e] Validação de cláusulas obrigatórias"},{"closedAt":"2026-01-20T14:26:30Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1280,"state":"CLOSED","title":"[Edital-d] Editor de edital no frontend"},{"closedAt":"2026-01-20T11:24:30Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1279,"state":"CLOSED","title":"[Edital-c] Geração automática a partir de ETP+TR+Pesquisa"},{"closedAt":"2026-01-20T00:58:40Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1278,"state":"CLOSED","title":"[Edital-b] Templates de edital por modalidade"},{"closedAt":"2026-01-19T23:24:49Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1277,"state":"CLOSED","title":"[Edital-a] Criar entity Edital com estrutura completa"},{"closedAt":"2026-01-22T12:43:41Z","milestone":{"number":16,"title":"M14: Geração de Edital","description":"Templates de edital por modalidade (Pregão, Concorrência, Dispensa, Inexigibilidade) integrados ao processo ETP+TR+Pesquisa.","dueOn":null},"number":1276,"state":"CLOSED","title":"[Edital] Módulo de Geração de Edital - EPIC"},{"closedAt":null,"milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1275,"state":"OPEN","title":"[Analytics-g] API de consulta de preços para terceiros"},{"closedAt":"2026-01-19T14:39:30Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1274,"state":"CLOSED","title":"[Analytics-f] Integrar alertas no fluxo de criação ETP"},{"closedAt":"2026-01-19T13:48:38Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1273,"state":"CLOSED","title":"[Analytics-e] Dashboard de inteligência de mercado"},{"closedAt":"2026-01-19T12:56:50Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1272,"state":"CLOSED","title":"[Analytics-d] Sistema de alertas de sobrepreço"},{"closedAt":"2026-01-19T12:29:01Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1271,"state":"CLOSED","title":"[Analytics-c] Motor de benchmark regional"},{"closedAt":"2026-01-20T01:32:56Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1270,"state":"CLOSED","title":"[Analytics-b] Normalização e categorização de itens"},{"closedAt":"2026-01-17T00:59:05Z","milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1269,"state":"CLOSED","title":"[Analytics-a] Coletor de preços reais de pregões"},{"closedAt":null,"milestone":{"number":15,"title":"M13: Inteligência de Mercado","description":"Dados proprietários e analytics avançados: preços reais de pregões, benchmark regional, alertas de sobrepreço.","dueOn":null},"number":1268,"state":"OPEN","title":"[Analytics] Inteligência de Mercado - EPIC"},{"closedAt":"2026-01-12T22:23:08Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1267,"state":"CLOSED","title":"[Compliance-f] Dashboard de compliance do órgão"},{"closedAt":"2026-01-16T14:34:49Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1266,"state":"CLOSED","title":"[Compliance-e] Alertas de não-conformidade em tempo real"},{"closedAt":"2026-01-15T23:10:22Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1265,"state":"CLOSED","title":"[Compliance-d] Selo de Conformidade visual"},{"closedAt":"2026-01-16T13:56:26Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1264,"state":"CLOSED","title":"[Compliance-c] Criar relatório de conformidade"},{"closedAt":"2026-01-15T22:28:49Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1263,"state":"CLOSED","title":"[Compliance-b] Implementar engine de validação de ETP"},{"closedAt":"2026-01-12T12:48:47Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1262,"state":"CLOSED","title":"[Compliance-a] Mapear critérios de auditoria TCU/TCE"},{"closedAt":"2026-01-16T14:39:57Z","milestone":{"number":14,"title":"M12: Compliance TCE","description":"Sistema de validação automática contra critérios dos Tribunais de Contas (TCU/TCE). Inclui selo de conformidade e alertas em tempo real.","dueOn":null},"number":1261,"state":"CLOSED","title":"[Compliance] Validação TCE - EPIC"},{"closedAt":"2026-01-16T00:08:19Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1260,"state":"CLOSED","title":"[Pesquisa-f] Export relatório de pesquisa PDF"},{"closedAt":"2026-01-16T12:31:20Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1259,"state":"CLOSED","title":"[Pesquisa-e] Interface de pesquisa no frontend"},{"closedAt":"2026-01-12T03:26:26Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1258,"state":"CLOSED","title":"[Pesquisa-d] Justificativa automática de metodologia"},{"closedAt":"2026-01-12T02:42:32Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1257,"state":"CLOSED","title":"[Pesquisa-c] Gerar mapa comparativo de preços"},{"closedAt":"2026-01-16T00:16:24Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1256,"state":"CLOSED","title":"[Pesquisa-b] Implementar coleta automática multi-fonte"},{"closedAt":"2026-01-11T18:54:00Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1255,"state":"CLOSED","title":"[Pesquisa-a] Criar entity PesquisaPrecos com metodologia"},{"closedAt":"2026-01-12T13:48:07Z","milestone":{"number":13,"title":"M11: Pesquisa de Preços Formal","description":"Módulo estruturado de pesquisa de preços com metodologia, justificativa e coleta automática multi-fonte (PNCP, SINAPI, SICRO, Atas RP).","dueOn":null},"number":1254,"state":"CLOSED","title":"[Pesquisa] Módulo de Pesquisa de Preços - EPIC"},{"closedAt":"2026-01-16T23:24:53Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1253,"state":"CLOSED","title":"[TR-f] Versionamento e histórico de TR"},{"closedAt":"2026-01-11T18:31:28Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1252,"state":"CLOSED","title":"[TR-e] Export TR em PDF/DOCX com formatação oficial"},{"closedAt":"2026-01-11T16:45:26Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1251,"state":"CLOSED","title":"[TR-d] Implementar editor de TR no frontend"},{"closedAt":"2026-01-11T15:36:43Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1250,"state":"CLOSED","title":"[TR-c] Criar templates de TR por categoria"},{"closedAt":"2026-01-11T14:55:36Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1249,"state":"CLOSED","title":"[TR-b] Implementar geração automática TR a partir do ETP"},{"closedAt":"2026-01-11T14:23:07Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1248,"state":"CLOSED","title":"[TR-a] Criar entity TermoReferencia e relacionamentos"},{"closedAt":"2026-01-12T13:48:03Z","milestone":{"number":12,"title":"M10: Termo de Referência","description":"Módulo de geração automática de Termo de Referência a partir do ETP. Primeiro módulo do ciclo completo de contratações.","dueOn":null},"number":1247,"state":"CLOSED","title":"[TR] Módulo de Termo de Referência - EPIC"},{"closedAt":"2026-01-07T12:01:55Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1241,"state":"CLOSED","title":"[TMPL-1161g] Add E2E tests for template-based ETP creation"},{"closedAt":"2026-01-07T11:43:36Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1240,"state":"CLOSED","title":"[TMPL-1161f] Implement dynamic fields based on template selection"},{"closedAt":"2026-01-07T03:50:22Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1239,"state":"CLOSED","title":"[TMPL-1161e] Integrate TemplateSelector into CreateETPWizard"},{"closedAt":"2026-01-07T03:11:07Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1238,"state":"CLOSED","title":"[TMPL-1161d] Create TemplateSelector frontend component"},{"closedAt":"2026-01-07T02:31:53Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1237,"state":"CLOSED","title":"[TMPL-1161c] Create templates API endpoints"},{"closedAt":"2026-01-07T02:06:19Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1236,"state":"CLOSED","title":"[TMPL-1161b] Seed 4 base templates (Obras, TI, Serviços, Materiais)"},{"closedAt":"2026-01-07T01:02:53Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1235,"state":"CLOSED","title":"[TMPL-1161a] Create EtpTemplate entity and module structure"},{"closedAt":"2026-01-07T00:33:50Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1228,"state":"CLOSED","title":"[ETP-1158f] Testes E2E para wizard de criação expandido"},{"closedAt":"2026-01-06T22:41:37Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1227,"state":"CLOSED","title":"[ETP-1158e] Criar componente CreateETPWizard com formulário multi-step"},{"closedAt":"2026-01-06T22:07:11Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1226,"state":"CLOSED","title":"[ETP-1158d] Expandir entity e DTO com campos de Estimativa de Custos"},{"closedAt":"2026-01-06T14:52:33Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1225,"state":"CLOSED","title":"[ETP-1158c] Expandir entity e DTO com campos de Requisitos e Riscos"},{"closedAt":"2026-01-06T14:14:28Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1224,"state":"CLOSED","title":"[ETP-1158b] Expandir entity e DTO com campos de Objeto e Justificativa"},{"closedAt":"2026-01-06T13:31:07Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1223,"state":"CLOSED","title":"[ETP-1158a] Expandir entity e DTO com campos de Identificação"},{"closedAt":"2026-01-06T10:48:39Z","milestone":null,"number":1218,"state":"CLOSED","title":"[Security] Atualizar jspdf para corrigir vulnerabilidade crítica (Path Traversal)"},{"closedAt":"2026-01-06T01:51:40Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1215,"state":"CLOSED","title":"[UX] Implementar validação em tempo real dos campos ETP"},{"closedAt":"2026-01-06T11:37:42Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1214,"state":"CLOSED","title":"[Export] Implementar preview de documento antes do export"},{"closedAt":"2026-01-06T12:06:54Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1213,"state":"CLOSED","title":"[UX] Implementar wizard de onboarding para primeiro uso"},{"closedAt":"2026-01-06T01:02:29Z","milestone":null,"number":1209,"state":"CLOSED","title":"[CHAOS-1074c] Test: Large payload resilience"},{"closedAt":"2026-01-06T00:17:42Z","milestone":null,"number":1208,"state":"CLOSED","title":"[CHAOS-1074b] Test: API timeout resilience"},{"closedAt":"2026-01-05T22:58:47Z","milestone":null,"number":1207,"state":"CLOSED","title":"[CHAOS-1074a] Test: Redis failure resilience"},{"closedAt":"2026-01-04T15:46:08Z","milestone":null,"number":1195,"state":"CLOSED","title":"fix(frontend): WarningBanner usa cores hardcoded, não segue tema"},{"closedAt":"2026-01-04T15:20:42Z","milestone":null,"number":1194,"state":"CLOSED","title":"fix(frontend): erro 'Cannot read properties of undefined' no ETPEditor"},{"closedAt":"2026-01-05T03:41:54Z","milestone":null,"number":1193,"state":"CLOSED","title":"fix(frontend): header com z-index incorreto sobrepõe sidebar"},{"closedAt":"2026-01-15T22:22:26Z","milestone":null,"number":1191,"state":"CLOSED","title":"[E2E] Create dedicated staging environment for E2E tests"},{"closedAt":null,"milestone":null,"number":1190,"state":"OPEN","title":"[CI] Reduce E2E pipeline timeout from 90min to 20min target"},{"closedAt":"2026-01-20T22:59:46Z","milestone":null,"number":1189,"state":"CLOSED","title":"[CI] Skip E2E tests for documentation-only PRs"},{"closedAt":"2026-01-15T22:22:26Z","milestone":null,"number":1187,"state":"CLOSED","title":"[E2E] Persistent 401 Unauthorized errors during test execution"},{"closedAt":"2026-01-05T03:15:10Z","milestone":null,"number":1186,"state":"CLOSED","title":"[E2E] 429 Rate Limiting causing test timeouts in CI"},{"closedAt":"2026-01-03T14:01:30Z","milestone":null,"number":1177,"state":"CLOSED","title":"[Security][P0] Fix HIGH severity vulnerability in qs dependency (GHSA-6rw7-vpxm-498p)"},{"closedAt":"2026-01-03T15:06:40Z","milestone":null,"number":1176,"state":"CLOSED","title":"[A11Y] Fix WCAG 2.1 AA color contrast violations in auth forms"},{"closedAt":"2026-01-20T11:48:55Z","milestone":null,"number":1172,"state":"CLOSED","title":"[E2E] Fix Auth Session tests for Railway environment"},{"closedAt":"2026-01-23T01:42:40Z","milestone":null,"number":1171,"state":"CLOSED","title":"[E2E] Fix Auth Login-Flow tests for Railway environment"},{"closedAt":"2026-01-03T20:07:03Z","milestone":null,"number":1170,"state":"CLOSED","title":"[E2E/CI] Configure Railway environment variables in Playwright workflow"},{"closedAt":"2026-01-06T02:23:37Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1169,"state":"CLOSED","title":"[UX] Implementar auto-save durante edição"},{"closedAt":null,"milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1168,"state":"OPEN","title":"[Export] Integrar armazenamento em nuvem (S3)"},{"closedAt":"2026-01-12T13:48:00Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1167,"state":"CLOSED","title":"[Assistente] Implementar chatbot para dúvidas durante preenchimento"},{"closedAt":"2026-01-16T22:17:01Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1166,"state":"CLOSED","title":"[Preços] Ajustar schedule para atualização semanal de cache"},{"closedAt":"2026-01-06T12:57:11Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1165,"state":"CLOSED","title":"[Preços] Persistir histórico SINAPI/SICRO em banco de dados"},{"closedAt":"2026-01-12T13:47:56Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1164,"state":"CLOSED","title":"[Dashboard] Adicionar métricas avançadas (taxa de sucesso, tempo médio)"},{"closedAt":"2026-01-12T13:47:52Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1163,"state":"CLOSED","title":"[Conformidade] Adicionar templates baseados em modelos TCU/TCES"},{"closedAt":"2026-01-05T12:44:50Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1162,"state":"CLOSED","title":"[UX] Implementar UI de histórico de versões"},{"closedAt":"2026-01-07T12:57:15Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1161,"state":"CLOSED","title":"[Templates] Criar modelos pré-configurados por tipo (Obras, TI, Serviços, Materiais)"},{"closedAt":"2026-01-05T21:58:54Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1160,"state":"CLOSED","title":"[Riscos] Implementar análise de riscos parametrizada (BAIXO/MÉDIO/ALTO)"},{"closedAt":"2026-01-05T14:34:03Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1159,"state":"CLOSED","title":"[Preços] Implementar cálculo de média entre fontes PNCP/SINAPI/SICRO"},{"closedAt":"2026-01-07T12:57:11Z","milestone":{"number":11,"title":"MVP Comercial","description":"Funcionalidades necessárias para versão comercializável do ETP Express","dueOn":null},"number":1158,"state":"CLOSED","title":"[ETP] Expandir formulário de criação para 20-30 campos"},{"closedAt":"2026-01-02T23:09:15Z","milestone":null,"number":1156,"state":"CLOSED","title":"[E2E] Fix Admin Audit tests - 1 failing test"},{"closedAt":"2026-01-03T13:15:15Z","milestone":null,"number":1155,"state":"CLOSED","title":"[E2E] Fix Manager Users tests - 3 failing tests"},{"closedAt":"2026-01-04T03:32:12Z","milestone":null,"number":1154,"state":"CLOSED","title":"[E2E] Fix Export tests (PDF/DOCX) - 6 failing tests"},{"closedAt":"2026-01-03T13:27:11Z","milestone":null,"number":1153,"state":"CLOSED","title":"[E2E] Fix Auth Password-Reset tests - 4 failing tests"},{"closedAt":"2026-01-04T03:04:38Z","milestone":null,"number":1152,"state":"CLOSED","title":"[E2E] Fix Manager Dashboard tests - 5 failing tests"},{"closedAt":"2026-01-03T22:41:25Z","milestone":null,"number":1151,"state":"CLOSED","title":"[E2E] Fix Admin Domains tests - 5 failing tests"},{"closedAt":"2026-01-04T20:11:14Z","milestone":null,"number":1150,"state":"CLOSED","title":"[E2E] Fix ETP Lifecycle tests - 7 failing tests"},{"closedAt":"2026-01-04T17:08:11Z","milestone":null,"number":1149,"state":"CLOSED","title":"[E2E] Fix ETP Edit tests - 7 failing tests"},{"closedAt":"2026-01-04T01:29:17Z","milestone":null,"number":1148,"state":"CLOSED","title":"[E2E] Fix Auth Logout tests - 7 failing tests"},{"closedAt":"2026-01-03T23:52:10Z","milestone":null,"number":1147,"state":"CLOSED","title":"[E2E] Fix Auth Role-Access tests - 9 failing tests"},{"closedAt":"2026-01-03T20:44:55Z","milestone":null,"number":1146,"state":"CLOSED","title":"[E2E] Fix ETP CRUD tests - 13 failing tests"},{"closedAt":"2026-01-01T23:53:41Z","milestone":null,"number":1138,"state":"CLOSED","title":"fix(e2e): Playwright Railway config needs valid credentials"},{"closedAt":null,"milestone":null,"number":1137,"state":"OPEN","title":"[E2E] Epic: Fix all 73 failing E2E tests for Railway CI"},{"closedAt":"2026-01-03T17:46:30Z","milestone":null,"number":1136,"state":"CLOSED","title":"[E2E] Fix API connectivity tests for Railway environment"},{"closedAt":"2026-01-03T17:46:27Z","milestone":null,"number":1135,"state":"CLOSED","title":"[E2E] Fix Auth/Role access tests for Railway environment"},{"closedAt":"2026-01-03T17:46:24Z","milestone":null,"number":1134,"state":"CLOSED","title":"[E2E] Fix Export (PDF/DOCX) tests for Railway environment"},{"closedAt":"2026-01-03T17:46:21Z","milestone":null,"number":1133,"state":"CLOSED","title":"[E2E] Fix ETP CRUD tests for Railway environment"},{"closedAt":"2026-01-03T17:46:18Z","milestone":null,"number":1132,"state":"CLOSED","title":"[E2E] Fix Manager panel selectors for Railway environment"},{"closedAt":"2026-01-02T01:35:37Z","milestone":null,"number":1131,"state":"CLOSED","title":"[E2E] Fix Admin panel selectors for Railway environment"},{"closedAt":"2026-01-02T00:54:21Z","milestone":null,"number":1130,"state":"CLOSED","title":"[E2E] Fix logout button selector for Railway environment"},{"closedAt":"2026-01-01T18:12:43Z","milestone":null,"number":1128,"state":"CLOSED","title":"[E2E] Configurar workflow Playwright para testar contra Railway"},{"closedAt":"2026-01-03T17:45:51Z","milestone":null,"number":1115,"state":"CLOSED","title":"fix(e2e): Address remaining 32 E2E test failures (permission/quota issues)"},{"closedAt":"2025-12-31T18:16:39Z","milestone":null,"number":1112,"state":"CLOSED","title":"fix(frontend): useToast hook causes infinite re-renders - missing useCallback"},{"closedAt":"2025-12-31T23:05:01Z","milestone":null,"number":1111,"state":"CLOSED","title":"fix(ci): rotate-secrets workflow failing on every run"},{"closedAt":"2025-12-31T23:58:20Z","milestone":null,"number":1110,"state":"CLOSED","title":"fix(e2e): Strict mode violations - selectors matching multiple elements"},{"closedAt":"2025-12-31T21:35:53Z","milestone":null,"number":1109,"state":"CLOSED","title":"fix(backend): Domain creation returns 400 Bad Request"},{"closedAt":"2025-12-31T19:37:59Z","milestone":null,"number":1108,"state":"CLOSED","title":"fix(frontend): Maximum update depth exceeded in DomainManagement component"},{"closedAt":"2026-01-03T17:45:48Z","milestone":null,"number":1103,"state":"CLOSED","title":"tracking: E2E Playwright test failures (69 tests)"},{"closedAt":"2025-12-31T22:08:50Z","milestone":null,"number":1102,"state":"CLOSED","title":"fix(e2e): Manager module tests failing (dashboard, users)"},{"closedAt":"2026-01-02T02:24:14Z","milestone":null,"number":1101,"state":"CLOSED","title":"fix(e2e): Export module tests failing (PDF, DOCX)"},{"closedAt":"2026-01-03T17:45:45Z","milestone":null,"number":1100,"state":"CLOSED","title":"fix(e2e): ETP module tests failing (crud, edit, lifecycle)"},{"closedAt":"2026-01-03T17:45:43Z","milestone":null,"number":1099,"state":"CLOSED","title":"fix(e2e): Auth module tests failing (logout, password-reset, role-access)"},{"closedAt":"2026-01-03T17:45:40Z","milestone":null,"number":1098,"state":"CLOSED","title":"fix(e2e): Admin module tests failing (audit, dashboard, domains)"},{"closedAt":"2025-12-30T00:08:47Z","milestone":null,"number":1095,"state":"CLOSED","title":"[FIX] Seed MANAGER and USER roles for E2E tests"},{"closedAt":"2025-12-29T21:42:36Z","milestone":null,"number":1093,"state":"CLOSED","title":"[FIX] Add E2E database verification step after migrations"},{"closedAt":"2025-12-29T21:42:36Z","milestone":null,"number":1092,"state":"CLOSED","title":"[FIX] Investigate JWT_SECRET mismatch in E2E CI environment"},{"closedAt":"2025-12-29T21:42:36Z","milestone":null,"number":1091,"state":"CLOSED","title":"[FIX] Add debug logging to E2E seed:admin step"},{"closedAt":"2025-12-29T21:42:35Z","milestone":null,"number":1090,"state":"CLOSED","title":"[BUG] E2E CI Pipeline Broken: Authentication Fails with 401 Errors (~42h)"},{"closedAt":"2026-01-03T17:45:37Z","milestone":null,"number":1088,"state":"CLOSED","title":"[E2E] Fix 92 Playwright test failures in CI"},{"closedAt":"2025-12-29T20:23:01Z","milestone":null,"number":1085,"state":"CLOSED","title":"fix(ci): Playwright E2E tests timing out consistently"},{"closedAt":"2026-01-20T15:10:03Z","milestone":null,"number":1075,"state":"CLOSED","title":"[QA] Configurar load testing com 100+ requisicoes simultaneas"},{"closedAt":"2026-01-23T11:51:03Z","milestone":null,"number":1074,"state":"CLOSED","title":"[QA] Implementar chaos engineering (Redis down, API timeout, payload grande)"},{"closedAt":"2026-01-23T01:10:07Z","milestone":null,"number":1073,"state":"CLOSED","title":"[QA] Criar testes de integracao com APIs governamentais reais"},{"closedAt":"2026-01-24T12:57:46Z","milestone":null,"number":1072,"state":"CLOSED","title":"[Observabilidade] Adicionar retry automatico para emails com backoff"},{"closedAt":"2026-01-20T13:40:17Z","milestone":null,"number":1071,"state":"CLOSED","title":"[Observabilidade] Garantir requestId em todos os logs de gov-api"},{"closedAt":"2026-01-24T21:36:22Z","milestone":null,"number":1070,"state":"CLOSED","title":"[Observabilidade] Enriquecer contexto em erros de document extraction"},{"closedAt":null,"milestone":null,"number":1069,"state":"OPEN","title":"[Gov-API] Implementar invalidacao de cache baseada em eventos"},{"closedAt":null,"milestone":null,"number":1068,"state":"OPEN","title":"[Gov-API] Otimizar configuracao de retry para janelas de manutencao"},{"closedAt":"2026-01-25T22:27:46Z","milestone":null,"number":1067,"state":"CLOSED","title":"[Gov-API] Implementar alerting automatico para circuit breaker"},{"closedAt":"2026-01-01T01:13:38Z","milestone":null,"number":1066,"state":"CLOSED","title":"[Frontend] Remover global AbortController para evitar cancelamento cruzado"},{"closedAt":"2025-12-30T02:03:58Z","milestone":null,"number":1065,"state":"CLOSED","title":"[Concorrencia] Corrigir race condition em getNextOrder"},{"closedAt":"2025-12-30T00:58:10Z","milestone":null,"number":1064,"state":"CLOSED","title":"[Concorrencia] Usar transacao em update de status de secao"},{"closedAt":"2026-01-02T00:32:43Z","milestone":null,"number":1063,"state":"CLOSED","title":"[Gov-API] Diferenciar sem resultados de erro de servico"},{"closedAt":"2026-01-05T01:03:17Z","milestone":null,"number":1062,"state":"CLOSED","title":"[Gov-API] Implementar carregamento automatico de dados SINAPI/SICRO"},{"closedAt":"2026-01-02T00:15:04Z","milestone":null,"number":1061,"state":"CLOSED","title":"[Gov-API] Adicionar timeout individual em Promise.allSettled"},{"closedAt":"2025-12-29T03:39:53Z","milestone":null,"number":1060,"state":"CLOSED","title":"[Frontend] Aumentar timeout de polling e adicionar graceful degradation"},{"closedAt":"2025-12-29T19:21:46Z","milestone":null,"number":1059,"state":"CLOSED","title":"[Frontend] Implementar conflict detection para updates concorrentes"},{"closedAt":"2025-12-29T13:13:33Z","milestone":null,"number":1058,"state":"CLOSED","title":"[Concorrencia] Prevenir criacao duplicada de secoes com lock de banco"},{"closedAt":"2025-12-29T13:22:28Z","milestone":null,"number":1057,"state":"CLOSED","title":"[Concorrencia] Adicionar transacao ACID em updateCompletionPercentage"},{"closedAt":"2025-12-29T13:50:21Z","milestone":null,"number":1056,"state":"CLOSED","title":"[Gov-API] Implementar fallback in-memory quando Redis falha"},{"closedAt":"2025-12-29T12:18:45Z","milestone":null,"number":1055,"state":"CLOSED","title":"[Gov-API] Adicionar limite de tamanho de payload no Axios"},{"closedAt":"2025-12-29T16:38:42Z","milestone":null,"number":1054,"state":"CLOSED","title":"[Gov-API] Implementar validacao de schema Zod nas respostas de APIs governamentais"},{"closedAt":"2025-12-29T02:26:22Z","milestone":null,"number":1049,"state":"CLOSED","title":"fix(ui): Redesenhar WarningBanner para seguir design system"},{"closedAt":"2025-12-29T19:34:10Z","milestone":null,"number":1048,"state":"CLOSED","title":"feat(editor): Integrar SimilarContractsPanel ao ETPEditor"},{"closedAt":"2025-12-29T16:28:18Z","milestone":null,"number":1047,"state":"CLOSED","title":"fix(ai): Investigar erro ao gerar seção com IA"},{"closedAt":"2025-12-29T02:12:05Z","milestone":null,"number":1046,"state":"CLOSED","title":"fix(editor): Erro ao salvar seção - frontend usa endpoint incorreto"},{"closedAt":null,"milestone":null,"number":1045,"state":"OPEN","title":"docs(readme): Update coverage badges and dates"},{"closedAt":"2025-12-28T22:03:23Z","milestone":null,"number":1044,"state":"CLOSED","title":"chore(cleanup): Remove legacy Jest/Puppeteer E2E files"},{"closedAt":"2025-12-29T02:40:15Z","milestone":null,"number":1043,"state":"CLOSED","title":"docs(readme): Update E2E section from Puppeteer to Playwright"},{"closedAt":"2025-12-29T01:30:47Z","milestone":null,"number":1042,"state":"CLOSED","title":"fix(ci): Playwright CI failing with PostgreSQL 'role root does not exist'"},{"closedAt":"2025-12-28T17:43:02Z","milestone":null,"number":1031,"state":"CLOSED","title":"fix(backend): use circuit breaker state for Exa health check"},{"closedAt":"2025-12-28T17:06:26Z","milestone":null,"number":1030,"state":"CLOSED","title":"fix(backend): cache Exa ping result in health checks"},{"closedAt":"2025-12-28T16:42:37Z","milestone":null,"number":1029,"state":"CLOSED","title":"fix(backend): initialize sections array on ETP creation"},{"closedAt":"2025-12-28T16:01:25Z","milestone":null,"number":1028,"state":"CLOSED","title":"fix(frontend): add null-check for sections in ETPEditor"},{"closedAt":"2025-12-28T20:24:10Z","milestone":null,"number":1021,"state":"CLOSED","title":"feat(design): Skeleton Loaders com Shimmer Premium"},{"closedAt":"2025-12-28T20:24:09Z","milestone":null,"number":1020,"state":"CLOSED","title":"feat(design): Animações de Entrada para Componentes"},{"closedAt":"2025-12-28T20:24:09Z","milestone":null,"number":1019,"state":"CLOSED","title":"feat(design): Empty State com Animações Staggered"},{"closedAt":"2025-12-28T19:34:50Z","milestone":null,"number":1018,"state":"CLOSED","title":"feat(design): Lista de ETPs Recentes com Hover Lift"},{"closedAt":"2025-12-28T19:34:49Z","milestone":null,"number":1017,"state":"CLOSED","title":"feat(design): Stat Cards com Ícones Coloridos"},{"closedAt":"2025-12-28T19:23:54Z","milestone":null,"number":1016,"state":"CLOSED","title":"feat(design): Tokens de Border Radius Orgânicos"},{"closedAt":"2025-12-28T19:14:41Z","milestone":null,"number":1015,"state":"CLOSED","title":"feat(design): Input Fields com Focus Glow Suave"},{"closedAt":"2025-12-28T18:50:45Z","milestone":null,"number":1014,"state":"CLOSED","title":"feat(design): Botões com Touch Area 44px e Focus Glow"},{"closedAt":"2025-12-28T18:28:32Z","milestone":null,"number":1013,"state":"CLOSED","title":"feat(design): Cards Apple-like sem Bordas Duras"},{"closedAt":"2025-12-28T15:32:49Z","milestone":null,"number":1012,"state":"CLOSED","title":"feat(design): Glassmorphism Utilities para Headers e Modais"},{"closedAt":"2025-12-28T14:46:22Z","milestone":null,"number":1011,"state":"CLOSED","title":"feat(design): Paleta de Cores Warm Gray"},{"closedAt":"2025-12-28T14:32:57Z","milestone":null,"number":1010,"state":"CLOSED","title":"feat(design): Tipografia Premium com Inter Variable Font"},{"closedAt":"2025-12-28T14:20:38Z","milestone":null,"number":1009,"state":"CLOSED","title":"[test] Adicionar testes E2E para criação de ETP"},{"closedAt":"2025-12-28T12:59:11Z","milestone":null,"number":1008,"state":"CLOSED","title":"[fix] Melhorar tratamento de erro na criação de ETP"},{"closedAt":"2025-12-28T04:57:20Z","milestone":null,"number":1007,"state":"CLOSED","title":"[bug] Campo objeto obrigatório ausente no formulário de criação de ETP"},{"closedAt":"2025-12-28T04:21:46Z","milestone":null,"number":1005,"state":"CLOSED","title":"fix(api): endpoint GET /system-admin/domains/:id/users não existe - causa React error #185"},{"closedAt":"2025-12-27T20:07:20Z","milestone":null,"number":993,"state":"CLOSED","title":"[USER][HIGH] Users: GET /users/:id expoe dados de qualquer usuario"},{"closedAt":"2025-12-27T20:24:37Z","milestone":null,"number":992,"state":"CLOSED","title":"[USER][HIGH] Sections SSE: Streaming sem validacao de ownership"},{"closedAt":"2025-12-27T18:15:14Z","milestone":null,"number":991,"state":"CLOSED","title":"[ALL][BLOCKER] Users: PATCH /users/:id permite editar qualquer usuario"},{"closedAt":"2025-12-27T16:20:27Z","milestone":null,"number":990,"state":"CLOSED","title":"[ALL][BLOCKER] Users: GET /users retorna usuarios de todas as organizacoes"},{"closedAt":"2025-12-27T19:44:53Z","milestone":null,"number":989,"state":"CLOSED","title":"[ALL][BLOCKER] Versions: IDOR permite manipular versoes de qualquer ETP"},{"closedAt":"2025-12-27T16:14:12Z","milestone":null,"number":988,"state":"CLOSED","title":"[ALL][BLOCKER] Export: IDOR permite exportar ETP de qualquer usuario"},{"closedAt":"2025-12-27T21:41:59Z","milestone":null,"number":987,"state":"CLOSED","title":"feat(frontend): Exibir menu de administração para usuários SYSTEM_ADMIN"},{"closedAt":"2025-12-27T21:31:10Z","milestone":null,"number":986,"state":"CLOSED","title":"fix(frontend): Tarja superior sobrepõe primeiro botão do menu lateral"},{"closedAt":"2025-12-27T20:35:57Z","milestone":null,"number":985,"state":"CLOSED","title":"fix(frontend): Loading infinito 'Carregando ETP...' ao clicar em 'Criar meu primeiro ETP'"},{"closedAt":"2025-12-27T05:46:14Z","milestone":null,"number":984,"state":"CLOSED","title":"fix(router): migrate to createBrowserRouter for useBlocker support"},{"closedAt":"2025-12-27T05:25:51Z","milestone":null,"number":983,"state":"CLOSED","title":"fix(dashboard): remove duplicate fetchETPs causing request loop"},{"closedAt":"2025-12-27T05:17:49Z","milestone":null,"number":982,"state":"CLOSED","title":"fix(dashboard): extract data array from paginated /etps response"},{"closedAt":"2025-12-27T05:11:23Z","milestone":null,"number":981,"state":"CLOSED","title":"fix(auth): cookie SameSite=None para cross-origin Railway"},{"closedAt":"2025-12-28T01:28:42Z","milestone":null,"number":963,"state":"CLOSED","title":"ci: Add auth E2E tests to CI pipeline as required check"},{"closedAt":"2025-12-28T00:06:29Z","milestone":null,"number":962,"state":"CLOSED","title":"docs: Comprehensive authentication flow architecture"},{"closedAt":"2025-12-27T03:45:37Z","milestone":null,"number":961,"state":"CLOSED","title":"feat(monitoring): Add Sentry breadcrumbs for auth state transitions"},{"closedAt":"2025-12-27T00:08:18Z","milestone":null,"number":960,"state":"CLOSED","title":"test(unit): authStore state machine transitions"},{"closedAt":"2025-12-27T00:49:23Z","milestone":null,"number":959,"state":"CLOSED","title":"test(unit): ProtectedRoute auth state handling"},{"closedAt":"2025-12-26T22:42:20Z","milestone":null,"number":958,"state":"CLOSED","title":"test(unit): Login component state-driven navigation"},{"closedAt":"2025-12-27T03:33:06Z","milestone":null,"number":957,"state":"CLOSED","title":"test(e2e): Admin domain management CRUD"},{"closedAt":"2025-12-27T20:44:14Z","milestone":null,"number":956,"state":"CLOSED","title":"test(e2e): Export DOCX complete flow"},{"closedAt":"2025-12-27T05:11:17Z","milestone":null,"number":955,"state":"CLOSED","title":"test(e2e): Export PDF complete flow"},{"closedAt":"2025-12-27T14:17:38Z","milestone":null,"number":954,"state":"CLOSED","title":"test(e2e): Generate all 13 sections (Lei 14.133/2021)"},{"closedAt":"2025-12-27T03:25:08Z","milestone":null,"number":953,"state":"CLOSED","title":"test(e2e): Delete/Archive/Restore ETP cycle"},{"closedAt":"2025-12-27T02:20:11Z","milestone":null,"number":952,"state":"CLOSED","title":"test(e2e): Edit ETP all fields"},{"closedAt":"2025-12-27T02:12:19Z","milestone":null,"number":951,"state":"CLOSED","title":"test(e2e): Create ETP complete flow"},{"closedAt":"2025-12-27T01:35:33Z","milestone":null,"number":950,"state":"CLOSED","title":"test(e2e): Complete logout flow validation"},{"closedAt":"2025-12-27T01:58:56Z","milestone":null,"number":949,"state":"CLOSED","title":"test(e2e): Password change flow (mustChangePassword)"},{"closedAt":"2025-12-26T22:32:06Z","milestone":null,"number":948,"state":"CLOSED","title":"fix(auth): Simplify ProtectedRoute - remove recovery workaround"},{"closedAt":"2025-12-27T00:28:20Z","milestone":null,"number":947,"state":"CLOSED","title":"test(e2e): Session persistence across navigation"},{"closedAt":"2025-12-26T23:54:18Z","milestone":null,"number":946,"state":"CLOSED","title":"test(e2e): All user roles login flows (ADMIN/MANAGER/USER/DEMO)"},{"closedAt":"2025-12-26T23:38:58Z","milestone":null,"number":945,"state":"CLOSED","title":"test(e2e): Timing assertion for login-to-dashboard redirect"},{"closedAt":"2025-12-26T22:07:56Z","milestone":null,"number":944,"state":"CLOSED","title":"fix(auth): Apply state-driven navigation to Register component"},{"closedAt":"2025-12-26T21:54:03Z","milestone":null,"number":943,"state":"CLOSED","title":"fix(auth): Use state-driven navigation in Login component"},{"closedAt":"2025-12-26T17:53:35Z","milestone":null,"number":937,"state":"CLOSED","title":"test(e2e): Manager dashboard E2E tests (5 happy paths)"},{"closedAt":"2025-12-26T18:54:45Z","milestone":null,"number":936,"state":"CLOSED","title":"test(e2e): Admin dashboard E2E tests (8 happy paths)"},{"closedAt":"2025-12-26T18:50:29Z","milestone":null,"number":935,"state":"CLOSED","title":"test(e2e): Export PDF/DOCX E2E tests (6 happy paths)"},{"closedAt":"2025-12-26T20:17:38Z","milestone":null,"number":934,"state":"CLOSED","title":"test(e2e): Section generation E2E tests (13 happy paths)"},{"closedAt":"2025-12-26T17:47:21Z","milestone":null,"number":933,"state":"CLOSED","title":"test(e2e): ETP CRUD E2E tests (10 happy paths)"},{"closedAt":"2025-12-26T16:20:43Z","milestone":null,"number":932,"state":"CLOSED","title":"test(e2e): Complete authentication flow E2E tests (8 happy paths)"},{"closedAt":"2025-12-26T16:20:40Z","milestone":null,"number":931,"state":"CLOSED","title":"feat(frontend): Add auth state recovery mechanism in ProtectedRoute"},{"closedAt":"2025-12-26T16:20:37Z","milestone":null,"number":930,"state":"CLOSED","title":"test(frontend): Add unit tests for isAuthInitialized state machine"},{"closedAt":"2025-12-26T16:20:34Z","milestone":null,"number":929,"state":"CLOSED","title":"test(e2e): Add login-to-dashboard flow test to prevent regression"},{"closedAt":"2025-12-26T16:20:31Z","milestone":null,"number":928,"state":"CLOSED","title":"fix(frontend): Set isAuthInitialized to true on successful login/register"},{"closedAt":"2025-12-26T00:12:01Z","milestone":null,"number":923,"state":"CLOSED","title":"[Linting] Fix no-unused-vars and no-require-imports warnings"},{"closedAt":"2025-12-26T01:17:37Z","milestone":null,"number":922,"state":"CLOSED","title":"[TypeScript] Replace explicit 'any' types in logging.interceptor.ts and slow-query.subscriber.ts"},{"closedAt":"2025-12-25T23:04:14Z","milestone":null,"number":921,"state":"CLOSED","title":"[Linting] Fix Prettier formatting errors in backend (572 auto-fixable)"},{"closedAt":"2025-12-23T16:30:11Z","milestone":null,"number":917,"state":"CLOSED","title":"[P2] Melhorar diagnóstico de erros de conexão no frontend"},{"closedAt":"2025-12-23T15:15:14Z","milestone":null,"number":916,"state":"CLOSED","title":"[P2] Documentar padrão de versionamento de API"},{"closedAt":"2025-12-23T13:43:33Z","milestone":null,"number":915,"state":"CLOSED","title":"[P1] Validar VITE_API_URL no build do frontend"},{"closedAt":"2025-12-23T13:11:22Z","milestone":null,"number":914,"state":"CLOSED","title":"[P1] Adicionar teste E2E de conectividade de login"},{"closedAt":"2025-12-23T12:22:56Z","milestone":null,"number":913,"state":"CLOSED","title":"[P0] Corrigir API_URL para incluir versão /v1"},{"closedAt":"2025-12-23T01:08:11Z","milestone":null,"number":906,"state":"CLOSED","title":"[P3][Backend] Rich Text: Export DOCX/PDF com formatação preservada"},{"closedAt":"2025-12-22T23:53:41Z","milestone":null,"number":905,"state":"CLOSED","title":"[P3][Frontend] Rich Text: Integração no SectionForm"},{"closedAt":"2025-12-22T22:38:41Z","milestone":null,"number":904,"state":"CLOSED","title":"[P3][Frontend] Rich Text: Setup do Editor TipTap"},{"closedAt":"2025-12-21T19:39:55Z","milestone":null,"number":871,"state":"CLOSED","title":"[Ops] SLA: Treinamento e documentação"},{"closedAt":"2025-12-21T17:30:56Z","milestone":null,"number":870,"state":"CLOSED","title":"[Ops] SLA: Setup de ferramentas"},{"closedAt":"2025-12-21T03:48:25Z","milestone":null,"number":869,"state":"CLOSED","title":"[Ops] SLA: Definição de níveis e métricas"},{"closedAt":"2025-12-22T12:36:00Z","milestone":null,"number":868,"state":"CLOSED","title":"[Ops] Staged Rollout: Documentação e runbook"},{"closedAt":"2025-12-22T00:51:46Z","milestone":null,"number":867,"state":"CLOSED","title":"[Ops] Staged Rollout: Estratégia Alpha/Beta/GA"},{"closedAt":"2025-12-21T23:17:14Z","milestone":null,"number":866,"state":"CLOSED","title":"[Ops] Feature Flags: Integração frontend"},{"closedAt":"2025-12-21T21:58:27Z","milestone":null,"number":865,"state":"CLOSED","title":"[Ops] Feature Flags: Escolha e setup de provider"},{"closedAt":"2025-12-21T01:27:46Z","milestone":null,"number":864,"state":"CLOSED","title":"[Infra] pgvector: Execução da migração"},{"closedAt":"2025-12-21T01:27:43Z","milestone":null,"number":863,"state":"CLOSED","title":"[Infra] pgvector: Análise e decisão de estratégia"},{"closedAt":"2025-12-21T14:33:35Z","milestone":null,"number":862,"state":"CLOSED","title":"[Observability] Prometheus: Integração nos serviços"},{"closedAt":"2025-12-21T04:47:22Z","milestone":null,"number":861,"state":"CLOSED","title":"[Observability] Prometheus: Métricas de negócio"},{"closedAt":"2025-12-21T02:38:59Z","milestone":null,"number":860,"state":"CLOSED","title":"[Observability] Prometheus: Setup base e endpoint /metrics"},{"closedAt":"2025-12-21T05:19:54Z","milestone":null,"number":859,"state":"CLOSED","title":"[Observability] OpenTelemetry: Dashboard e validação"},{"closedAt":"2025-12-21T03:26:49Z","milestone":null,"number":858,"state":"CLOSED","title":"[Observability] OpenTelemetry: Instrumentação manual de serviços LLM"},{"closedAt":"2025-12-21T01:55:16Z","milestone":null,"number":857,"state":"CLOSED","title":"[Observability] OpenTelemetry: SDK setup e auto-instrumentation"},{"closedAt":"2025-12-21T22:07:37Z","milestone":null,"number":817,"state":"CLOSED","title":"[P3/feature] Adicionar export de audit logs para compliance"},{"closedAt":"2025-12-22T22:01:36Z","milestone":null,"number":816,"state":"CLOSED","title":"[P3/infra] Documentar estrategia multi-regiao DR"},{"closedAt":"2025-12-23T00:07:42Z","milestone":null,"number":815,"state":"CLOSED","title":"[P3/infra] Configurar WAF (Web Application Firewall)"},{"closedAt":"2025-12-22T21:15:03Z","milestone":null,"number":814,"state":"CLOSED","title":"[P3/infra] Implementar sistema de feature flags"},{"closedAt":"2025-12-21T20:10:09Z","milestone":null,"number":813,"state":"CLOSED","title":"[P3/perf] Adicionar alertas para slow queries"},{"closedAt":"2025-12-23T02:35:01Z","milestone":null,"number":812,"state":"CLOSED","title":"[P3/perf] Configurar CDN para assets estaticos"},{"closedAt":"2025-12-23T01:38:49Z","milestone":null,"number":811,"state":"CLOSED","title":"[P3/perf] Implementar cache Redis para respostas LLM similares"},{"closedAt":"2025-12-21T23:00:49Z","milestone":null,"number":810,"state":"CLOSED","title":"[P3/testing] Integrar OWASP ZAP no CI"},{"closedAt":"2025-12-22T02:40:45Z","milestone":null,"number":809,"state":"CLOSED","title":"[P3/testing] Adicionar visual regression testing"},{"closedAt":"2025-12-22T03:10:27Z","milestone":null,"number":808,"state":"CLOSED","title":"[P3/testing] Implementar mutation testing com Stryker"},{"closedAt":"2025-12-20T16:27:49Z","milestone":null,"number":807,"state":"CLOSED","title":"[P2/quality] Documentar processo de validacao pre-deploy"},{"closedAt":"2025-12-20T16:51:23Z","milestone":null,"number":806,"state":"CLOSED","title":"[P2/quality] Executar re-teste completo pos-correcoes P0"},{"closedAt":"2025-12-20T15:18:33Z","milestone":null,"number":805,"state":"CLOSED","title":"[P2/security] Criar script de verificacao de security headers"},{"closedAt":"2025-12-20T14:17:16Z","milestone":null,"number":804,"state":"CLOSED","title":"[P2/security] Configurar rate limiting agressivo para /auth/*"},{"closedAt":"2025-12-20T15:12:57Z","milestone":null,"number":803,"state":"CLOSED","title":"[P2/ops] Adicionar endpoint /api/health/ready"},{"closedAt":"2025-12-20T18:26:58Z","milestone":null,"number":802,"state":"CLOSED","title":"[P2/ops] Configurar dashboard de metricas em Railway"},{"closedAt":"2025-12-20T17:34:43Z","milestone":null,"number":801,"state":"CLOSED","title":"[P2/docs] Criar OPS_RUNBOOK.md com procedimentos operacionais"},{"closedAt":"2025-12-20T16:00:39Z","milestone":null,"number":800,"state":"CLOSED","title":"[P2/docs] Exportar documentacao OpenAPI/Swagger"},{"closedAt":"2025-12-20T17:03:48Z","milestone":null,"number":799,"state":"CLOSED","title":"[P2/docs] Criar TROUBLESHOOTING.md com problemas comuns"},{"closedAt":"2025-12-20T17:21:53Z","milestone":null,"number":798,"state":"CLOSED","title":"[P2/docs] Criar MANUAL_TESTER.md para gestores e testadores"},{"closedAt":"2025-12-20T13:45:28Z","milestone":null,"number":797,"state":"CLOSED","title":"[P1/design] Revisar empty states com CTAs claros"},{"closedAt":"2025-12-19T22:10:06Z","milestone":null,"number":796,"state":"CLOSED","title":"[P1/design] Remover linguagem AI-like das interfaces"},{"closedAt":"2025-12-19T21:57:22Z","milestone":null,"number":795,"state":"CLOSED","title":"[P1/design] Criar guia de tom e voz institucional"},{"closedAt":"2025-12-19T13:46:46Z","milestone":null,"number":794,"state":"CLOSED","title":"[P1/design] Padronizar micro-interacoes existentes"},{"closedAt":"2025-12-19T21:51:48Z","milestone":null,"number":793,"state":"CLOSED","title":"[P1/design] Ajustar design tokens para melhor legibilidade"},{"closedAt":"2025-12-19T13:47:54Z","milestone":null,"number":792,"state":"CLOSED","title":"[P1/UX] Mensagens de erro amigaveis para falhas de API"},{"closedAt":"2025-12-19T12:37:54Z","milestone":null,"number":791,"state":"CLOSED","title":"[P1/UX] Melhorar empty state do dashboard"},{"closedAt":"2025-12-19T12:12:30Z","milestone":null,"number":790,"state":"CLOSED","title":"[P1/UX] Adicionar welcome modal para primeiro login"},{"closedAt":"2025-12-19T11:54:54Z","milestone":null,"number":789,"state":"CLOSED","title":"[P1/a11y] Revisar text-xs em form-field.tsx"},{"closedAt":"2025-12-19T02:49:55Z","milestone":null,"number":788,"state":"CLOSED","title":"[P1/a11y] Melhorar contraste de texto secundario"},{"closedAt":"2025-12-19T02:26:34Z","milestone":null,"number":787,"state":"CLOSED","title":"[P1/a11y] Aumentar font-size minimo de 11px para 12px"},{"closedAt":"2025-12-19T02:04:04Z","milestone":null,"number":786,"state":"CLOSED","title":"[P0/polish] Auditar e remover emoticons decorativos de arquivos do projeto"},{"closedAt":"2025-12-19T00:36:54Z","milestone":null,"number":785,"state":"CLOSED","title":"[P0/polish] Remover emoticons do MANUAL_USUARIO.md"},{"closedAt":"2025-12-19T00:20:52Z","milestone":null,"number":784,"state":"CLOSED","title":"[P0/polish] Remover emoticons do AppTour.tsx"},{"closedAt":"2025-12-19T01:59:44Z","milestone":null,"number":783,"state":"CLOSED","title":"[P0/config] Atualizar URLs de producao em documentacao"},{"closedAt":"2025-12-19T00:14:27Z","milestone":null,"number":782,"state":"CLOSED","title":"[P0/config] Atualizar emails de @etpexpress.com para @confenge.com.br"},{"closedAt":"2025-12-19T03:22:19Z","milestone":null,"number":781,"state":"CLOSED","title":"[P0/infra] Configurar SENTRY_DSN backend e frontend"},{"closedAt":"2025-12-19T03:15:42Z","milestone":null,"number":780,"state":"CLOSED","title":"[P0/infra] Configurar variaveis SMTP em Railway"},{"closedAt":"2025-12-19T03:15:45Z","milestone":null,"number":779,"state":"CLOSED","title":"[P0/infra] Renovar/verificar EXA_API_KEY em Railway"},{"closedAt":"2025-12-19T03:15:38Z","milestone":null,"number":778,"state":"CLOSED","title":"[P0/infra] Executar seed:admin em producao Railway"},{"closedAt":"2025-12-18T23:54:24Z","milestone":null,"number":777,"state":"CLOSED","title":"[P0/infra] Fix health endpoint 404 - verificar HealthModule registration"},{"closedAt":"2025-12-21T18:32:40Z","milestone":null,"number":760,"state":"CLOSED","title":"[P3][Docs] Documentar que Agentes são validações determinísticas, não IA"},{"closedAt":"2025-12-23T01:14:26Z","milestone":null,"number":759,"state":"CLOSED","title":"[P3][Frontend] Adicionar suporte Rich Text (WYSIWYG) nos formulários de seção ETP"},{"closedAt":"2025-12-17T22:51:01Z","milestone":null,"number":758,"state":"CLOSED","title":"[P2][Security] Corrigir updateCompletionPercentage() sem validação de acesso"},{"closedAt":"2025-12-18T00:11:24Z","milestone":null,"number":757,"state":"CLOSED","title":"[P2][Security] Implementar middleware centralizado de autorização tenancy"},{"closedAt":"2025-12-18T02:11:28Z","milestone":null,"number":756,"state":"CLOSED","title":"[P1][Frontend] Exibir alerta visual quando fonte de dados governamental indisponível"},{"closedAt":"2025-12-17T21:52:36Z","milestone":null,"number":755,"state":"CLOSED","title":"[P1][Backend] Diferenciar sem resultados de erro de serviço nas APIs governamentais"},{"closedAt":"2025-12-17T23:43:38Z","milestone":null,"number":754,"state":"CLOSED","title":"[P1][Backend] Implementar SSE/streaming para feedback incremental na geração de seções"},{"closedAt":"2025-12-17T12:10:45Z","milestone":null,"number":753,"state":"CLOSED","title":"[P0][Infra] Remover referências residuais Perplexity do deploy"},{"closedAt":"2025-12-17T11:58:59Z","milestone":null,"number":747,"state":"CLOSED","title":"[P2][Backend] Remove deprecated Puppeteer config from root .npmrc"},{"closedAt":"2025-12-21T17:19:34Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":744,"state":"CLOSED","title":"[P2][Docs] Preparar pitch deck B2G para demonstrações"},{"closedAt":"2025-12-18T13:27:33Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":743,"state":"CLOSED","title":"[P2][Frontend] Tour guiado in-app para novos usuários"},{"closedAt":"2025-12-21T17:00:58Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":742,"state":"CLOSED","title":"[P1][Infra] Monitoramento ativo 24h pós-deploy Go-Live"},{"closedAt":"2025-12-20T19:46:48Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":741,"state":"CLOSED","title":"[P1][Infra] Deploy final validado para Go-Live B2G"},{"closedAt":"2025-12-20T17:51:13Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":740,"state":"CLOSED","title":"[P3][Backend] Refactor deprecated methods (ExaService.search, ETPsService)"},{"closedAt":"2025-12-18T12:56:03Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":739,"state":"CLOSED","title":"[P2][Backend] Atualizar dependências outdated (Sentry, OpenAI, etc.)"},{"closedAt":"2025-12-17T01:08:40Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":738,"state":"CLOSED","title":"[P0][Backend] Fix Puppeteer npm config warning"},{"closedAt":"2025-12-17T01:43:07Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":737,"state":"CLOSED","title":"[P1][Docs] Smoke test checklist pré-launch"},{"closedAt":"2025-12-17T02:44:02Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":736,"state":"CLOSED","title":"[P1][Tests] E2E - Teste fluxo completo usuário (happy path)"},{"closedAt":"2025-12-17T01:24:38Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":735,"state":"CLOSED","title":"[P0][Infra] Scale backend para 2+ réplicas no Railway"},{"closedAt":"2025-12-16T12:42:52Z","milestone":null,"number":729,"state":"CLOSED","title":"chore(security): migrate xlsx to ExcelJS for security fix"},{"closedAt":"2025-12-18T22:05:34Z","milestone":null,"number":713,"state":"CLOSED","title":"docs: update documentation from Perplexity to Exa"},{"closedAt":"2025-12-16T12:23:34Z","milestone":null,"number":712,"state":"CLOSED","title":"chore(cleanup): remove Perplexity code and dependencies"},{"closedAt":"2025-12-16T02:04:35Z","milestone":null,"number":711,"state":"CLOSED","title":"refactor(health): migrate health checks from Perplexity to Exa"},{"closedAt":"2025-12-16T01:12:48Z","milestone":null,"number":710,"state":"CLOSED","title":"refactor(anti-hallucination): migrate fact-checking from Perplexity to Exa"},{"closedAt":"2025-12-15T22:59:31Z","milestone":null,"number":709,"state":"CLOSED","title":"refactor(orchestrator): migrate from PerplexityService to ExaService"},{"closedAt":"2025-12-15T22:23:45Z","milestone":null,"number":708,"state":"CLOSED","title":"refactor(search): update SearchModule to use ExaService"},{"closedAt":"2025-12-15T12:28:45Z","milestone":null,"number":707,"state":"CLOSED","title":"feat(search): add Exa environment configuration"},{"closedAt":"2025-12-15T12:46:54Z","milestone":null,"number":706,"state":"CLOSED","title":"feat(search): create ExaService with identical interface to PerplexityService"},{"closedAt":"2025-12-22T02:48:36Z","milestone":null,"number":700,"state":"CLOSED","title":"docs: add government APIs integration guide"},{"closedAt":"2025-12-18T22:13:40Z","milestone":null,"number":699,"state":"CLOSED","title":"feat(metrics): add government API usage metrics and monitoring"},{"closedAt":"2025-12-18T14:38:49Z","milestone":null,"number":698,"state":"CLOSED","title":"feat(jobs): create scheduled jobs for government data sync"},{"closedAt":"2025-12-16T14:19:02Z","milestone":null,"number":697,"state":"CLOSED","title":"feat(db): create migrations for government data entities"},{"closedAt":"2025-12-17T11:47:58Z","milestone":null,"number":696,"state":"CLOSED","title":"refactor(orchestrator): use government APIs as primary source for market enrichment"},{"closedAt":"2025-12-16T13:33:11Z","milestone":null,"number":695,"state":"CLOSED","title":"feat(search): create unified government data search service"},{"closedAt":"2025-12-16T12:33:58Z","milestone":null,"number":694,"state":"CLOSED","title":"feat(gov-api): create SICRO data ingestion service"},{"closedAt":"2025-12-16T02:55:27Z","milestone":null,"number":693,"state":"CLOSED","title":"feat(gov-api): create SINAPI data ingestion service"},{"closedAt":"2025-12-15T22:42:20Z","milestone":null,"number":692,"state":"CLOSED","title":"feat(gov-api): integrate PNCP API for Lei 14.133 contracts"},{"closedAt":"2025-12-15T22:04:33Z","milestone":null,"number":691,"state":"CLOSED","title":"feat(gov-api): integrate Compras.gov.br SIASG API"},{"closedAt":"2025-12-15T13:15:35Z","milestone":null,"number":690,"state":"CLOSED","title":"feat(gov-api): create base module for government APIs integration"},{"closedAt":"2025-12-18T02:15:22Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":677,"state":"CLOSED","title":"[P2][Product] Implementar canal de suporte email"},{"closedAt":"2025-12-17T02:24:32Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":676,"state":"CLOSED","title":"[P2][QA] Load testing k6 - 100 usuários simultâneos"},{"closedAt":"2025-12-18T02:46:41Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":675,"state":"CLOSED","title":"[P2][Docs] Criar manual usuário PDF para órgãos B2G"},{"closedAt":"2025-12-14T19:53:22Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":674,"state":"CLOSED","title":"[P1][QA] Smoke test completo pré-launch checklist"},{"closedAt":"2025-12-14T17:45:16Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":673,"state":"CLOSED","title":"[P1][Infra] Configurar alertas Railway (CPU, Memory, Errors)"},{"closedAt":"2025-12-15T01:14:33Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":672,"state":"CLOSED","title":"[P1][Docs] Documentar restore procedure PostgreSQL"},{"closedAt":"2025-12-14T16:18:28Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":671,"state":"CLOSED","title":"[P0][Infra] Scale backend para 2+ réplicas Railway"},{"closedAt":"2025-12-14T16:34:01Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":670,"state":"CLOSED","title":"[P0][Infra] Corrigir nixpacks.toml desatualizado"},{"closedAt":"2025-12-18T11:12:49Z","milestone":{"number":10,"title":"Go-Live B2G","description":"Issues críticas para lançamento comercial B2G","dueOn":"2025-01-13T00:00:00Z"},"number":657,"state":"CLOSED","title":"[Docs] Documentar configuração de PgBouncer para escala"},{"closedAt":"2025-12-20T19:27:49Z","milestone":null,"number":656,"state":"CLOSED","title":"[Security] Validação estruturada de saída do LLM"},{"closedAt":"2025-12-22T21:14:54Z","milestone":null,"number":655,"state":"CLOSED","title":"[EPIC][Observability] Métricas de negócio com Prometheus"},{"closedAt":"2025-12-22T21:14:51Z","milestone":null,"number":654,"state":"CLOSED","title":"[EPIC][Observability] Implementar OpenTelemetry para distributed tracing"},{"closedAt":"2025-12-14T17:14:51Z","milestone":null,"number":653,"state":"CLOSED","title":"[Observability] Adicionar Request ID/Trace ID em logs"},{"closedAt":"2025-12-14T16:29:22Z","milestone":null,"number":652,"state":"CLOSED","title":"[Observability] Implementar logging estruturado em JSON"},{"closedAt":"2025-12-13T23:40:57Z","milestone":null,"number":651,"state":"CLOSED","title":"[Security] Prompt Injection - Melhorar sanitização de input"},{"closedAt":"2025-12-13T01:39:07Z","milestone":null,"number":650,"state":"CLOSED","title":"[Security] SimilarContract - Adicionar campo organizationId"},{"closedAt":"2025-12-13T23:24:24Z","milestone":null,"number":649,"state":"CLOSED","title":"[Security] SearchService - Implementar isolamento de cache por organização"},{"closedAt":"2025-12-13T03:53:00Z","milestone":null,"number":648,"state":"CLOSED","title":"[Security] AnalyticsService - Adicionar filtragem por organizationId"},{"closedAt":"2025-12-12T00:46:54Z","milestone":null,"number":631,"state":"CLOSED","title":"[Deploy] Múltiplos problemas de configuração Railway identificados e corrigidos"},{"closedAt":"2025-12-11T23:49:45Z","milestone":null,"number":628,"state":"CLOSED","title":"[P0] fix(deploy): Railway build cache preventing @types installation"},{"closedAt":"2025-12-12T00:51:47Z","milestone":null,"number":627,"state":"CLOSED","title":"[P0] fix(deploy): Railway backend CRASHED - multiple configuration issues"},{"closedAt":"2025-12-12T23:41:39Z","milestone":null,"number":612,"state":"CLOSED","title":"[P0][UX] Export sem indicador de progresso ou opção de cancelamento"},{"closedAt":"2025-12-11T23:13:26Z","milestone":null,"number":611,"state":"CLOSED","title":"[P0][Bug] Polling de AI generation continua após component unmount"},{"closedAt":"2025-12-11T14:01:42Z","milestone":null,"number":610,"state":"CLOSED","title":"[P0][Bug] Aviso de unsaved changes ausente - usuário perde trabalho não salvo"},{"closedAt":"2025-12-11T12:58:14Z","milestone":null,"number":609,"state":"CLOSED","title":"[P0][Security] npm audit ausente no pipeline CI - vulnerabilidades não detectadas"},{"closedAt":"2025-12-11T12:22:24Z","milestone":null,"number":608,"state":"CLOSED","title":"[P0][Security] Logs verbose habilitados em produção podem vazar dados sensíveis"},{"closedAt":"2025-12-11T11:43:03Z","milestone":null,"number":607,"state":"CLOSED","title":"[P0][Bug] Graceful shutdown handler ausente - requests perdidos em deploy"},{"closedAt":"2025-12-11T13:52:24Z","milestone":null,"number":606,"state":"CLOSED","title":"[P0][Bug] ProtectedRoute renderiza antes de auth check completar - flash de login"},{"closedAt":"2025-12-11T13:31:36Z","milestone":null,"number":605,"state":"CLOSED","title":"[P0][Bug] Dynamic import sem error handling no API interceptor pode causar auth loop"},{"closedAt":"2025-12-11T12:36:49Z","milestone":null,"number":604,"state":"CLOSED","title":"[P0][Bug] Race condition em managerStore - loading state não resetado em success"},{"closedAt":"2025-12-11T12:01:20Z","milestone":null,"number":603,"state":"CLOSED","title":"[P0][Bug] Memory leak em operações de export por falta de AbortController"},{"closedAt":"2025-12-11T01:57:18Z","milestone":null,"number":602,"state":"CLOSED","title":"[P0][Security] Admin authorization não implementada em Users Controller"},{"closedAt":"2025-12-11T11:56:55Z","milestone":null,"number":601,"state":"CLOSED","title":"[P0][Bug] Browser cleanup pode falhar em export PDF causando vazamento de recursos"},{"closedAt":"2025-12-11T03:19:40Z","milestone":null,"number":600,"state":"CLOSED","title":"[P0][Security] Complexidade de senha ausente no registro de usuários"},{"closedAt":"2025-12-11T02:50:13Z","milestone":null,"number":599,"state":"CLOSED","title":"[P0][Security] CORS fallback para localhost em produção"},{"closedAt":"2025-12-11T02:03:29Z","milestone":null,"number":598,"state":"CLOSED","title":"[P0][Security] SSL Certificate Validation desabilitado em produção"},{"closedAt":"2025-12-12T13:45:00Z","milestone":null,"number":597,"state":"CLOSED","title":"[P0] Adicionar confetti animation para ETP 100%% concluído"},{"closedAt":"2025-12-12T23:13:41Z","milestone":null,"number":596,"state":"CLOSED","title":"[P0] Implementar skeleton loading em todas as páginas com dados"},{"closedAt":"2025-12-12T13:32:18Z","milestone":null,"number":595,"state":"CLOSED","title":"[P0] Adicionar indicador de status online/offline"},{"closedAt":"2025-12-12T15:00:19Z","milestone":null,"number":594,"state":"CLOSED","title":"[P0] Implementar breadcrumb navigation em páginas internas"},{"closedAt":"2025-12-12T13:12:46Z","milestone":null,"number":593,"state":"CLOSED","title":"[P0] Criar página 404 com ilustração e navegação"},{"closedAt":"2025-12-12T22:32:03Z","milestone":null,"number":592,"state":"CLOSED","title":"[P0] Adicionar micro-interações em cards e botões"},{"closedAt":"2025-12-12T23:33:40Z","milestone":null,"number":591,"state":"CLOSED","title":"[P0] Padronizar touch targets 44x44px em toda aplicação"},{"closedAt":"2025-12-12T14:18:11Z","milestone":null,"number":590,"state":"CLOSED","title":"[P0] Implementar toast com undo para ações destrutivas"},{"closedAt":"2025-12-13T02:34:05Z","milestone":null,"number":589,"state":"CLOSED","title":"[P0] Adicionar ilustrações em empty states"},{"closedAt":"2025-12-12T12:08:23Z","milestone":null,"number":588,"state":"CLOSED","title":"[P0] Criar componente ErrorState padronizado"},{"closedAt":"2025-12-13T23:16:44Z","milestone":null,"number":587,"state":"CLOSED","title":"[P0] Implementar funcionalidade 'Esqueceu sua senha?'"},{"closedAt":"2025-12-12T04:30:41Z","milestone":null,"number":586,"state":"CLOSED","title":"[P0] Adicionar indicadores de campo obrigatório e helper text"},{"closedAt":"2025-12-12T12:37:21Z","milestone":null,"number":585,"state":"CLOSED","title":"[P0] Implementar animações de entrada na página de login"},{"closedAt":"2025-12-12T02:31:02Z","milestone":null,"number":584,"state":"CLOSED","title":"[P0] Adicionar spinner elegante durante autenticação"},{"closedAt":"2025-12-12T03:40:33Z","milestone":null,"number":583,"state":"CLOSED","title":"[P0] Substituir ícone FileText por ícone mais representativo"},{"closedAt":"2025-12-12T12:19:28Z","milestone":null,"number":582,"state":"CLOSED","title":"[P0] Implementar validação em tempo real nos campos de login"},{"closedAt":"2025-12-11T23:59:16Z","milestone":null,"number":581,"state":"CLOSED","title":"[P0] Adicionar toggle de visibilidade de senha no login"},{"closedAt":"2025-12-12T03:20:03Z","milestone":null,"number":580,"state":"CLOSED","title":"[P0] Melhorar mensagens de erro de autenticação"},{"closedAt":"2025-12-12T02:16:59Z","milestone":null,"number":579,"state":"CLOSED","title":"[P0] Adicionar validação de organização no fluxo de login"},{"closedAt":"2025-12-12T01:40:07Z","milestone":null,"number":578,"state":"CLOSED","title":"[P0] Executar seed:admin em produção via Railway"},{"closedAt":"2025-12-16T00:56:18Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":563,"state":"CLOSED","title":"[Testes] E2E Import e Analysis"},{"closedAt":"2025-12-16T00:10:05Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":562,"state":"CLOSED","title":"[Frontend] Store e integração API de análise"},{"closedAt":"2025-12-16T00:26:30Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":561,"state":"CLOSED","title":"[Frontend] Exibição de resultados da análise"},{"closedAt":"2025-12-15T23:30:57Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":560,"state":"CLOSED","title":"[Frontend] Página de Import & Analysis"},{"closedAt":"2025-12-15T01:27:35Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":559,"state":"CLOSED","title":"[Backend] Endpoints de análise e conversão"},{"closedAt":"2025-12-14T19:46:15Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":558,"state":"CLOSED","title":"[Backend] Conversão de documento importado para ETP"},{"closedAt":"2025-12-14T19:34:26Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":557,"state":"CLOSED","title":"[Backend] Geração de relatório de melhorias"},{"closedAt":"2025-12-14T17:22:57Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":556,"state":"CLOSED","title":"[Backend] ETPAnalysisService - Análise via agents"},{"closedAt":"2025-12-14T13:50:14Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":555,"state":"CLOSED","title":"[Backend] Extração de texto de arquivos PDF"},{"closedAt":"2025-12-14T02:27:30Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":554,"state":"CLOSED","title":"[Backend] Extração de texto de arquivos DOCX"},{"closedAt":"2025-12-14T00:37:19Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":553,"state":"CLOSED","title":"[Backend] Setup infraestrutura de upload de arquivos"},{"closedAt":"2025-12-16T13:41:02Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":552,"state":"CLOSED","title":"[Testes] E2E Export DOCX"},{"closedAt":"2025-12-11T01:25:18Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":551,"state":"CLOSED","title":"[Frontend] Botão Export DOCX no editor"},{"closedAt":"2025-12-10T23:39:29Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":550,"state":"CLOSED","title":"[Backend] Endpoint GET /export/etp/:id/docx"},{"closedAt":"2025-12-10T22:54:23Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":549,"state":"CLOSED","title":"[Backend] Implementar exportToDocx no ExportService"},{"closedAt":"2025-12-10T22:05:40Z","milestone":{"number":9,"title":"M9: Export DOCX & Import Analysis","description":"Export ETP para Word (.docx) e importação/análise de documentos existentes. Issues: #548-#563","dueOn":null},"number":548,"state":"CLOSED","title":"[Backend] Setup biblioteca docx para geração Word"},{"closedAt":"2025-12-10T13:18:24Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":543,"state":"CLOSED","title":"[P0][Frontend] Acessibilidade WCAG 2.1 AA + responsividade (child of #473)"},{"closedAt":"2025-12-10T02:29:04Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":542,"state":"CLOSED","title":"[P0][Frontend] Dark mode com cores harmônicas (child of #473)"},{"closedAt":"2025-12-10T02:29:08Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":541,"state":"CLOSED","title":"[P0][Frontend] Aplicar design tokens em componentes base (child of #473)"},{"closedAt":"2025-12-10T01:43:42Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":540,"state":"CLOSED","title":"[P0][Frontend] Setup design tokens Apple HIG (child of #473)"},{"closedAt":"2025-12-10T12:05:41Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":539,"state":"CLOSED","title":"[P0][Frontend] UserManagement CRUD completo (child of #471)"},{"closedAt":"2025-12-10T01:55:58Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":538,"state":"CLOSED","title":"[P0][Frontend] ManagerDashboard com estatísticas (child of #471)"},{"closedAt":"2025-12-10T01:23:20Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":537,"state":"CLOSED","title":"[P0][Frontend] Setup managerStore + rotas protegidas (child of #471)"},{"closedAt":"2025-12-10T13:08:51Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":536,"state":"CLOSED","title":"Refactor DomainDetail tests to avoid never-resolving promises"},{"closedAt":"2025-12-10T01:58:25Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":535,"state":"CLOSED","title":"Refactor AssignManagerDialog tests to avoid never-resolving promises"},{"closedAt":"2025-12-10T00:03:21Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":534,"state":"CLOSED","title":"Fix Radix UI Select timeout in CI - use proper timer mocking"},{"closedAt":"2025-12-09T23:36:56Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":533,"state":"CLOSED","title":"Add PointerEvent and Pointer Capture mocks for Radix UI tests"},{"closedAt":"2025-12-09T21:53:32Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":532,"state":"CLOSED","title":"[P0] Fix DomainDetail.test.tsx - Flaky tests causing CI timeout"},{"closedAt":"2025-12-10T00:42:33Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":527,"state":"CLOSED","title":"[ADMIN-470e] Testes e responsividade do módulo Admin"},{"closedAt":"2025-12-09T23:15:34Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":526,"state":"CLOSED","title":"[ADMIN-470d] Implementar DomainDetail e AssignManagerDialog"},{"closedAt":"2025-12-09T19:54:21Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":525,"state":"CLOSED","title":"[ADMIN-470c] Implementar DomainManagement com DataTable e CRUD"},{"closedAt":"2025-12-09T19:25:26Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":524,"state":"CLOSED","title":"[ADMIN-470b] Implementar AdminDashboard com estatísticas globais"},{"closedAt":"2025-12-09T18:57:03Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":523,"state":"CLOSED","title":"[ADMIN-470a] Setup adminStore (Zustand) e rotas protegidas System Admin"},{"closedAt":"2025-12-09T14:09:37Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":510,"state":"CLOSED","title":"[P0][Security] TypeScript Strictness 4/4: Fix 'any' restantes + validação CI"},{"closedAt":"2025-12-09T13:34:36Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":509,"state":"CLOSED","title":"[P0][Security] TypeScript Strictness 3/4: Fix 'any' types em DTOs e interfaces"},{"closedAt":"2025-12-09T13:08:15Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":508,"state":"CLOSED","title":"[P0][Security] TypeScript Strictness 2/4: Fix 'any' types em OrchestratorService"},{"closedAt":"2025-12-09T12:35:08Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":507,"state":"CLOSED","title":"[P0][Security] TypeScript Strictness 1/4: Habilitar noImplicitAny"},{"closedAt":"2025-12-09T15:55:33Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":506,"state":"CLOSED","title":"[P0][Security] JWT XSS Fix 3/3: Atualizar guards e interceptors"},{"closedAt":"2025-12-09T15:23:17Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":505,"state":"CLOSED","title":"[P0][Security] JWT XSS Fix 2/3: Refatorar AuthService para usar cookies"},{"closedAt":"2025-12-09T14:48:23Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":504,"state":"CLOSED","title":"[P0][Security] JWT XSS Fix 1/3: Criar authStore com httpOnly cookie strategy"},{"closedAt":"2025-12-09T11:15:37Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":503,"state":"CLOSED","title":"fix(security): Add allowlist for postgresql URL placeholder in rotate-secret.sh"},{"closedAt":"2025-12-09T16:35:01Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":501,"state":"CLOSED","title":"fix(ci): Rollup optional dependency missing in CI builds (@rollup/rollup-linux-x64-gnu)"},{"closedAt":"2025-12-09T17:17:47Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":500,"state":"CLOSED","title":"fix(ci): Gitleaks action requires license for organizations"},{"closedAt":"2025-12-09T02:35:27Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":498,"state":"CLOSED","title":"🔴 P0: Secret detectado no repositório pelo Gitleaks"},{"closedAt":"2025-12-09T01:17:21Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":496,"state":"CLOSED","title":"ci(security): Gitleaks requer licença para organizações"},{"closedAt":"2025-12-09T02:10:20Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":495,"state":"CLOSED","title":"bug(ci): self-hosted runner travado - jobs na fila não executam"},{"closedAt":"2025-12-09T02:10:39Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":494,"state":"CLOSED","title":"chore(ci): add additional self-hosted runner for parallel CI execution"},{"closedAt":"2025-12-21T16:33:46Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":493,"state":"CLOSED","title":"chore(frontend): migrate to React Router v7"},{"closedAt":"2025-12-20T18:58:56Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":492,"state":"CLOSED","title":"chore(frontend): migrate to ESLint 9 flat config"},{"closedAt":"2025-12-09T17:53:26Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":475,"state":"CLOSED","title":"[P0][Frontend] Implementar CTA de conversão para usuário demo"},{"closedAt":"2025-12-09T18:29:46Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":474,"state":"CLOSED","title":"[P0][Backend] Implementar isolamento e reset periódico de dados demo"},{"closedAt":"2025-12-09T22:50:54Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":473,"state":"CLOSED","title":"[P0][Frontend] Modernizar UI/UX seguindo Apple Human Interface Guidelines"},{"closedAt":"2025-12-09T17:06:30Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":472,"state":"CLOSED","title":"[P0][Frontend] Implementar fluxo de troca obrigatória de senha"},{"closedAt":"2025-12-09T22:50:50Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":471,"state":"CLOSED","title":"[P0][Frontend] Criar dashboard de gestão de usuários para Domain Manager"},{"closedAt":"2025-12-14T13:37:36Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":470,"state":"CLOSED","title":"[P0][Frontend] Criar dashboard de gestão de domínios para System Admin"},{"closedAt":"2025-12-08T11:04:23Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":469,"state":"CLOSED","title":"[P0][Backend] Criar seed script para usuários iniciais (master admin e demo)"},{"closedAt":"2025-12-09T03:50:07Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":468,"state":"CLOSED","title":"[P0][Backend] Implementar fluxo de troca obrigatória de senha no primeiro acesso"},{"closedAt":"2025-12-08T02:59:24Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":467,"state":"CLOSED","title":"[P0][Backend] Criar módulo DomainManager para gestão de usuários por domínio"},{"closedAt":"2025-12-08T02:19:22Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":466,"state":"CLOSED","title":"[P0][Backend] Criar módulo SystemAdmin para gestão de domínios pelo gestor master"},{"closedAt":"2025-12-08T01:14:37Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":465,"state":"CLOSED","title":"[P0][Backend] Criar entidade AuthorizedDomain para gestão de domínios institucionais"},{"closedAt":"2025-12-07T21:24:08Z","milestone":{"number":8,"title":"M8: Gestão de Domínios Institucionais","description":"Sistema de controle de acesso hierárquico para domínios institucionais. Roles: SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO. Issues: #464-#475","dueOn":null},"number":464,"state":"CLOSED","title":"[P0][Backend] Estender UserRole enum com novos papéis (SYSTEM_ADMIN, DOMAIN_MANAGER, DEMO)"},{"closedAt":"2025-12-21T00:58:59Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":461,"state":"CLOSED","title":"[P3][Frontend] Bundle optimization - lazy loading not implemented"},{"closedAt":"2025-12-20T18:49:56Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":460,"state":"CLOSED","title":"[P3][Backend] Migration timestamp in future (year 2055)"},{"closedAt":"2025-12-20T20:28:12Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":459,"state":"CLOSED","title":"[P3][Backend] Eager loading User.organization causing unnecessary JOINs"},{"closedAt":"2025-12-21T03:40:51Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":458,"state":"CLOSED","title":"[P2][Frontend] Accessibility (a11y) incomplete - WCAG 2.1 gaps"},{"closedAt":"2025-12-18T11:20:56Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":457,"state":"CLOSED","title":"[P2][Frontend] Missing useCallback/useMemo causing unnecessary renders"},{"closedAt":"2025-12-21T14:07:07Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":456,"state":"CLOSED","title":"[P2][Frontend] Test coverage insufficient - 41% vs 70% target"},{"closedAt":"2025-12-16T13:48:35Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":455,"state":"CLOSED","title":"[P2][Backend] Memory leak risk in LLM cache - unbounded growth"},{"closedAt":"2025-12-15T11:48:14Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":454,"state":"CLOSED","title":"[P2][Backend] N+1 query risk in export and ETP services"},{"closedAt":"2025-12-10T13:21:10Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":453,"state":"CLOSED","title":"[P2][Security] Content Security Policy headers missing in nginx"},{"closedAt":"2025-12-14T00:04:06Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":452,"state":"CLOSED","title":"[P2][Security] CSRF protection incomplete - API requests without tokens"},{"closedAt":"2025-12-07T19:56:06Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":451,"state":"CLOSED","title":"[P1][LGPD] Hard delete scheduler missing - Art. 18 compliance"},{"closedAt":"2025-12-09T14:09:38Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":450,"state":"CLOSED","title":"[P1][Security] TypeScript noImplicitAny disabled - type safety risk"},{"closedAt":"2025-12-09T17:13:13Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":449,"state":"CLOSED","title":"[P1][Security] JWT token stored in localStorage - XSS vulnerability"},{"closedAt":"2025-12-07T19:01:10Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":448,"state":"CLOSED","title":"[P0][HOTFIX] Frontend deploy failing - repository snapshot errors"},{"closedAt":"2025-12-07T18:15:01Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":447,"state":"CLOSED","title":"[P0][HOTFIX] Backend deploy failing - railway.toml config conflict with railway.json"},{"closedAt":"2025-12-06T20:48:47Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":434,"state":"CLOSED","title":"[P0][HOTFIX] Frontend service executing backend startCommand (wrong nixpacks.toml)"},{"closedAt":"2025-12-06T20:41:36Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":433,"state":"CLOSED","title":"[P0][HOTFIX] Railway frontend service using wrong config file (railway.json instead of frontend/railway.toml)"},{"closedAt":"2025-12-06T20:36:24Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":431,"state":"CLOSED","title":"[P0][HOTFIX] Frontend serve binary not found in Railway production"},{"closedAt":"2025-12-06T20:23:12Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":429,"state":"CLOSED","title":"[P0][HOTFIX] Remover conflito entre railway.json e frontend/railway.toml"},{"closedAt":"2025-12-06T21:31:15Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":428,"state":"CLOSED","title":"[P0][HOTFIX] Frontend healthcheck failing - serve not starting correctly"},{"closedAt":"2025-12-15T11:17:27Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":426,"state":"CLOSED","title":"[P3][Backend] Aumentar timeout Perplexity e melhorar resiliência"},{"closedAt":"2025-12-07T02:26:39Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":424,"state":"CLOSED","title":"[P0] Validate frontend build artifacts and dist directory structure"},{"closedAt":"2025-12-06T19:48:31Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":423,"state":"CLOSED","title":"[P0][HOTFIX] Configure frontend startCommand in railway.json to fix crash loop"},{"closedAt":"2025-12-06T18:02:26Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":421,"state":"CLOSED","title":"[P0] Fix WCAG 2.1 link-in-text-block violation - inline links lack visual distinction"},{"closedAt":"2025-12-06T17:24:49Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":419,"state":"CLOSED","title":"[P0] Wrap authentication pages content in <main> landmark for WCAG compliance"},{"closedAt":"2025-12-05T22:49:25Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":413,"state":"CLOSED","title":"[Security] Fix HIGH severity vulnerability in jws dependency (CVE 7.5)"},{"closedAt":"2025-12-05T12:35:30Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":411,"state":"CLOSED","title":"[P0][HOTFIX] Fix AddDeletedAtToUsers migration idempotency"},{"closedAt":"2025-12-05T12:06:01Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":409,"state":"CLOSED","title":"[P0][HOTFIX] AddLgpdConsentFields migration still not idempotent - internationalTransferConsentAt column"},{"closedAt":"2025-12-05T11:38:02Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":407,"state":"CLOSED","title":"[P0][HOTFIX] Fix AddLgpdConsentFields migration idempotency - duplicate column error"},{"closedAt":"2025-12-06T01:27:13Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":406,"state":"CLOSED","title":"[P0][HOTFIX] Fix CreateSecretAccessLogs migration idempotency - secretName column naming"},{"closedAt":"2025-12-05T01:40:32Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":405,"state":"CLOSED","title":"[P0][HOTFIX] CreateSecretAccessLogs migration não idempotente - crashando em redeploys"},{"closedAt":"2025-12-06T01:27:10Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":404,"state":"CLOSED","title":"[P0][HOTFIX] Fix etp_sections/etp_versions column naming (etpId→etp_id)"},{"closedAt":"2025-12-05T00:39:20Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":403,"state":"CLOSED","title":"[P0][HOTFIX] Fix AddOrganizationToEtps migration causing backend crash loops"},{"closedAt":"2025-12-04T23:45:47Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":402,"state":"CLOSED","title":"[P0][HOTFIX] Fix AddOrganizationToUsers migration causing backend crash loops"},{"closedAt":"2025-12-09T10:59:20Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":401,"state":"CLOSED","title":"[P2] Investigar discrepância Health endpoint: JSON vs text/plain"},{"closedAt":"2025-12-04T23:33:54Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":400,"state":"CLOSED","title":"[P0][HOTFIX] Desabilitar migration CreateLegislationTable para restaurar backend production"},{"closedAt":"2025-12-04T22:16:22Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":397,"state":"CLOSED","title":"[P2] Railway: Corrigir healthcheckPath no railway.toml"},{"closedAt":"2025-12-04T22:34:39Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":396,"state":"CLOSED","title":"[P0] Railway: Database schema vazio - migrations falhando"},{"closedAt":"2025-12-04T13:45:54Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":394,"state":"CLOSED","title":"[P0] Railway crash: PostgreSQL SSL connection error"},{"closedAt":"2025-12-04T12:30:50Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":393,"state":"CLOSED","title":"[P0] Railway build failing: nest command not found"},{"closedAt":"2025-12-09T10:59:17Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":392,"state":"CLOSED","title":"[P3] Documentar processo de deploy Railway completo"},{"closedAt":"2025-12-05T23:39:54Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":391,"state":"CLOSED","title":"[P2] Implementar API de Status de Jobs Assíncronos"},{"closedAt":"2025-12-05T13:12:09Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":390,"state":"CLOSED","title":"[P1] Validação End-to-End Deploy Railway"},{"closedAt":"2025-12-04T02:42:51Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":389,"state":"CLOSED","title":"[P0] Railway build failing: husky prepare script"},{"closedAt":"2025-12-04T22:11:37Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":388,"state":"CLOSED","title":"[P0] Railway crash: NODE_ENV variable not set"},{"closedAt":"2025-12-21T01:27:56Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":387,"state":"CLOSED","title":"[EPIC][P0] Migrar PostgreSQL para versão com suporte a pgvector"},{"closedAt":"2025-12-09T11:02:09Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":382,"state":"CLOSED","title":"[P3][Backend] Replace 'any' types in OrchestratorService with proper interfaces"},{"closedAt":"2025-12-07T15:59:42Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":381,"state":"CLOSED","title":"[P3][Backend] Replace console statements with structured logging"},{"closedAt":"2025-12-20T18:36:06Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":379,"state":"CLOSED","title":"Migrar modelo OpenAI para GPT-4.1 nano"},{"closedAt":"2025-12-04T00:56:06Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":378,"state":"CLOSED","title":"fix(entities): add explicit types to remaining entities nullable columns"},{"closedAt":"2025-12-04T00:39:17Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":377,"state":"CLOSED","title":"fix(entities): add explicit types to AnalyticsEvent entity nullable columns"},{"closedAt":"2025-12-04T00:25:25Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":376,"state":"CLOSED","title":"fix(entities): add explicit types to AuditLog entity nullable columns"},{"closedAt":"2025-12-04T00:06:07Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":375,"state":"CLOSED","title":"fix(entities): add explicit types to User entity nullable columns"},{"closedAt":"2025-12-03T22:45:09Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":374,"state":"CLOSED","title":"fix(entities): add explicit type to Organization.stripeCustomerId column"},{"closedAt":"2025-12-02T22:54:35Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":369,"state":"CLOSED","title":"[Test][Backend] Fix auth.controller.spec.ts - Organization mock missing 'etps' property"},{"closedAt":"2025-12-02T23:35:42Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":368,"state":"CLOSED","title":"[Test][Backend] Fix sections.controller.spec.ts - organizationId parameter missing"},{"closedAt":"2025-12-02T23:44:10Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":367,"state":"CLOSED","title":"[Test][Backend] Fix etps.controller.spec.ts - organizationId parameter missing"},{"closedAt":"2025-12-02T14:25:59Z","milestone":{"number":7,"title":"M7: Multi-Tenancy B2G","description":"Transformar sistema Single-Tenant para Multi-Tenant (column-based isolation) para múltiplas prefeituras/órgãos públicos. Issues: #354-#359","dueOn":"2025-12-04T00:00:00Z"},"number":359,"state":"CLOSED","title":"[MT-06] Adaptação do Frontend (Onboarding)"},{"closedAt":"2025-12-02T13:58:52Z","milestone":{"number":7,"title":"M7: Multi-Tenancy B2G","description":"Transformar sistema Single-Tenant para Multi-Tenant (column-based isolation) para múltiplas prefeituras/órgãos públicos. Issues: #354-#359","dueOn":"2025-12-04T00:00:00Z"},"number":358,"state":"CLOSED","title":"[MT-05] Isolamento de Dados dos ETPs (Data Scoping)"},{"closedAt":"2025-12-02T11:52:38Z","milestone":{"number":7,"title":"M7: Multi-Tenancy B2G","description":"Transformar sistema Single-Tenant para Multi-Tenant (column-based isolation) para múltiplas prefeituras/órgãos públicos. Issues: #354-#359","dueOn":"2025-12-04T00:00:00Z"},"number":357,"state":"CLOSED","title":"[MT-04] Middleware de Contexto e Bloqueio (Kill Switch)"},{"closedAt":"2025-12-02T01:10:15Z","milestone":{"number":7,"title":"M7: Multi-Tenancy B2G","description":"Transformar sistema Single-Tenant para Multi-Tenant (column-based isolation) para múltiplas prefeituras/órgãos públicos. Issues: #354-#359","dueOn":"2025-12-04T00:00:00Z"},"number":356,"state":"CLOSED","title":"[MT-03] Refatoração do Registro (Auth Guardrails)"},{"closedAt":"2025-12-02T00:27:11Z","milestone":{"number":7,"title":"M7: Multi-Tenancy B2G","description":"Transformar sistema Single-Tenant para Multi-Tenant (column-based isolation) para múltiplas prefeituras/órgãos públicos. Issues: #354-#359","dueOn":"2025-12-04T00:00:00Z"},"number":355,"state":"CLOSED","title":"[MT-02] Associação de Usuários (User-Org Relation)"},{"closedAt":"2025-12-01T23:48:50Z","milestone":{"number":7,"title":"M7: Multi-Tenancy B2G","description":"Transformar sistema Single-Tenant para Multi-Tenant (column-based isolation) para múltiplas prefeituras/órgãos públicos. Issues: #354-#359","dueOn":"2025-12-04T00:00:00Z"},"number":354,"state":"CLOSED","title":"[MT-01] Infraestrutura de Dados (Schema Organization)"},{"closedAt":"2025-11-29T20:55:04Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":343,"state":"CLOSED","title":"[PERF-91e] Configurar connection pooling explícito PostgreSQL"},{"closedAt":"2025-11-29T22:26:50Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":342,"state":"CLOSED","title":"[PERF-91d] Implementar selective loading de relations no banco"},{"closedAt":"2025-11-29T21:39:42Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":341,"state":"CLOSED","title":"[PERF-91c] Verificar e garantir paralelização de agentes de validação"},{"closedAt":"2025-11-30T01:46:30Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":340,"state":"CLOSED","title":"[PERF-91b] Implementar cache de respostas Perplexity"},{"closedAt":"2025-11-29T21:27:56Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":339,"state":"CLOSED","title":"[PERF-91a] Implementar cache de respostas LLM OpenAI"},{"closedAt":"2025-11-29T15:52:27Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":329,"state":"CLOSED","title":"[ETP-32d] Refatorar ETPEditor.tsx para compor subcomponentes"},{"closedAt":"2025-11-29T15:37:47Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":328,"state":"CLOSED","title":"[ETP-32c] Criar ETPEditorSidebar.tsx + testes"},{"closedAt":"2025-11-29T15:30:00Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":327,"state":"CLOSED","title":"[ETP-32b] Criar ETPEditorTabsList.tsx e ETPEditorContent.tsx"},{"closedAt":"2025-11-29T02:29:06Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":326,"state":"CLOSED","title":"[ETP-32a] Criar ETPEditorHeader.tsx e ETPEditorProgress.tsx"},{"closedAt":"2025-11-28T22:43:57Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":321,"state":"CLOSED","title":"[BUG] Monorepo @nestjs/common dependency conflict breaks builds"},{"closedAt":"2025-11-29T01:59:56Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":319,"state":"CLOSED","title":"[ORCH-28d] Refatorar generateSection() como orquestrador + validar testes de integração"},{"closedAt":"2025-11-29T00:58:12Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":318,"state":"CLOSED","title":"[ORCH-28c] Extrair runValidations() do OrchestratorService"},{"closedAt":"2025-11-28T22:28:06Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":317,"state":"CLOSED","title":"[ORCH-28b] Extrair generateWithLLM() e postProcessContent() do OrchestratorService"},{"closedAt":"2025-11-28T12:23:24Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":316,"state":"CLOSED","title":"[ORCH-28a] Extrair buildEnrichedPrompt() do OrchestratorService"},{"closedAt":"2025-11-26T23:13:54Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":301,"state":"CLOSED","title":"[SEC-114d] Documentar vendor research e RFP para pentest"},{"closedAt":"2025-11-26T23:03:59Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":300,"state":"CLOSED","title":"[SEC-114c] Criar guia de Security Awareness para o time"},{"closedAt":"2025-11-26T22:17:26Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":299,"state":"CLOSED","title":"[SEC-114b] Documentar processo de triage de vulnerabilidades"},{"closedAt":"2025-11-26T00:57:29Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":298,"state":"CLOSED","title":"[SEC-114a] Criar SECURITY.md com Vulnerability Disclosure Policy"},{"closedAt":"2025-11-22T22:00:17Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":269,"state":"CLOSED","title":"[LGPD-86i] Gerar relatório consolidado de conformidade LGPD"},{"closedAt":"2025-11-22T16:56:31Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":268,"state":"CLOSED","title":"[LGPD-86h] Avaliar e documentar anonimização/pseudonimização de dados"},{"closedAt":"2025-11-22T20:30:29Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":267,"state":"CLOSED","title":"[LGPD-86g] Criar política de privacidade e termos de uso"},{"closedAt":"2025-11-22T00:44:39Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":266,"state":"CLOSED","title":"[LGPD-86f] Implementar logs de auditoria para acesso a dados pessoais"},{"closedAt":"2025-11-21T23:36:21Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":265,"state":"CLOSED","title":"[LGPD-86e] Verificar implementação dos direitos do titular (acesso, correção, exclusão)"},{"closedAt":"2025-11-21T22:23:15Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":264,"state":"CLOSED","title":"[LGPD-86d] Revisar e documentar política de retenção de dados"},{"closedAt":"2025-11-21T18:28:36Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":263,"state":"CLOSED","title":"[LGPD-86c] Validar criptografia de dados sensíveis em trânsito e repouso"},{"closedAt":"2025-11-21T18:43:23Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":262,"state":"CLOSED","title":"[LGPD-86b] Verificar mecanismos de consentimento de usuários"},{"closedAt":"2025-11-21T18:16:06Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":261,"state":"CLOSED","title":"[LGPD-86a] Mapear fluxo de dados pessoais no sistema"},{"closedAt":"2025-11-27T11:50:44Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":257,"state":"CLOSED","title":"[P2-MEDIUM] Add CI workflow validation for package-lock.json consistency"},{"closedAt":"2025-11-27T11:35:38Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":256,"state":"CLOSED","title":"[P2-MEDIUM] Add pre-commit hook to validate line endings"},{"closedAt":"2025-11-21T17:42:04Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":255,"state":"CLOSED","title":"[P1-HIGH] Normalize existing CRLF files to LF in backend"},{"closedAt":"2025-11-21T17:42:04Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":254,"state":"CLOSED","title":"[P1-HIGH] Add .gitattributes to enforce LF line endings across codebase"},{"closedAt":"2025-11-21T17:42:04Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":253,"state":"CLOSED","title":"[P1-HIGH] Configure Prettier endOfLine to fix CRLF lint errors in CI"},{"closedAt":"2025-11-21T14:29:06Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":252,"state":"CLOSED","title":"[P0-CRITICAL] Fix package-lock.json inconsistency breaking CI test workflows"},{"closedAt":"2025-12-09T10:59:15Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":248,"state":"CLOSED","title":"[PROCESS] Estabelecer limite de tamanho para PRs futuras"},{"closedAt":"2025-11-21T03:03:37Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":247,"state":"CLOSED","title":"[SECURITY] Resolver vulnerabilidades HIGH no npm audit"},{"closedAt":"2025-11-21T00:52:49Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":243,"state":"CLOSED","title":"[P0] Fix frontend TypeScript build errors blocking deployments"},{"closedAt":"2025-11-21T13:53:26Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":239,"state":"CLOSED","title":"[P1][LGPD-113g] Testes E2E de export e delete"},{"closedAt":"2025-11-21T12:53:27Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":238,"state":"CLOSED","title":"[P1][LGPD-113f] Adicionar audit trail para exports e deletions"},{"closedAt":"2025-11-21T03:03:37Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":237,"state":"CLOSED","title":"[P1][LGPD-113e] Adicionar email de confirmação para deleção de conta"},{"closedAt":"2025-11-21T13:27:31Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":236,"state":"CLOSED","title":"[P1][LGPD-113d] Implementar hard delete após 30 dias (retention policy)"},{"closedAt":"2025-11-20T19:39:53Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":235,"state":"CLOSED","title":"[P0][LGPD-113c] Configurar cascade delete para ETPs e seções"},{"closedAt":"2025-11-20T21:49:29Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":234,"state":"CLOSED","title":"[P0][LGPD-113b] Implementar endpoint DELETE /users/me"},{"closedAt":"2025-11-20T20:31:20Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":233,"state":"CLOSED","title":"[P0][LGPD-113a] Implementar endpoint GET /users/me/export"},{"closedAt":"2025-11-27T00:01:49Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":231,"state":"CLOSED","title":"[Security] Resolve pre-existing npm vulnerabilities"},{"closedAt":"2025-12-09T11:02:12Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":224,"state":"CLOSED","title":"[P4][Backend] Alertas de rotação de secrets pendente"},{"closedAt":"2025-12-21T14:54:23Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":223,"state":"CLOSED","title":"[P4][DevOps] Automatizar rotação de secrets via GitHub Actions"},{"closedAt":"2025-12-07T02:19:38Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":222,"state":"CLOSED","title":"[P2][Frontend] UX assíncrona para geração de seções"},{"closedAt":"2025-12-06T01:32:35Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":221,"state":"CLOSED","title":"[P2][Backend] API de status de jobs"},{"closedAt":"2025-12-04T01:44:30Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":220,"state":"CLOSED","title":"[P2][Backend] Implementar BullMQ para geração de seções"},{"closedAt":"2025-12-03T11:40:50Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":219,"state":"CLOSED","title":"[P2][Infra] Setup Redis no Railway"},{"closedAt":"2025-12-09T10:59:12Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":218,"state":"CLOSED","title":"[P3][Backend] Admin endpoint para hot-reload de prompts"},{"closedAt":"2025-12-09T10:59:10Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":217,"state":"CLOSED","title":"[P3][Backend] Externalizar configurações de temperatura"},{"closedAt":"2025-12-09T10:59:08Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":216,"state":"CLOSED","title":"[P3][Backend] Criar PromptTemplateService"},{"closedAt":"2025-12-07T17:05:57Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":215,"state":"CLOSED","title":"[P3][Backend] Extrair system prompts para arquivos YAML"},{"closedAt":"2025-11-27T00:28:12Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":214,"state":"CLOSED","title":"[P1][Backend] Melhorar scoring do AntiHallucinationAgent"},{"closedAt":"2025-11-26T23:46:29Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":213,"state":"CLOSED","title":"[P1][Backend] Fact-checking reverso via Perplexity"},{"closedAt":"2025-11-24T23:38:25Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":212,"state":"CLOSED","title":"[P1][Backend] Integrar RAG no AntiHallucinationAgent"},{"closedAt":"2025-11-24T22:38:51Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":211,"state":"CLOSED","title":"[P1][Backend] PoC RAG com Lei 14.133/2021"},{"closedAt":"2025-11-25T01:58:44Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":210,"state":"CLOSED","title":"[P1][Backend] Graceful degradation quando Perplexity falha"},{"closedAt":"2025-11-25T00:50:15Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":209,"state":"CLOSED","title":"[P1][Backend] Health check proativo de provedores externos"},{"closedAt":"2025-11-24T02:33:27Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":208,"state":"CLOSED","title":"[P1][Backend] Retry com exponential backoff para APIs externas"},{"closedAt":"2025-11-24T02:07:38Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":207,"state":"CLOSED","title":"[P1][Backend] Implementar Circuit Breaker para Perplexity"},{"closedAt":"2025-11-20T16:03:19Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":206,"state":"CLOSED","title":"[P1][Backend] Implementar Circuit Breaker para OpenAI"},{"closedAt":"2025-11-20T02:37:35Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":205,"state":"CLOSED","title":"[P0][Docs] Política de Privacidade completa conforme LGPD"},{"closedAt":"2025-11-20T02:07:17Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":204,"state":"CLOSED","title":"[P0][Frontend] Aviso de transferência internacional de dados"},{"closedAt":"2025-11-20T00:55:06Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":203,"state":"CLOSED","title":"[P0][Backend] Implementar sanitização PII antes de envio para LLMs"},{"closedAt":"2025-11-20T00:22:04Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":202,"state":"CLOSED","title":"[P0][Backend] Implementar consentimento LGPD no registro"},{"closedAt":"2025-11-20T16:44:32Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":197,"state":"CLOSED","title":"[LGPD-86g] Gerar relatório final de conformidade LGPD"},{"closedAt":"2025-11-20T14:48:23Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":196,"state":"CLOSED","title":"[LGPD-86f] Criar política de privacidade e termos de uso"},{"closedAt":"2025-11-19T23:05:15Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":195,"state":"CLOSED","title":"[LGPD-86e] Verificar direitos do titular (acesso, correção, exclusão)"},{"closedAt":"2025-11-19T22:52:15Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":194,"state":"CLOSED","title":"[LGPD-86d] Implementar política de retenção de dados"},{"closedAt":"2025-11-19T22:19:54Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":193,"state":"CLOSED","title":"[LGPD-86c] Validar criptografia de dados em trânsito e repouso"},{"closedAt":"2025-11-19T22:04:29Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":192,"state":"CLOSED","title":"[LGPD-86b] Verificar consentimento e termos de uso"},{"closedAt":"2025-11-19T11:53:51Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":191,"state":"CLOSED","title":"[LGPD-86a] Mapear fluxo de dados pessoais (coleta, armazenamento, processamento)"},{"closedAt":"2025-12-05T23:39:53Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":186,"state":"CLOSED","title":"[P3][Backend] Implement async queue processing with BullMQ for long-running section generation"},{"closedAt":"2025-11-19T00:38:55Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":183,"state":"CLOSED","title":"[CI] Fix vitest package resolution in Test Frontend workflow"},{"closedAt":"2025-11-30T02:00:26Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":181,"state":"CLOSED","title":"[P2][Infrastructure] Add migration-aware readiness probe to health checks"},{"closedAt":"2025-11-19T01:03:08Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":180,"state":"CLOSED","title":"[P1][Infrastructure] Configure Railway timeout for long-running generateSection"},{"closedAt":"2025-11-19T00:52:42Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":179,"state":"CLOSED","title":"[P0][Legal Safety] Implement dynamic LLM temperature by section type"},{"closedAt":"2025-11-18T22:32:59Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":178,"state":"CLOSED","title":"[P0][Data Integrity] Remove silent Perplexity mock data fallback"},{"closedAt":"2025-11-19T01:07:41Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":177,"state":"CLOSED","title":"[SEC-109b] Configurar GitHub Secret Scanning e pre-commit hook"},{"closedAt":"2025-11-19T01:07:38Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":176,"state":"CLOSED","title":"[SEC-109a] Research e decisão: Escolher solução de secrets management"},{"closedAt":"2025-11-18T11:04:19Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":172,"state":"CLOSED","title":"chore(deps): investigate and upgrade major dependency versions"},{"closedAt":"2025-11-19T11:41:55Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":158,"state":"CLOSED","title":"[SEC-109f] Implementar audit trail para acesso a secrets"},{"closedAt":"2025-11-19T11:25:52Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":157,"state":"CLOSED","title":"[SEC-109e] Implementar dual-key strategy para zero-downtime rotation"},{"closedAt":"2025-11-19T01:23:38Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":156,"state":"CLOSED","title":"[SEC-109d] Documentar procedimento de rotação de secrets"},{"closedAt":"2025-11-19T01:07:35Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":155,"state":"CLOSED","title":"[SEC-109c] Migrar secrets para solução de gestão escolhida"},{"closedAt":"2025-11-17T23:14:47Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":154,"state":"CLOSED","title":"[SEC-109b] Implementar secret scanning (GitHub + pre-commit hook)"},{"closedAt":"2025-11-18T11:27:49Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":153,"state":"CLOSED","title":"[SEC-109a] Avaliar e selecionar solução de Secrets Management"},{"closedAt":"2025-11-17T00:46:49Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":145,"state":"CLOSED","title":"[SECURITY] Fix HIGH vulnerability in dompurify (via jspdf)"},{"closedAt":"2025-11-27T00:14:51Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":114,"state":"CLOSED","title":"[SEC] Third-Party Penetration Testing & Vulnerability Disclosure"},{"closedAt":"2025-11-22T22:46:54Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":113,"state":"CLOSED","title":"[LGPD] Data Export & Deletion Automation for Compliance"},{"closedAt":"2025-11-15T19:08:03Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":112,"state":"CLOSED","title":"[INFRA] Infrastructure as Code & Environment Reproducibility"},{"closedAt":"2025-12-22T21:15:00Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":111,"state":"CLOSED","title":"[EPIC][OPS] Production Support SLA Definition & Team Training"},{"closedAt":"2025-12-22T21:14:57Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":110,"state":"CLOSED","title":"[EPIC][OPS] Staged Rollout Strategy & Feature Flags Implementation"},{"closedAt":"2025-11-19T11:48:30Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":109,"state":"CLOSED","title":"[SEC] Secrets Management & API Key Rotation Strategy"},{"closedAt":"2025-11-17T01:05:36Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":108,"state":"CLOSED","title":"[PERF] Database Performance Optimization & Production Tuning"},{"closedAt":"2025-11-15T01:45:11Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":107,"state":"CLOSED","title":"[INFRA] Zero-Downtime Deployment Strategy"},{"closedAt":"2025-11-15T15:42:28Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":106,"state":"CLOSED","title":"[OPS] Production Incident Response Playbook"},{"closedAt":"2025-11-15T17:23:22Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":105,"state":"CLOSED","title":"[INFRA] Production Monitoring & Alerting Infrastructure"},{"closedAt":"2025-11-15T16:02:49Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":104,"state":"CLOSED","title":"[INFRA] Database Disaster Recovery Testing & Validation"},{"closedAt":"2025-11-13T11:06:51Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":103,"state":"CLOSED","title":"test(users): Add unit tests for users module (≥70% coverage)"},{"closedAt":"2025-11-13T01:26:39Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":102,"state":"CLOSED","title":"test(search): Add unit tests for search module (≥60% coverage)"},{"closedAt":"2025-11-13T01:08:58Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":101,"state":"CLOSED","title":"test(analytics): Add unit tests for analytics module (≥60% coverage)"},{"closedAt":"2025-11-13T00:49:11Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":100,"state":"CLOSED","title":"test(versions): Add unit tests for versions module (≥70% coverage)"},{"closedAt":"2025-11-13T00:35:48Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":99,"state":"CLOSED","title":"test(export): Add unit tests for export module (≥70% coverage)"},{"closedAt":"2025-11-12T12:02:24Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":97,"state":"CLOSED","title":"Documentation synchronization and JSDoc implementation"},{"closedAt":"2025-12-09T10:59:06Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":95,"state":"CLOSED","title":"[#48d] Análise de resultados e relatório final de UAT"},{"closedAt":"2025-12-09T10:59:03Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":94,"state":"CLOSED","title":"[#48c] Execução de sessões UAT e coleta de feedback"},{"closedAt":"2025-12-09T10:59:01Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":93,"state":"CLOSED","title":"[#48b] Planejamento e roteiro de sessões UAT"},{"closedAt":"2025-12-09T10:58:59Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":92,"state":"CLOSED","title":"[#48a] Recrutamento de 3-5 testadores (servidores públicos)"},{"closedAt":"2025-12-01T12:49:32Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":91,"state":"CLOSED","title":"[#47d] Implementar otimizações de performance identificadas"},{"closedAt":"2025-11-29T20:08:19Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":90,"state":"CLOSED","title":"[#47c] Análise de bottlenecks e profiling de performance"},{"closedAt":"2025-11-29T17:31:09Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":89,"state":"CLOSED","title":"[#47b] Executar testes de carga para 100+ usuários simultâneos"},{"closedAt":"2025-11-29T16:56:15Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":88,"state":"CLOSED","title":"[#47a] Setup ambiente de load testing (k6 ou Artillery)"},{"closedAt":"2025-11-22T23:32:04Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":87,"state":"CLOSED","title":"[#46c] Implementar remediações de segurança identificadas"},{"closedAt":"2025-11-22T22:46:17Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":86,"state":"CLOSED","title":"[#46b] Auditoria de conformidade: LGPD e privacidade de dados"},{"closedAt":"2025-11-12T12:44:07Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":85,"state":"CLOSED","title":"[#46a] Auditoria de segurança: OWASP Top 10 (2023)"},{"closedAt":"2025-12-07T15:32:06Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":84,"state":"CLOSED","title":"[#43c] Testar geração seções 9-13 (Cronograma, Indicadores, Riscos, Sustentabilidade, Anexos)"},{"closedAt":"2025-12-07T13:51:14Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":83,"state":"CLOSED","title":"[#43b] Testar geração seções 5-8 (Justificativa, Beneficiários, Orçamento, Metodologia)"},{"closedAt":"2025-12-07T03:58:29Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":82,"state":"CLOSED","title":"[#43a] Testar geração seções 1-4 (Identificação, Contexto, Problema, Objetivos)"},{"closedAt":"2025-11-30T17:00:56Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":81,"state":"CLOSED","title":"[#42e] Auditar módulo User contra ARCHITECTURE.md"},{"closedAt":"2025-11-30T16:14:57Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":80,"state":"CLOSED","title":"[#42d] Auditar módulo Orchestrator contra ARCHITECTURE.md"},{"closedAt":"2025-11-30T14:09:38Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":79,"state":"CLOSED","title":"[#42c] Auditar módulo Sections contra ARCHITECTURE.md"},{"closedAt":"2025-11-29T16:44:44Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":78,"state":"CLOSED","title":"[#42b] Auditar módulo ETPs contra ARCHITECTURE.md"},{"closedAt":"2025-11-29T16:27:29Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":77,"state":"CLOSED","title":"[#42a] Auditar módulo Auth contra ARCHITECTURE.md"},{"closedAt":"2025-11-10T22:58:03Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":63,"state":"CLOSED","title":"test(backend): Expand test coverage to 70% backend target"},{"closedAt":"2025-11-12T12:02:24Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":62,"state":"CLOSED","title":"docs(backend): Add JSDoc documentation standards"},{"closedAt":"2025-11-10T22:58:18Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":61,"state":"CLOSED","title":"fix(security): Resolve npm audit vulnerabilities (10 total, 5 HIGH)"},{"closedAt":"2025-11-10T22:57:34Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":60,"state":"CLOSED","title":"feat(backend): Setup ESLint + Prettier configuration"},{"closedAt":"2025-11-13T12:27:14Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":59,"state":"CLOSED","title":"test(services): Write unit tests for remaining services (≥50% coverage)"},{"closedAt":"2025-11-13T12:08:03Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":58,"state":"CLOSED","title":"test(controllers): Write unit tests for remaining controllers (≥60% coverage)"},{"closedAt":"2025-11-12T01:20:07Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":57,"state":"CLOSED","title":"test(sections): Write unit tests for sections module (≥80% coverage)"},{"closedAt":"2025-11-10T22:56:25Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":56,"state":"CLOSED","title":"test(etps): Write unit tests for ETPs module (≥80% coverage)"},{"closedAt":"2025-11-12T00:59:18Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":55,"state":"CLOSED","title":"test(auth): Write unit tests for auth module (≥80% coverage)"},{"closedAt":"2025-11-12T11:37:37Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":54,"state":"CLOSED","title":"test(backend): Increase unit test coverage from 0.46% to ≥70%"},{"closedAt":"2025-11-12T00:46:18Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":53,"state":"CLOSED","title":"docs(backend): Add JSDoc/TSDoc to all public APIs (AppService as baseline)"},{"closedAt":"2025-11-11T00:40:22Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":52,"state":"CLOSED","title":"feat(backend): Configure ESLint with TypeScript and NestJS rules"},{"closedAt":"2025-11-11T00:12:51Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":51,"state":"CLOSED","title":"fix(typescript): Resolve 3 type errors in search, perplexity, and sections modules"},{"closedAt":"2025-11-10T23:29:43Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":50,"state":"CLOSED","title":"fix(security): Resolve 5 HIGH vulnerabilities in puppeteer dependencies"},{"closedAt":"2025-11-12T11:37:13Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":48,"state":"CLOSED","title":"[UAT] Teste de aceitação com usuários reais (servidores públicos)"},{"closedAt":"2025-11-12T11:36:04Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":47,"state":"CLOSED","title":"[PERFORMANCE] Load testing e otimização para 100+ usuários simultâneos"},{"closedAt":"2025-11-12T11:34:30Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":46,"state":"CLOSED","title":"[SEGURANÇA] Auditoria de segurança completa (OWASP Top 10 + LGPD)"},{"closedAt":"2025-11-14T23:12:04Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":45,"state":"CLOSED","title":"[INFRA] Configurar backup automático PostgreSQL e disaster recovery"},{"closedAt":"2025-11-14T22:34:29Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":44,"state":"CLOSED","title":"[INFRA] Configurar deploy em Railway (backend + frontend + PostgreSQL)"},{"closedAt":"2025-11-12T11:33:23Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":43,"state":"CLOSED","title":"[VALIDAÇÃO] Testar geração de conteúdo das 13 seções do ETP"},{"closedAt":"2025-11-12T11:32:31Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":42,"state":"CLOSED","title":"[VALIDAÇÃO] Auditar funcionalidades implementadas vs ARCHITECTURE.md"},{"closedAt":"2025-11-17T22:44:40Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":41,"state":"CLOSED","title":"[Backend][Refatoração] Substituir 'any' por interfaces tipadas em auth.service.ts"},{"closedAt":"2025-12-09T10:58:57Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":40,"state":"CLOSED","title":"[Dependências] Atualizar dependências desatualizadas (backend e frontend)"},{"closedAt":"2025-11-15T16:09:56Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":39,"state":"CLOSED","title":"[Frontend][Segurança] Substituir window.location.href por navigate do React Router"},{"closedAt":"2025-11-17T02:11:37Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":38,"state":"CLOSED","title":"[Backend][Segurança] Adicionar rate limiting por usuário (não apenas IP)"},{"closedAt":"2025-12-07T03:25:05Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":37,"state":"CLOSED","title":"[Docs] Documentar estratégia de testes no ARCHITECTURE.md"},{"closedAt":"2025-12-07T03:11:50Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":36,"state":"CLOSED","title":"[Docs] Atualizar README com badges de CI, coverage e instruções de teste"},{"closedAt":"2025-12-07T02:53:14Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":35,"state":"CLOSED","title":"[Frontend][Observabilidade] Substituir console.error por logging service"},{"closedAt":"2025-12-02T22:14:55Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":34,"state":"CLOSED","title":"[Docs] Adicionar JSDoc completo em OrchestratorService e agentes"},{"closedAt":"2025-11-28T01:16:42Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":33,"state":"CLOSED","title":"[Frontend][Refatoração] Mover SECTION_TEMPLATES para arquivo JSON"},{"closedAt":"2025-11-29T16:09:44Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":32,"state":"CLOSED","title":"[Frontend][Refatoração] Dividir ETPEditor.tsx em subcomponentes menores"},{"closedAt":"2025-11-27T22:44:34Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":31,"state":"CLOSED","title":"[Frontend][Refatoração] Adicionar useMemo em ETPs.tsx para filteredETPs"},{"closedAt":"2025-11-27T22:33:49Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":30,"state":"CLOSED","title":"[Frontend][Refatoração] Adicionar useMemo em Dashboard.tsx para stats"},{"closedAt":"2025-11-27T12:03:46Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":29,"state":"CLOSED","title":"[Frontend][Refatoração] Corrigir duplicação de localStorage em authStore"},{"closedAt":"2025-11-29T02:04:33Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":28,"state":"CLOSED","title":"[Backend][Refatoração] Quebrar OrchestratorService.generateSection() em funções menores"},{"closedAt":"2025-11-06T17:28:22Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":27,"state":"CLOSED","title":"[Backend][Refatoração] Substituir 'any' por interfaces tipadas em auth.service.ts"},{"closedAt":"2025-11-10T22:56:28Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":26,"state":"CLOSED","title":"[Backend][Refatoração] Substituir 'any' por interfaces tipadas em orchestrator.service.ts"},{"closedAt":"2025-11-17T11:28:34Z","milestone":{"number":4,"title":"M4: Refactoring & Performance","description":"Refatoração de código (DRY, types, componentização) e otimizações de performance. Issues: #25-#33, #41","dueOn":"2025-12-18T00:00:00Z"},"number":25,"state":"CLOSED","title":"[Backend][Refatoração] Extrair constante DISCLAIMER e eliminar 12 duplicações"},{"closedAt":"2025-12-06T18:33:12Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":24,"state":"CLOSED","title":"[E2E] Adicionar testes de acessibilidade com Axe-core"},{"closedAt":"2025-12-02T23:56:21Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":23,"state":"CLOSED","title":"[E2E] Criar teste E2E para fluxo crítico completo"},{"closedAt":"2025-12-01T14:36:04Z","milestone":{"number":5,"title":"M5: E2E Testing & Documentation","description":"Testes end-to-end (Puppeteer), acessibilidade (WCAG) e documentação completa (JSDoc, ARCHITECTURE, README). Issues: #22-#24, #34-#37","dueOn":"2026-01-08T00:00:00Z"},"number":22,"state":"CLOSED","title":"[E2E] Configurar Puppeteer para testes end-to-end"},{"closedAt":"2025-11-17T22:35:47Z","milestone":{"number":6,"title":"M6: Maintenance (Recurring)","description":"Tarefas recorrentes de manutenção: atualização de dependências, Dependabot, npm audit. Issues: #21, #40","dueOn":null},"number":21,"state":"CLOSED","title":"[CI] Configurar Dependabot para atualizações automáticas"},{"closedAt":"2025-11-14T21:47:04Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":20,"state":"CLOSED","title":"[CI] Criar workflow GitHub Actions para Testes com coverage threshold"},{"closedAt":"2025-11-14T01:52:27Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":19,"state":"CLOSED","title":"[CI] Criar workflow GitHub Actions para Lint"},{"closedAt":"2025-11-14T01:33:43Z","milestone":{"number":2,"title":"M2: CI/CD Pipeline","description":"Configurar GitHub Actions para lint e testes automatizados com coverage threshold. Bloqueio de PRs com problemas. Issues: #18-#21","dueOn":"2025-11-27T00:00:00Z"},"number":18,"state":"CLOSED","title":"[Frontend][Config] Habilitar ESLint rule react-hooks/exhaustive-deps como erro"},{"closedAt":"2025-11-15T16:26:39Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":17,"state":"CLOSED","title":"[Frontend][Bug] Corrigir useEffect com dependências faltando em ETPEditor.tsx"},{"closedAt":"2025-11-10T22:56:31Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":16,"state":"CLOSED","title":"[Frontend][Bug] Corrigir useEffect com dependências faltando em ETPs.tsx"},{"closedAt":"2025-11-10T22:56:34Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":15,"state":"CLOSED","title":"[Frontend][Bug] Corrigir useEffect com dependências faltando em Dashboard.tsx"},{"closedAt":"2025-11-10T22:56:36Z","milestone":{"number":3,"title":"M3: Quality & Security","description":"Corrigir bugs críticos (useEffect) e implementar segurança (rate limiting, navegação). Issues: #14-#17, #38-#39","dueOn":"2025-12-04T00:00:00Z"},"number":14,"state":"CLOSED","title":"[Frontend][Bug] Corrigir useEffect com dependências faltando em useETPs.ts"},{"closedAt":"2025-11-14T01:22:25Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":13,"state":"CLOSED","title":"[Frontend][Testes] Adicionar testes de componente para ETPEditor"},{"closedAt":"2025-11-14T00:57:49Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":12,"state":"CLOSED","title":"[Frontend][Testes] Adicionar testes unitários para etpStore"},{"closedAt":"2025-11-10T22:56:40Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":11,"state":"CLOSED","title":"[Frontend][Testes] Adicionar testes unitários para authStore"},{"closedAt":"2025-11-13T10:52:20Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":10,"state":"CLOSED","title":"[Frontend][Testes] Configurar Vitest + React Testing Library"},{"closedAt":"2025-11-11T22:10:07Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":9,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes de integração para SectionsController"},{"closedAt":"2025-11-11T13:36:01Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":8,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes de integração para OrchestratorService"},{"closedAt":"2025-11-11T13:15:56Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":7,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes unitários para AntiHallucinationAgent"},{"closedAt":"2025-11-11T12:54:55Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":6,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes unitários para SimplificacaoAgent"},{"closedAt":"2025-11-11T12:32:40Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":5,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes unitários para ClarezaAgent"},{"closedAt":"2025-11-11T11:38:05Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":4,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes unitários para FundamentacaoAgent"},{"closedAt":"2025-11-11T01:21:11Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":3,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes unitários para LegalAgent"},{"closedAt":"2025-11-11T01:11:07Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":2,"state":"CLOSED","title":"[Backend][Testes] Adicionar testes unitários para AuthService"},{"closedAt":"2025-11-08T12:19:40Z","milestone":{"number":1,"title":"M1: Foundation - Testes","description":"Implementar suite completa de testes (backend + frontend) como fundação para desenvolvimento assistido por IA. Issues: #1-#13","dueOn":"2025-11-20T00:00:00Z"},"number":1,"state":"CLOSED","title":"[Backend][Testes] Configurar Jest e criar primeiro teste de exemplo"}]