Commit Graph

1 Commits

Author SHA1 Message Date
Innei 8bf9734dfb ✨ feat(task-dock): promote the upload dock into an app-level task dock (#19146)
* ✨ feat(task-dock): promote the upload dock into an app-level task dock

Background work of every kind now shares one dock instead of the
uploads-only one mounted inside the resource manager.

- `features/TaskDock` renders a `DockTask[]` collected from producer
  hooks; producers own their copy, actions and results.
- One task renders as a result card, two or more as a panel grouped by
  producer. The shape follows the task count and waits 400ms before
  shrinking so a burst of dismissals cannot morph it repeatedly.
- A finished task with nothing to hand back clears itself after 3s; one
  that left a result waits for the user, and a failure always does.
- File uploads keep their store untouched and are adapted into tasks;
  `business/client/features/DockTasks` lets a distribution add its own.
- Mounted in `SPAGlobalProvider`, so the dock outlives the page that
  started the work.

Claude-Session: https://claude.ai/code/session_014iyxmqssnrPopmKV1xKJ7k

* 🐛 fix(task-dock): batch a producer's cancel-all and label the expand toggle

- `DockTask.groupCancel` lets a producer cancel its whole set in one
  operation. Walking `cancel` per task turned a folder upload's batched
  cancel into one full-list update per file.
- The header toggle said "Collapse" while collapsed, i.e. the opposite of
  what it does.

Claude-Session: https://claude.ai/code/session_014iyxmqssnrPopmKV1xKJ7k

* 🐛 fix(task-dock): lazy-load the dock and turn the size gate into a review

The dock pulled the upload/file chunks into the first-screen static
graph; it now loads through `lazy()` like the other global hosts.

The web and ASAR size gates no longer fail their jobs. A failing gate
submits a REQUEST_CHANGES review from github-actions that links the
report comment, updates it while still failing, and dismisses it once
the gate passes again.

Claude-Session: https://claude.ai/code/session_01BBCjqExuP6Ux5PRVJbU2ru
2026-09-04 23:40:24 +08:00