• Hoanganhvu123's avatar
    feat(epic8+docx): complete Inbound Webhooks CRM Inbox + Full DOCX Document Management · a67917c3
    Hoanganhvu123 authored
    EPIC 8 - INBOUND WEBHOOKS & CRM INBOX 
    ========================================
    Backend:
    - Add is_read field to memos table with auto-migration
    - Inbound webhook endpoint: POST /inbound_webhooks/{workspace_id}
    - Inbox endpoints: GET /users/{id}/inbox/unread_count, GET /users/{id}/inbox/memos
    - Webhook payload formatting (title+body → markdown, arbitrary → bullet list)
    - Optional secret verification via X-Webhook-Secret header
    - Database indexes: idx_memos_is_read, idx_memos_workspace
    
    Frontend:
    - Inboxes.tsx: Two tabs (Notifications + Unread Memos)
    - useInboxUnreadCount hook with 60s refetch
    - useMarkMemoAsRead mutation
    - Navigation badge: notifications + unread memos count
    - i18n: inbox.* keys (en/vi)
    
    DOCUMENT MANAGEMENT (DOCX/PDF) 🆕
    ==================================
    Backend:
    - New table: cuccu_documents with full schema
    - DocumentService: upload, list, get, update, delete, process, import_to_memo
    - AI enhancement via OpenAI (tag extraction + summarization)
    - python-docx integration for text extraction
    - Status workflow: PENDING → PROCESSING → COMPLETED/FAILED
    - API routes: /documents/upload, /documents, /documents/{id}, /documents/{id}/process, /documents/{id}/import
    
    Frontend:
    - New page: DocumentsPage (route: /app/documents)
    - Components: UploadArea, DocumentList, DocumentCard, PreviewPanel
    - Hooks: useDocuments, useDocumentUpload, useDocumentProcess, useDocumentImport
    - AI enhancement panel with toggles (extract tags, generate summary)
    - Drag-and-drop file upload with validation
    - Status badges, tag display, content preview
    - Workspace isolation support
    - Full i18n support (en/vi)
    
    Files changed:
    - Backend: 15+ files (new: api/documents/, common/sqlite_client.py updates, schemas, services, config)
    - Frontend: 20+ files (new: components/Documents/, hooks/useDocuments.ts, docxService.ts, pages/DocumentsPage.tsx)
    - Tests: test_inbox.py (5 tests passing)
    - Plan docs: epic-8-inbound-webhooks-crm-inbox-done.md, docx-frontend-detailed-plan.md
    
    🤖 Generated with Claude Code
    a67917c3
Name
Last commit
Last update
..
.agent/workflows Loading commit data...
.cursor Loading commit data...
.playwright-mcp Loading commit data...
.ralph Loading commit data...
backend Loading commit data...
extension Loading commit data...
frontend Loading commit data...
plan Loading commit data...
presentation Loading commit data...
temp Loading commit data...
.dockerignore Loading commit data...
.gitignore Loading commit data...
docker-compose.yml Loading commit data...
readme.md Loading commit data...