chore(api): require desktop 1.29.0

Merged
SA
2mo ago
+1-1

What & why

Raises MINIMUM_DESKTOP_VERSION from 1.5.0 to 1.29.0.

Desktops older than 1.29 still poll v2Host.list, the old name for the hosts list, and that polling is ~14% of all api requests (from a sample of production request logs). 1.29 (#7442) moved host presence to realtime nudges and stopped polling. Gated clients render the Update Required screen instead of the app, so their polling stops.

Who's affected: about 36% of weekly-active desktop users (3,568 of 9,910 with a known desktop_version, PostHog, last 7 days) are below 1.29. They get the existing Update Required screen, which installs the update in one click and says terminal sessions won't be interrupted. The client compares with semver.lt, so exactly the pre-1.29 builds are gated.

Old mobile builds also call v2Host.list; /api/mobile/version is a separate gate and isn't touched here.

How I tested it

One constant; the gate itself (useDesktopNotices synthesizing a blocking notice from minimumVersion, rendered by UpdateRequiredPage) is unchanged. Not exercised against a pre-1.29 build.

Checklist

  • PR title follows conventional commits (type(scope): subject)
  • bun run lint and bun run typecheck pass (CI fails on lint warnings too)
  • "Allow edits from maintainers" is checked on fork PRs

Summary by cubic

Raises the desktop minimum version from 1.5.0 to 1.29.0 so pre-1.29 clients stop polling v2Host.list, the legacy hosts endpoint that accounts for ~14% of API requests.

  • Desktops below 1.29 (about 36% of weekly-active users) will see the existing one-click Update Required screen, which halts their polling.
  • Mobile versioning is gated separately and is unaffected.

Summary by CodeRabbit

  • Updates
    • Desktop versions older than 1.29.0 are now required to update before continuing.