Skip to content

Fix: [Activity View] Clear Finished no longer removes failed items that still have retry/dismiss actions - #1699

Merged
mohnjiles merged 4 commits into
LykosAI:mainfrom
NeuralFault:fix/clear-finished-includes-failed
Aug 22, 2026
Merged

Fix: [Activity View] Clear Finished no longer removes failed items that still have retry/dismiss actions#1699
mohnjiles merged 4 commits into
LykosAI:mainfrom
NeuralFault:fix/clear-finished-includes-failed

Conversation

@NeuralFault

@NeuralFaultNeuralFault commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Clicking "Clear Finished" in the Progress Manager would remove all items in a terminal state, including failed downloads. Failed downloads have a visible retry button (and a dismiss button), but the bulk clear wiped them out before the user could act on them.

The root cause was that ClearDownloads() filtered on IsCompleted, which — correctly for UI purposes — treats Failed as a terminal state alongside Success and Cancelled. But that same property was also used as the sole gate for the bulk-clear operation, conflating "this item is done rendering progress UI" with "this item is safe to discard."

Fix

Introduced a new IsClearable virtual property, parallel to IsCompleted, that separates the two concerns:

PropertyPurposeFailed included?
IsCompletedHide progress spinners, pause/cancel controls✅ Yes
IsClearableBulk "Clear Finished" removal❌ No
  • ProgressItemViewModelBase.IsClearableProgress.Value >= 100 && !Failed
  • PausableProgressItemViewModelBase.IsClearableState is Success or Cancelled (failed downloads with retry/dismiss are preserved)
  • ClearDownloads() → now filters on IsClearable instead of IsCompleted

Cancelled downloads are still cleared (they have no retry path). IsCompleted behavior is completely unchanged.

Passed functional test via forced 'Failed' download which remained after bulk clear invoked.

NeuralFaultand others added 4 commits July 30, 2026 00:40
…ivity view
- Add `IsClearable` virtual property to `ProgressItemViewModelBase` that
excludes `Failed` items (only `Progress.Value >= 100 && !Failed`)
- Override `IsClearable` in `PausableProgressItemViewModelBase` to match
only `Success` and `Cancelled` states, keeping `Failed` items visible
- Update `ClearDownloads()` to filter on `IsClearable` instead of
`IsCompleted` so failed downloads with retry/dismiss buttons are preserved
- `IsCompleted` retains its existing behavior (all terminal states) for
UI gating of progress spinners, pause/cancel controls, etc.
@mohnjiles
mohnjiles merged commit 7b2ce0b into LykosAI:mainAug 22, 2026
3 checks passed
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Aug 22, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@NeuralFault@mohnjiles@ionite34