feat: SSE para chat desktop, rate limiting, retry, testes e atualizacao de stack

- Implementa Server-Sent Events (SSE) para chat no desktop com fallback HTTP
- Adiciona rate limiting nas APIs de chat (poll, messages, sessions)
- Adiciona retry com backoff exponencial para mutations
- Cria testes para modulo liveChat (20 testes)
- Corrige testes de SMTP (unit tests para extractEnvelopeAddress)
- Adiciona indice by_status_lastActivity para cron de sessoes inativas
- Atualiza stack: Bun 1.3.4, React 19, recharts 3, noble/hashes 2, etc

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
esdrasrenan 2025-12-07 16:29:18 -03:00
parent 0e0bd9a49c
commit d01c37522f
19 changed files with 1465 additions and 443 deletions

View file

@ -30,9 +30,9 @@
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@hookform/resolvers": "^3.10.0",
"@noble/hashes": "^1.5.0",
"@paper-design/shaders-react": "^0.0.55",
"@hookform/resolvers": "5.2.2",
"@noble/hashes": "2.0.1",
"@paper-design/shaders-react": "0.0.68",
"@prisma/adapter-better-sqlite3": "^7.0.0",
"@prisma/client": "^7.0.0",
"@radix-ui/react-accordion": "^1.2.12",
@ -54,34 +54,34 @@
"@react-three/fiber": "^9.3.0",
"@tabler/icons-react": "^3.35.0",
"@tanstack/react-table": "^8.21.3",
"@tiptap/extension-link": "^3.10.0",
"@tiptap/extension-mention": "^3.10.0",
"@tiptap/extension-placeholder": "^3.10.0",
"@tiptap/markdown": "^3.10.0",
"@tiptap/react": "^3.10.0",
"@tiptap/starter-kit": "^3.10.0",
"@tiptap/suggestion": "^3.10.0",
"@tiptap/extension-link": "3.13.0",
"@tiptap/extension-mention": "3.13.0",
"@tiptap/extension-placeholder": "3.13.0",
"@tiptap/markdown": "3.13.0",
"@tiptap/react": "3.13.0",
"@tiptap/starter-kit": "3.13.0",
"@tiptap/suggestion": "3.13.0",
"better-auth": "^1.3.26",
"better-sqlite3": "12.5.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"convex": "^1.29.2",
"date-fns": "^4.1.0",
"dotenv": "^16.4.5",
"lucide-react": "^0.544.0",
"dotenv": "17.2.3",
"lucide-react": "0.556.0",
"next": "^16.0.7",
"next-themes": "^0.4.6",
"pdfkit": "^0.17.2",
"postcss": "^8.5.6",
"react": "^19.2.1",
"react-day-picker": "^9.4.2",
"react-day-picker": "9.12.0",
"react-dom": "^19.2.1",
"react-hook-form": "^7.64.0",
"recharts": "^2.15.4",
"recharts": "3.5.1",
"sanitize-html": "^2.17.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"three": "^0.180.0",
"three": "0.181.2",
"tippy.js": "^6.3.7",
"unicornstudio-react": "^1.4.31",
"vaul": "^1.1.2",
@ -93,19 +93,19 @@
"@tauri-apps/api": "^2.8.0",
"@tauri-apps/cli": "^2.8.4",
"@types/bun": "^1.1.10",
"@types/jsdom": "^21.1.7",
"@types/node": "^20",
"@types/jsdom": "27.0.0",
"@types/node": "24.10.1",
"@types/pdfkit": "^0.17.3",
"@types/react": "^18",
"@types/react-dom": "^18",
"@types/react": "^19",
"@types/react-dom": "^19",
"@types/sanitize-html": "^2.16.0",
"@types/three": "^0.180.0",
"@types/three": "0.181.0",
"@vitest/browser-playwright": "^4.0.1",
"baseline-browser-mapping": "^2.9.2",
"cross-env": "^10.1.0",
"eslint": "^9",
"eslint-config-next": "^16.0.7",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-hooks": "7.0.0",
"jsdom": "^27.0.1",
"playwright": "^1.56.1",
"prisma": "^7.0.0",