feat(downloads): redesign download manager - #1313
Conversation
|
Too many files changed for review. ( Bypass the limit by tagging |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2cf0c5a13e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| try { | ||
| const stats = lstat(filePath); | ||
| return stats.isFile() && !stats.isSymbolicLink(); |
There was a problem hiding this comment.
Avoid synchronous file probes on every progress refresh
When completed files are stored on a slow or unavailable network volume, this synchronous lstatSync runs once per completed row inside DOWNLOADS_GET_LIST. Active transfers broadcast progress every 500 ms from download-transfer.ts, and each event reloads the global list, so these probes can repeatedly block the Electron main thread and make the UI unresponsive; use asynchronous bounded probing or cache availability outside the progress hot path.
Useful? React with 👍 / 👎.
Summary
Redesigns the desktop Download Manager into a polished Queue + Ready to watch MVP based on the approved HTML handoff, while reusing IPTVnator’s existing theme tokens.
What changed
Validation
pnpm nx test portal-downloads-feature --runInBand— 162/162pnpm nx test services --runInBand— 277/277pnpm nx test workspace-shell-feature --runInBand— 124/124pnpm nx run electron-backend-e2e:e2e-ci--src/downloads.e2e.ts— 5/5pnpm nx run-many -t lint -p portal-downloads-feature services workspace-shell-feature electron-backend-e2e webpnpm run typecheck:cipnpm nx build electron-backendgit diff --check, i18n drift, release-note, coverage-policy, and max-lines checksElectron UI was also exercised through browser automation in light and dark themes at 1280×720, 900×700, and 720×700. This covered single-scroll behavior, narrow-layout overflow, grouped-series dialog accessibility, and long error wrapping. A separate native Computer Use pass was unavailable because the macOS session was locked; the Electron/CDP validation completed successfully.