Pulse/frontend-modern
rcourtman 93bccaff18
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Canonical Governance / governance (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 1/4) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 2/4) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 3/4) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 4/4) (push) Waiting to run
Core E2E Tests / E2E verdict (push) Blocked by required conditions
Update the Pro binary in-app from the license server download broker
The in-app updater and the unattended timer both target the public
rcourtman/Pulse community assets, so a Pro install that used them was
silently downgraded to community. Guard 2 (983a89326) blocked in-app
apply on the Pro edition, which stopped the downgrade but left Pro
installs with no update path except manual portal downloads. That
friction is a plausible driver of the runtime split: as of 2026-07-08
only 10 of 66 active paid licenses have any Pro-runtime install.

Root fix: the compiled Pro binary now checks and applies updates
through the license server download broker (GET /v1/downloads/pulse-pro
with the installation token and instance fingerprint). The check
compares against the broker's pinned private release instead of GitHub,
respecting the stable/rc channel guard. Apply re-resolves fresh signed
R2 URLs at apply time, verifies the archive against the same pinned
pulse-installer SSHSIG key plus the broker manifest sha256, and refuses
GitHub-shaped download URLs outright. An unactivated Pro binary still
refuses with the portal fallback. The community edition path is
unchanged.

The update banner restores in-app apply for auto-updatable Pro
deployments and keeps the portal instructions for deployments the
updater cannot drive (Docker). scripts/pulse-auto-update.sh now skips
when the installed binary reports Pulse Pro so the unattended timer can
never reinstall community over Pro.

Note: internal/updates/pro_update.go and manager_pro_update_test.go for
this change landed one commit early inside 313552deb via a parallel
session committing a shared staged index; this commit completes the
wiring they belong to.
2026-07-08 23:39:37 +01:00
..
prototypes Refine prototype row density cues 2026-05-15 16:19:12 +01:00
public Add MSP report scheduling and alert rollup 2026-07-07 20:37:18 +01:00
scripts feat(alerts): group related alerts by resource hierarchy on overview 2026-06-27 14:51:45 +01:00
src Update the Pro binary in-app from the license server download broker 2026-07-08 23:39:37 +01:00
.bundlesize.json Re-baseline ReportingPanel bundle budget for shipped MSP report scheduling 2026-07-08 07:52:32 +01:00
.gitignore chore(frontend-modern): patch dev-dependency advisories 2026-07-08 08:26:26 +01:00
.jscpd.json
.prettierignore
.prettierrc
DESIGN_SYSTEM.md
eslint.config.js
hosts-tab.txt
index.html
package-lock.json chore(frontend-modern): patch dev-dependency advisories 2026-07-08 08:26:26 +01:00
package.json chore(frontend-modern): patch dev-dependency advisories 2026-07-08 08:26:26 +01:00
postcss.config.js
tailwind.config.js Simplify settings shell and nav guide 2026-04-23 15:49:00 +01:00
ThresholdsTableTop.txt
tsconfig.json
tsconfig.node.json
update_skeletons.cjs
update_sparkline.cjs
update_sparkline.js
update_sparkline_size.cjs
vite.config.ts Fix hot-dev Vite dependency optimization 2026-06-15 09:08:54 +01:00