✨ New Features
9d70acf - licensing: support independent business authorization (commit by @saltbo)
de0213a - add PostHog instance telemetry (PR #414 by @saltbo)
f922fd4 - quota: allow admins to edit and revoke granted entitlements (PR #419 by @saltbo)
232ad89 - admin: add diagonal license-edition corner ribbon to admin layout (PR #421 by @saltbo)
891e331 - admin: add About page with instance info and edition-aware cloud links (PR #422 by @saltbo)
5a5583b - licensing: regroup comparison table by capability and add social-login/downloader gates (PR #423 by @saltbo)
e700fd4 - about: add changelog drawer, latest-version check, and commit hash (commit by @saltbo)
6aa5257 - about: take latest version from GitHub Releases, keep CHANGELOG drawer (commit by @saltbo)
b9d4429 - about: dedicated changelog renderer with per-version separators (commit by @saltbo)
dc936e5 - about: add changelog refresh button that bypasses the cache (commit by @saltbo)
b880ebe - about: widen changelog drawer, refine styling, unlink commit (commit by @saltbo)
53ca110 - about: split runtime into runtime engine + deployment platform (commit by @saltbo)
🐛 Bug Fixes
e17e201 - docker: use host hostname for downloader registration (commit by @saltbo)
ecb38df - downloads: make remote usage billing resilient (commit by @saltbo)
1d7ac9b - telemetry: use built-in product reporting endpoint (PR #416 by @saltbo)
bd9f047 - telemetry: report instance after deployment (PR #417 by @saltbo)
61f643a - telemetry: clean up deploy report secret (commit by @saltbo)
5c3df3c - telemetry: use PostHog SDK for instance reports (commit by @saltbo)
7b5cd90 - telemetry: use correct PostHog project token (commit by @saltbo)
4009402 - telemetry: align instance report fields (commit by @saltbo)
178e731 - telemetry: enable GeoIP enrichment (commit by @saltbo)
f52213b - telemetry: standardize instance reports (commit by @saltbo)
1a6a774 - telemetry: disable reports during e2e (commit by @saltbo)
48b82cc - telemetry: avoid generic disable flag (commit by @saltbo)
6bcb540 - telemetry: do not fail deploy on report timeout (commit by @saltbo)
3b5f6c7 - telemetry: persist detected site origin (commit by @saltbo)
ef122ec - version: inject app version at build time (commit by @saltbo)
af43701 - version: set app version global in node entry (PR #418 by @saltbo)
b10a1f3 - quota: chunk batch quota IN queries under D1's 100-param cap (commit by @saltbo)
0063557 - docker: repair image startup and guard it in CI (commit by @saltbo)
ee8eea1 - i18n: add missing sitePublicOrigin admin settings keys (commit by @saltbo)
bae4d62 - deploy: provision archive queue and restore vite build step (PR #415 by @wshijiang)
42342be - version: resolve app version from package.json, not git describe (commit by @saltbo)
⚡ Performance Improvements
9c16adb - quota: batch admin quota listing and move monthly reset to cron (commit by @saltbo)
♻️ Refactors
17741ef - about: consolidate version row, move commit to its own line (commit by @saltbo)
👷 Build System
ac00164 - e2e: run core checks before cloud store flow (commit by @saltbo)
120faaf - add Cloudflare deploy dry-run smoke job (commit by @saltbo)
15698aa - release: guide developer to pnpm release on version mismatch (commit by @saltbo)
🔧 Chores
Docker
docker pull ghcr.io/saltbo/zpan:v2.7.3
docker pull ghcr.io/saltbo/zpan:v2.7.3-cli