The .queue-row rule had transition: background 0.15s applied unconditionally. Every status flip (queued → getting-server → uploading → done) on every visible row therefore animated for 150 ms, and with 30+ rows changing state in close succession the compositor ran overlapping tweens that ate paint time during heavy upload bursts. Move the transition into the :hover rule. Hover-enter and hover-leave keep their smooth fade — that's where transitions actually help the user. Status changes now snap to the new background colour instantly, which is what the queue table really wants: it conveys progress, not animation. No JS change. 97/97 tests still green.
24 lines
1.5 KiB
Markdown
24 lines
1.5 KiB
Markdown
# Verbesserungs-Loop — open items
|
|
|
|
## Released
|
|
- ✅ 3.3.0 — Performance-Fixes (queue-cap, sort-throttle, history-delegation, recent-cap) + Log-Recovery
|
|
- ✅ 3.3.1 — `removeFromQueueOnDone` coalesced via microtask (kein O(N²) mehr bei done-Bursts)
|
|
- ✅ 3.3.2 — `fileuploader.log` Auto-Rotation bei 50 MB (max 3 Backups: .1 .2 .3)
|
|
- ✅ 3.3.3 — `_jobLogCollector` Cap auf 1000 tracked jobs (FIFO-eviction beim Überschreiten)
|
|
- ✅ 3.3.4 — `applyQueueSelectionClasses` + `applyRecentSelectionClasses` nutzen `getElementsByClassName` (live HTMLCollection statt querySelectorAll re-query bei jedem Klick)
|
|
- ✅ 3.3.5 — Log-Rotation extrahiert nach `lib/log-rotation.js` + 10 neue Unit-Tests (cap, shift, eviction, idempotency, maxBackups=1, invalid input, no-extension)
|
|
- ✅ 3.3.6 — CSS `.queue-row` transition nur noch auf `:hover` (kein 150ms compositor-tween bei status-flips)
|
|
|
|
## Open items (priorisiert)
|
|
|
|
### Code-Qualität
|
|
- [ ] queue-cap-prune-Logik (3.3.0 handleBatchDone) — DOM-abhängig, bräuchte jsdom; deferred bis sich anderes lohnt
|
|
- [ ] sortQueueJobs dynamic-throttle (3.3.0) — modul-state-abhängig im renderer; deferred
|
|
|
|
### UX-Politur
|
|
- [ ] Module-level Sets `_sessionTrackedJobs`/`_sessionDoneJobs`/`_completedUploadKeys` werden nie geleert — minor memory growth.
|
|
|
|
## Loop-Notes
|
|
- Cron-Job `01e33ae1` läuft alle 30min (:07/:37), Session-only.
|
|
- Pro Iteration: GENAU EIN Issue. Auto-Release bei grünen Tests. Boundary: keine Features, keine Major-Refactors.
|