Backend fixes: - Fix markdown generation using correct 'markdown_content' key in tasks.py - Update admin service to return flat data structure matching frontend types - Add task_count and failed_tasks fields to user statistics - Fix top users endpoint to return complete user data Frontend fixes: - Migrate ResultsPage from V1 batch API to V2 task API with polling - Create TaskDetailPage component with markdown preview and download buttons - Refactor ExportPage to support multi-task selection using V2 download endpoints - Fix login infinite refresh loop with concurrency control flags - Create missing Checkbox UI component New features: - Add /tasks/:taskId route for task detail view - Implement multi-task batch export functionality - Add real-time task status polling (2s interval) OpenSpec: - Archive completed proposal 2025-11-17-fix-v2-api-ui-issues - Create result-export and task-management specifications 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2.6 KiB
2.6 KiB
task-management Specification
Purpose
TBD - created by archiving change fix-v2-api-ui-issues. Update Purpose after archive.
Requirements
Requirement: Task Result Generation
The OCR service SHALL generate both JSON and Markdown result files for completed tasks with actual content.
Scenario: Markdown file contains OCR results
- WHEN a task completes OCR processing successfully
- THEN the generated
.mdfile SHALL contain the extracted text in markdown format - AND the file size SHALL be greater than 0 bytes
- AND the markdown SHALL include headings, paragraphs, and formatting based on OCR layout detection
Scenario: Result files stored in task directory
- WHEN OCR processing completes for task ID
88c6c2d2-37e1-48fd-a50f-406142987bdf - THEN result files SHALL be stored in
storage/results/88c6c2d2-37e1-48fd-a50f-406142987bdf/ - AND both
<filename>_result.jsonand<filename>_result.mdSHALL exist - AND both files SHALL contain valid OCR output data
Requirement: Task Detail View
The frontend SHALL provide a dedicated page for viewing individual task details.
Scenario: Navigate to task detail page
- WHEN user clicks "View Details" button on task in Task History page
- THEN browser SHALL navigate to
/tasks/{task_id} - AND TaskDetailPage component SHALL render
Scenario: Display task information
- WHEN TaskDetailPage loads for a valid task ID
- THEN page SHALL display task metadata (filename, status, processing time, confidence)
- AND page SHALL show markdown preview of OCR results
- AND page SHALL provide download buttons for JSON, Markdown, and PDF formats
Scenario: Download from task detail page
- WHEN user clicks download button for a specific format
- THEN browser SHALL download the file using
/api/v2/tasks/{task_id}/download/{format}endpoint - AND downloaded file SHALL contain the task's OCR results in requested format
Requirement: Results Page V2 Migration
The Results page SHALL use V2 task-based APIs instead of V1 batch APIs.
Scenario: Load task results instead of batch
- WHEN Results page loads with a task ID in upload store
- THEN page SHALL call
apiClientV2.getTask(taskId)to fetch task details - AND page SHALL NOT call any V1 batch status endpoints
- AND task information SHALL display correctly
Scenario: Handle missing task gracefully
- WHEN Results page loads without a task ID
- THEN page SHALL display helpful message directing user to upload page
- AND page SHALL provide button to navigate to
/upload