v1.8.2
2026-04-20
Latest
Ship-readiness: auto-upgrade, hi-res logo, tests
Schema version 19 · No migrations required since v1.8.0
Installer auto-upgrade
- Stable
AppIdso Inno Setup detects existing installs — runSyncTideSetup-1.8.2.exeon a v1.8.0 machine and it upgrades in place. - PostgreSQL, pgAdmin, LibreOffice, admin account and licence wizard pages are skipped on upgrade — customer credentials never stomped.
- Services are stopped before file copy; integrity manifest + DB preserved.
- VM-verified end-to-end (fresh install + upgrade both green).
Hi-res logo + wizard graphics
- New transparent hi-res logo across the app, installer ICO, and public website.
- New helper
tools/build_wizard_bmps.pyregenerates Inno Setup wizard BMPs (164×314 + 55×58) from the PNG with one command.
Virtual tags — test coverage
- 40 unit tests — parser, validator (
astevalsandbox-escape attempts), cycle detector, evaluate_series across all trigger modes, transitive dependency collector. - 4 integration tests against live backend (
/measurements/query+/measurements/trendvirtual-tag expansion). Skip cleanly whenSYNCTIDE_TEST_API_URLenv vars are unset. pd.concat(sort=False)fix silences pandas 4.x deprecation warning.
Messaging module rename
- License module
sms→messaging— one name covering SMS, WhatsApp, Telegram, email. - Legacy
smsstring still accepted (_MODULE_ALIASES) — existing.licfiles work unchanged. - Messaging Center no longer shows a spurious lock icon on licences that include the module.
Licence management UI
- Sidebar every page: version caption now says
Perpetual licence,Licensed until YYYY-MM-DD,Subscription expiredorNo licence. - Banner: silent when healthy, amber ≤14 days, blue ≤30 days, red when ingestion is blocked by an expired subscription.
- Configurations → License Management: now shows License type; subscription licences additionally show subscription expiry + days remaining.
H-5 ACL lockdown — verified
- New
tools/verify_h5_acl.ps1— run as admin on a VM after install. Checks icacls state, non-admin read-denial, backend health. Exits 0 on pass. - Previously code-complete; now runtime-verified on a clean VM.
Build tooling
build_release.pycaches vendor installers (Postgres, pgAdmin, LibreOffice, Python) ininstaller/_cache/— ~760 MB saved per build.- Website hero typography fix — gradient-clipped headline stopped rendering once GSAP split words into nested spans; CSS inheritance chain restored.
Pending
- Virtual tags manual UI smoke checklist.
- Rollback-snapshot path for installer upgrade (currently relies on Inno's own restore).