• 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
..
ActivityCalendar Loading commit data...
ConfirmDialog Loading commit data...
Documents Loading commit data...
Inbox Loading commit data...
MasonryView Loading commit data...
MemoActionMenu Loading commit data...
MemoContent Loading commit data...
MemoDetailSidebar Loading commit data...
MemoEditor Loading commit data...
MemoExplorer Loading commit data...
MemoReactionListView Loading commit data...
MemoRelationForceGraph Loading commit data...
MemoVersionHistory Loading commit data...
MemoView Loading commit data...
PagedMemoList Loading commit data...
PinnedSection Loading commit data...
Settings Loading commit data...
StatisticsView Loading commit data...
UserMemoMap Loading commit data...
kit Loading commit data...
map Loading commit data...
ui Loading commit data...
AttachmentIcon.tsx Loading commit data...
AuthFooter.tsx Loading commit data...
ChangeMemberPasswordDialog.tsx Loading commit data...
ChatbotPanel.tsx Loading commit data...
ChatbotWidget.tsx Loading commit data...
ChrysanthemumFlower.tsx Loading commit data...
CommandPalette.tsx Loading commit data...
CreateAccessTokenDialog.tsx Loading commit data...
CreateIdentityProviderDialog.tsx Loading commit data...
CreateShortcutDialog.tsx Loading commit data...
CreateUserDialog.tsx Loading commit data...
CreateWebhookDialog.tsx Loading commit data...
DateTimeInput.tsx Loading commit data...
DeadlineBadge.tsx Loading commit data...
Empty.tsx Loading commit data...
ErrorBoundary.tsx Loading commit data...
FestiveCorner.tsx Loading commit data...
LearnMore.tsx Loading commit data...
LocaleSelect.tsx Loading commit data...
MemoAttachment.tsx Loading commit data...
MemoDisplaySettingMenu.tsx Loading commit data...
MemoFilters.tsx Loading commit data...
MemoHoverCard.tsx Loading commit data...
MemoResource.tsx Loading commit data...
MemoSkeleton.tsx Loading commit data...
MemosLogo.tsx Loading commit data...
MobileHeader.tsx Loading commit data...
Navigation.tsx Loading commit data...
NavigationDrawer.tsx Loading commit data...
PasswordSignInForm.tsx Loading commit data...
PreviewImageDialog.tsx Loading commit data...
ProtectedRoute.tsx Loading commit data...
RequiredBadge.tsx Loading commit data...
SearchBar.tsx Loading commit data...
Skeleton.tsx Loading commit data...
Spinner.tsx Loading commit data...
TagTree.tsx Loading commit data...
ThemeSelect.tsx Loading commit data...
UpdateAccountDialog.tsx Loading commit data...
UpdateCustomizedProfileDialog.tsx Loading commit data...
UserAvatar.tsx Loading commit data...
UserMenu.tsx Loading commit data...
VisibilityIcon.tsx Loading commit data...