TASK 48 slice 3: the self-updater is deleted - the Store updates the app
The creator's ruling (2026-09-27) is Store MSIX + Store IAP, so Microsoft delivers the updates and the in-app updater is gone rather than parked. This is a COMPLIANCE action, not cleanup: the Velopack bootstrap downloaded and executed a payload, which Store policy 10.2.2 does not permit. Three edit sites, as planned: the PackageReference in ytLive.csproj, 'using Velopack;' in App.xaml.cs, and the bootstrap block. The self-hosted DigitalOcean update-URL droplet dies with it. Guard: ytLive.Tests/StorePackagingTests.cs - the ONE test asserts the app project references no updater package (Velopack/Squirrel/NetSparkle/AutoUpdater/WinSparkle) and that no app source file uses the updater API. The check matches CODE (a using directive, a type usage), not a bare word, so a file's prose may still name what it deliberately does not do. Smoke-tested after the removal: MainWindow loaded, 0 exceptions in startup.log. Full suite 437/437, 0 warnings.
This commit is contained in:
@@ -68,7 +68,7 @@ licensing path is being deleted because Store IAP supplies the same bit from the
|
||||
handles purchase. Paid users see zero license UI.
|
||||
7. ⛔ **Licensing model / renewal-lapse path** — already dead before the Store ruling (a perpetual
|
||||
key never expires). Now superseded again: **Store IAP has no keys at all.**
|
||||
8. 🔶 **Velopack auto-updates** — NuGet packages + bootstrap in `App.xaml.cs`. **TEARDOWN is a
|
||||
compliance action, not cleanup:** the updater downloads *and executes*, and Store policy 10.2.2
|
||||
does not permit it. Tracked as [`TASKS/task-48-distribution-msix.md`](task-48-distribution-msix.md)
|
||||
item 3; the Store updates the app instead.
|
||||
8. ✅ **Velopack auto-updates** — NuGet package + bootstrap in `App.xaml.cs`. **DELETED
|
||||
2026-10-22 (TASK 48 slice 3)** — a compliance action, not cleanup: the updater downloaded
|
||||
*and executed*, and Store policy 10.2.2 does not permit it. The Store updates the app
|
||||
instead. Guard: `ytLive.Tests/StorePackagingTests.cs`.
|
||||
@@ -158,15 +158,21 @@ There is currently **no `.manifest` file in the repo at all**, so this is purely
|
||||
|
||||
**Do NOT use `appContainer`** — see the invariant in item 6.
|
||||
|
||||
## 3. ☐ Remove Velopack — 3 edit sites
|
||||
## 3. ✅ Remove Velopack — 3 edit sites (DONE 2026-10-22)
|
||||
|
||||
The Store handles updates, so this is simply **deleted**. Trivially removable; the code was
|
||||
written defensively for exactly this.
|
||||
|
||||
- `ytLive.csproj:92` — `<PackageReference Include="Velopack" Version="1.2.0" />`
|
||||
- `App.xaml.cs:3` — `using Velopack;`
|
||||
- `App.xaml.cs:38-46` — the sole call site, already try/caught and commented
|
||||
"(non-fatal) … when no URL is set, the check is a no-op"
|
||||
- `ytLive.csproj:92` — `<PackageReference Include="Velopack" Version="1.2.0" />` — **REMOVED**
|
||||
- `App.xaml.cs:3` — `using Velopack;` — **REMOVED**
|
||||
- `App.xaml.cs:38-46` — the sole call site (already try/caught and commented
|
||||
"(non-fatal) … when no URL is set, the check is a no-op") — **REMOVED**
|
||||
|
||||
**Guard:** `ytLive.Tests/StorePackagingTests.cs` — the ONE test asserts the app project
|
||||
references no updater package (Velopack/Squirrel/NetSparkle/AutoUpdater/WinSparkle) and that no
|
||||
app source file uses the updater API (matched as CODE — a `using` directive, a type usage — not
|
||||
as a bare word, so a file's prose may still name what it deliberately does not do). The app was
|
||||
smoke-tested after the removal: `MainWindow loaded`, no exceptions.
|
||||
|
||||
**Retires:** the pending "Velopack update URL" item (`TASKS.md` open items,
|
||||
`task-10-monetization.md:43`) and the self-hosted DigitalOcean droplet.
|
||||
|
||||
Reference in New Issue
Block a user