feat: refactor dual-track architecture (Phase 1-5)
## Backend Changes - **Service Layer Refactoring**: - Add ProcessingOrchestrator for unified document processing - Add PDFTableRenderer for table rendering extraction - Add PDFFontManager for font management with CJK support - Add MemoryPolicyEngine (73% code reduction from MemoryGuard) - **Bug Fixes**: - Fix Direct Track table row span calculation - Fix OCR Track image path handling - Add cell_boxes coordinate validation - Filter out small decorative images - Add covering image detection ## Frontend Changes - **State Management**: - Add TaskStore for centralized task state management - Add localStorage persistence for recent tasks - Add processing state tracking - **Type Consolidation**: - Merge shared types from api.ts to apiV2.ts - Update imports in authStore, uploadStore, ResultsTable, SettingsPage - **Page Integration**: - Integrate TaskStore in ProcessingPage and TaskDetailPage - Update useTaskValidation hook with cache sync ## Testing - Direct Track: edit.pdf (3 pages, 1.281s), edit3.pdf (2 pages, 0.203s) - Cell boxes validation: 43 valid, 0 invalid - Table merging: 12 merged cells verified 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
|
||||
import PDFViewer from '@/components/PDFViewer'
|
||||
import { useToast } from '@/components/ui/toast'
|
||||
import { apiClientV2 } from '@/services/apiV2'
|
||||
import { useTaskStore } from '@/store/taskStore'
|
||||
import {
|
||||
FileText,
|
||||
Download,
|
||||
@@ -63,6 +64,9 @@ export default function TaskDetailPage() {
|
||||
const { toast } = useToast()
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
// TaskStore for caching
|
||||
const { updateTaskCache } = useTaskStore()
|
||||
|
||||
// Translation state
|
||||
const [targetLang, setTargetLang] = useState('en')
|
||||
const [isTranslating, setIsTranslating] = useState(false)
|
||||
@@ -84,6 +88,13 @@ export default function TaskDetailPage() {
|
||||
},
|
||||
})
|
||||
|
||||
// Sync task details to TaskStore cache
|
||||
useEffect(() => {
|
||||
if (taskDetail) {
|
||||
updateTaskCache(taskDetail)
|
||||
}
|
||||
}, [taskDetail, updateTaskCache])
|
||||
|
||||
// Get processing metadata for completed tasks
|
||||
const { data: processingMetadata } = useQuery({
|
||||
queryKey: ['processingMetadata', taskId],
|
||||
|
||||
Reference in New Issue
Block a user