Skip to content

Port worthwhile upstream fixes from Sep 1 - #38

Merged
marcmy merged 9 commits into
masterfrom
port/upstream-2026-09-01
Sep 1, 2026
Merged

Port worthwhile upstream fixes from Sep 1#38
marcmy merged 9 commits into
masterfrom
port/upstream-2026-09-01

Conversation

@marcmy

@marcmymarcmy commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Targeted port of the worthwhile fixes currently on IridiumIO/master, adapted to the custom fork rather than merging upstream wholesale.

Ported

  • Serialize database JSON updates/reads and validate downloaded JSON to prevent update/read races and corrupted-cache reads (ac08b088).
  • Fix Watcher receiving BackgroundModeSelection changes on the wrong messenger type (34ebba95).
  • Carry an already-paused background state into a compactor created during the pause race (c13a4bc3), while preserving the fork's watchdog/detached-native-task handling.
  • Release analysis/estimation cancellation tokens in Finally paths (92682365).
  • Unsubscribe FolderViewModel from global app-settings events when disposed (92682365).
  • Fix HomeViewModel.RemoveFolder lifetime/selection handling, including the inverted stale-selection condition (92682365).
  • Release disposed folder compressor/analyser/result/image references (92682365).
  • Release the Analyser cache backing list on dispose without removing the fork's AnalysedFileDetails.FileInfo API (92682365 / conservative subset of c39b1fe3).
  • Dispose BackgroundCompactor-owned analysers, preserve analyser lifetime for detached native tasks, restore the original process priority, and dispose the Process wrapper (020abe30), adapted to the fork's watchdog/detached-task architecture.

Deliberately not ported

  • TOML/localization architecture migration and online language-update stack: broad churn with little benefit to this fork right now.
  • Steam Monitor/Steam Library feature stack: substantial new UI/view-model/localization surface; better treated as a separate feature port.
  • Upstream external-drive Watcher rewrite: this fork already has a more robust IsAvailable / recovery implementation.
  • The rest of upstream's BackgroundCompactor rewrite: the fork's cancellation watchdog and detached-native-task ownership are more robust, so only the useful resource-ownership pieces were adapted.
  • Forced GC.Collect() calls from the upstream memory-lifecycle commit.
  • Removal of AnalysedFileDetails.FileInfo: potentially breaking API change; retained until its consumers are explicitly audited.

No project, localization, theme, or Steam-page files are touched by this PR.

@marcmy
marcmy merged commit 5bcea56 into masterSep 1, 2026
9 checks passed
@marcmy
marcmy deleted the port/upstream-2026-09-01 branch September 1, 2026 22:56
marcmy added a commit that referenced this pull request Sep 5, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@marcmy