Skip to content

T2: Eliminate GeneralClientBootstrap — merge into GeneralUpdateBootstrap with AppType #344

@JusterZhu

Description

@JusterZhu

Goal

Per the v2 refactoring plan, eliminate \GeneralClientBootstrap\ by merging all client-side functionality into \GeneralUpdateBootstrap. Use \AppType\ to dispatch between Client and Upgrade workflows.

Key Differences to Merge

GeneralClientBootstrap has these features not present in GeneralUpdateBootstrap:

  1. Bowl process management — \CallSmallBowlHome()\ kills old Bowl processes
  2. Custom options — \AddCustomOption()\ for pre-update custom operations
  3. Richer skip callback — \AddListenerUpdatePrecheck()\ receives UpdateInfoEventArgs
  4. Silent mode — delegates to SilentUpdateMode when enabled
  5. Dual version validation — validates both client and upgrade versions
  6. Failure check — \CheckFail()\ prevents re-updating to known-failed versions
  7. ProcessInfo IPC creation — serializes update context for the upgrade process
  8. StartApp — launches the main application after update

Tasks

  1. Add client-side features to \GeneralUpdateBootstrap, gated by AppType=Client
  2. Mark \GeneralClientBootstrap\ as [Obsolete]
  3. Update any internal references
  4. Verify full solution compiles

Part of GeneralUpdate v2 refactoring plan.

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorRefactor some existing code.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions