feat(ui): TaskDetail v2 — pipeline tabs, subtasks panel, meta rail (U-slice)#419
Conversation
…-slice) Rebuild the shared TaskDetail screen to match the desktop-task-detail-v2 mockup: - libs/ui: tab bar (Overview / Subtasks·N / Logs / Files / Timeline — the last three rendered disabled until their data flows land), a two-column body with the overview/subtasks content on the left and meta cards (Workspace, Cost & tokens, …) on the right rail, and a SubtasksPanel with status check circles + badges. Tab state resets per task (key) and falls back to Overview if a live update disables the selected tab. New shared types: UiSubtask, UiSubtaskStatus, UiMetaRow, UiMetaSection, TaskDetailTabId. - Electron adapter: maps store subtasks onto the shared shape and gains a loadMetaSections progressive-enhancement loader (same swallowed- failure contract as loadSpecContent). - Pilot wiring: KanbanPilotView builds the meta rail from getTokenStats + the newly exposed getCostReport preload wrapper (over PROJECT_LOAD_COST_REPORT) via the pure task-meta-sections helper; tab/subtask-status labels injected from i18n (en+fr). - Web pilot: TaskDetailNext passes localized tab labels (en+fr). - Tests: task-meta-sections unit suite + adapter subtasks/metaSections coverage (32 passing); Storybook stories extended with a full pipeline story (subtasks + meta cards) verified in both themes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 33 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (19)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
cost_report.json crosses IPC as a bare JSON.parse cast, and historical or hand-edited files can carry a missing/string/negative total_cost (the backend cost_tracking loader is defensive for the same reason). Unguarded .toFixed(2) threw inside loadMetaSections and the adapter's swallowed-failure contract silently dropped the entire meta rail — including the Workspace card built from purely local data. Skip the cost row instead, matching formatTokenCount's clamping; pin the k/M boundary behavior and the cost-only card in tests. Confirmed by the adversarial review workflow (2 confirmed findings, same root cause; 6 refuted). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|



Summary
Closes the gap between the shared TaskDetail screen and the
desktop-task-detail-v2mockup ("точно не по макету отображается") — part 1 of the pipeline view.libs/ui (shared design system)
key={task.id}) and falls back to Overview if a live update disables the selected tab.UiSubtask,UiSubtaskStatus,UiMetaRow,UiMetaSection,TaskDetailTabId; labels injectable (EN defaults).Electron
loadMetaSectionsprogressive-enhancement loader (swallowed-failure contract identical toloadSpecContent).getCostReportpreload wrapper finally exposes the existingPROJECT_LOAD_COST_REPORThandler to the renderer.getTokenStats+getCostReportvia the puretask-meta-sectionshelper; tab/subtask-status/meta labels via i18n (en+fr).Web
Verification
libs/uitsc, Electron typecheck (CI-style hoisted node_modules), web-frontend tsc at pre-existing baseline.task-meta-sectionssuite + adapter subtasks/metaSections coverage).Deferred (part 2)
Logs / Files / Timeline tab content + live data feeds.
🤖 Generated with Claude Code