Skip to content

refactor: Phase 3+4 — async backup + orchestrator injection + DiffMode wiring (#358)#360

Merged
JusterZhu merged 1 commit into
masterfrom
feat/phase3-final
May 24, 2026
Merged

refactor: Phase 3+4 — async backup + orchestrator injection + DiffMode wiring (#358)#360
JusterZhu merged 1 commit into
masterfrom
feat/phase3-final

Conversation

@JusterZhu
Copy link
Copy Markdown
Collaborator

Phase 3+4 of the v2 refactoring: completes async backup, wires download orchestrator into strategies, and enables DiffMode.

Changes:

  • StorageManager.BackupAsync / RestoreAsync / CleanBackupAsync
  • ClientUpdateStrategy: accepts IDownloadOrchestrator via constructor
  • UpgradeUpdateStrategy: accepts IDownloadOrchestrator via constructor
  • DiffMode (Serial/Parallel) controls download concurrency (1 vs 3)
  • Falls back to legacy DownloadManager when no orchestrator injected
  • FileTreeSnapshot/Comparer/Differ already existed in FileTreeEnumerator.cs

Full solution: 0 errors.

Closes #358

- StorageManager.BackupAsync / RestoreAsync / CleanBackupAsync
- ClientUpdateStrategy and UpgradeUpdateStrategy accept
  IDownloadOrchestrator via constructor; DiffMode controls
  Serial (1) vs Parallel (3) concurrency
- Falls back to legacy DownloadManager when no orchestrator injected

Closes #358
Copilot AI review requested due to automatic review settings May 24, 2026 09:32
@JusterZhu JusterZhu added the refactor Refactor some existing code. label May 24, 2026
@JusterZhu JusterZhu merged commit 8f69a63 into master May 24, 2026
1 check failed
@JusterZhu JusterZhu deleted the feat/phase3-final branch May 24, 2026 09:33
@JusterZhu JusterZhu review requested due to automatic review settings May 24, 2026 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor Refactor some existing code.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Phase 3+4: FileTree tools + async backup + DiffMode + integration cleanup

1 participant