● The whole pipeline is now written. Here's what that gets you: The one-time migration (your next hub-open does this automatically): migrate.ps1 becomes the box-side dashboard-app.ps1. Since your stable launcher cats that file every time you open the hub, opening it once will: download + checksum-verify the new app → uninstall the old crap (the .NET ReactorSync service, ReactorSyncTray, the Pull/Push/Run scheduled tasks, the WPF hub, the old launcher dir) → install the WinUI app with fresh shortcuts + Add/Remove Programs entry → launch it. It keeps your ssh key + config, and it downloads-then-verifies before removing anything, so a failed download leaves your current hub intact. Self-update forever after: UpdateService.cs — on launch the app checks latest.json on the box; if there's a newer version it shows a "Restart & update" bar, pulls the zip over scp, verifies the SHA-256, swaps itself, and relaunches. No reinstall, ever again. Every future change (including the real sync data, which is next) ships by just bumping <Version> and pushing. What I validated: publish-to-box.sh passes bash -n; the migrator matches your existing working PS scripts. I cannot compile the C#/XAML here (Linux) — CI is the compiler, and the first run may need a version-pin nudge, which I'll fix. Three live steps remain, and they need your go because they touch your real repo + laptop: 1. Push to main → triggers CI to build/zip the app. (Safe, reversible — just a build.) 2. publish-to-box.sh 11 on the box → stages the artifact into your control plane. 3. Flip dashboard-app.ps1 → this is the switch that makes your next hub-open migrate. Rollback is one command on my side (re-seed the old WPF hub), so it's not a trap. Say "go" and I'll push, watch CI, fix anything red, then stage + flip — and tell you to open your hub. Or, if you'd rather eyeball the actual .exe before I flip your live hub, say so — I'll push + build, hand you the CI artifact to run once, and only flip after you confirm it opens. Which way? ✻ Baked for 11m 4s
❯
⏵⏵ bypass permissions on (shift+tab to cycle) · ← for agents