You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix: AppType filtering causes Both scenario misjudgment; RecordId missing in IPC chain #465
HttpDownloadSource.ListAsync() misjudges scenario as Both — checks only Body.Count > 0 instead of verifying returned AppType matches the requested type. If the server returns the same patch for both Client and Upgrade calls, HasMainUpdate and HasUpgradeUpdate are both true even when only one type of update exists.
RecordId lost in IPC chain — ClientStrategy builds downloadVersions for IPC without copying RecordId, so UpdateStrategy receives RecordId=0 for all versions and reports with hardcoded 0.
Only first asset's RecordId captured — _mainRecordId grabs FirstOrDefault() without separating Client vs Upgrade packages.
MainOnly scenario missing success report — SafeReportUpdateAppliedAsync is not called in the MainOnly case.
Report Type always hardcoded to 1 — no way to distinguish active poll (1) from SignalR push (2).
Changes
HttpDownloadSource: filter by v.AppType == (int)AppType.Client/Upgrade
ClientStrategy: capture _mainRecordId and _upgradeRecordId per AppType, copy RecordId into downloadVersions, add report in MainOnly, use explicit recordId in UpgradeOnly/Both
UpdateStrategy: read RecordId from UpdateVersions instead of hardcoded 0, add _reportType/SetReportType()
ProcessInfo/GlobalConfigInfo/ConfigurationMapper: add ReportType for IPC
GeneralUpdateBootstrap: wire ReportType from ProcessInfo to UpdateStrategy
Activity