Skip to content

refactor: merge GeneralClientBootstrap into GeneralUpdateBootstrap via AppType (#344)#345

Merged
JusterZhu merged 1 commit into
masterfrom
feat/merge-client-bootstrap
May 24, 2026
Merged

refactor: merge GeneralClientBootstrap into GeneralUpdateBootstrap via AppType (#344)#345
JusterZhu merged 1 commit into
masterfrom
feat/merge-client-bootstrap

Conversation

@JusterZhu
Copy link
Copy Markdown
Collaborator

Summary

Eliminates the \GeneralClientBootstrap\ / \GeneralUpdateBootstrap\ duality. All client-side functionality is merged into \GeneralUpdateBootstrap, dispatched by \AppType\ (ClientApp vs UpgradeApp).

Changes

GeneralUpdateBootstrap (unified)

  • LaunchAsync() dispatches by AppType:
    • \AppType.ClientApp\ → \LaunchClientAsync()\ — Bowl mgmt, custom options, dual version validation, CheckFail, ProcessInfo IPC, Silent mode, StartApp
    • \AppType.UpgradeApp\ → \LaunchUpgradeAsync()\ — receive ProcessInfo, apply updates, StartApp
    • Default (not set) → Client for backward compatibility
  • New public API: \AddListenerUpdatePrecheck(), \AddCustomOption()\
  • New private methods: \CallSmallBowlHome(), \ExecuteCustomOptions(), \CheckFail(), \CanSkipClient()\

GeneralClientBootstrap

  • Marked [Obsolete]\ with migration guidance
  • Source preserved for backward compatibility — existing code compiles with deprecation warning

Verification

  • \dotnet build src/c#/GeneralUpdate.slnx\ → 0 errors, 0 warnings
  • All 11 projects compile successfully
  • GeneralClientBootstrap still compiles (Obsolete warning only)

Migration Guide

`csharp
// Before
new GeneralClientBootstrap().SetConfig(cfg).LaunchAsync();

// After
new GeneralUpdateBootstrap()
.Option(UpdateOptions.AppType, AppType.ClientApp)
.SetConfig(cfg)
.LaunchAsync();
`

Closes #344

…a AppType

- Added AppType dispatch in LaunchAsync(): ClientApp vs UpgradeApp
- Merged client-side features: Bowl process mgmt, custom options,
  dual version validation, CheckFail, ProcessInfo IPC creation,
  Silent mode, UpdatePrecheck, StartApp
- Added AddListenerUpdatePrecheck(), AddCustomOption() to unified API
- Marked GeneralClientBootstrap as [Obsolete] with migration guidance
- Full solution builds with 0 errors, 0 warnings

Closes #344
Copilot AI review requested due to automatic review settings May 24, 2026 07:56
@JusterZhu JusterZhu merged commit a1e99d0 into master May 24, 2026
1 check failed
@JusterZhu JusterZhu deleted the feat/merge-client-bootstrap branch May 24, 2026 07:56
@JusterZhu JusterZhu review requested due to automatic review settings May 24, 2026 08:19
Sign up for free to 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.

T2: Eliminate GeneralClientBootstrap — merge into GeneralUpdateBootstrap with AppType

1 participant