UI-SP2 — Download-manager Task Detail (4 additive read endpoints + redesigned page)#20
Merged
Conversation
… + redesigned page) Full-stack additive: zero migration (all columns exist), honors UI-SP1 locked decisions (useLiveResource single seam, DataBoundary, el-table-v2, no new dep), implements the already-declared SourceAllocation/TaskEvent contract + adds subtask-chunks/participating-executors. Client-derived speed/ETA; canvas matrix / retry-upgrade / SSE deferred & documented. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
M1 backend (schemas/services/4 routes/openapi, per-endpoint pytest), M2 frontend foundation (useLiveResource enabled, types, composables, rate), M3 visual components (ring/chunkbar/sourcebar/swimlane/eventrow), M4 page rebuild + i18n parity + full gate + headed smoke + docs. Complete code, no placeholders; grounded in verified on-disk contract + cancel-pattern gate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Backend B1: and_(False) is invalid in SQLAlchemy 2 -> use false() (+ import)
- Frontend B1: TaskDetailSP2 mock returned plain {value} not a ref; Vue
template auto-unwrap needs a real ref -> self-contained async vi.mock
factories that await import('vue') and create real refs
- Minor: deps are caret-resolved (vue-query 5.100.x / element-plus 2.13.x);
don't assert exact minors (behavior verified equivalent)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Web UI sub-project 2 of 5 (UI-SP1 = PR #19). Full-stack but additive, zero Alembic migration (all columns already existed).
GET /api/v1/tasks/{id}/subtask-chunks,/source-allocation,/participating-executors,/events(audit-derived, cursor-paginated). Implements the 2 already-declaredopenapi.yamlpaths (getSourceAllocation/getTaskEvents) to match their schemas + adds 2 new paths/schemas. Newsrc/dlw/schemas/task_detail.py+src/dlw/services/task_detail.py; routes appended tosrc/dlw/api/tasks.py./tasks/:idrebuilt into a download-accelerator view — header (basic info + inline-SVG aggregate ring + client-derived speed/ETA + cancel/delete) andel-tabs(Files & chunks / Sources / Executors / Events) with per-paneDataBoundary. SingleuseLiveResourceseam preserved (added view-transparentenabledoption so only the active tab polls; SP5 SSE swap stays view-free). No new runtime dep (inline SVG, no ECharts).false()vsand_(False); a Vitest real-ref mock). Final opus whole-impl review = MERGE-READY (0 CRITICAL/HIGH).Verification
vue-tscstrict 0 errors, eslint--max-warnings=0,vite buildok; en/zh locale parity test.Known follow-ups (non-blocking, record-and-accept; from final review)
el-table— the spec §7 sanctioned contingency forel-table-v2virtualization._decode_cursoron a malformedcursor→ 500 not 422 (tenant gate runs first; no security/data impact).Test plan
🤖 Generated with Claude Code