Skip to content

fix(desktop): poll for updates every 4 hours, not 4 minutes - #28481

Open
tao12345666333 wants to merge 1 commit into
pingdotgg:mainfrom
tao12345666333:fix/desktop-update-poll-4-hours
Open

tao12345666333 wants to merge 1 commit into
pingdotgg:mainfrom
tao12345666333:fix/desktop-update-poll-4-hours

Conversation

@tao12345666333

Copy link
Copy Markdown

Problem

#2546 (port desktop app to Effect) translated const AUTO_UPDATE_POLL_INTERVAL_MS = 4 * 60 * 60 * 1000; from apps/desktop/src/main.ts into const AUTO_UPDATE_POLL_INTERVAL = "4 minutes"; at apps/desktop/src/updates/DesktopUpdates.ts:57, dropping the hours-to-minutes factor. Packaged builds now check for updates 360 times a day instead of 6.

Each check emits a desktop.updates.checkForUpdates span (reason: poll) and a desktop.updates.handleCheckingForUpdate span, writes updater log lines, publishes two desktopUpdateStatus telemetry messages (checking → no-update, since state updates are not deduplicated) and two UPDATE_STATE_CHANNEL broadcasts, and requests the GitHub Releases update feed. Real traces show the resulting 4-minute cadence; the timing table in #14259 quotes it directly. Reported in #28480.

Change

One line: AUTO_UPDATE_POLL_INTERVAL goes from "4 minutes" back to "4 hours", matching the pre-Effect value. The 15-second startup check and the poller loop itself are unchanged.

Scope and approval

A very small, focused fix for an obvious regression, so it qualifies for the small-fix exception without a prior discussion. #28480 establishes the defect with the git history and trace evidence. No other behavior changes.

Verification

  • History: git show aa219be713^:apps/desktop/src/main.ts shows const AUTO_UPDATE_POLL_INTERVAL_MS = 4 * 60 * 60 * 1000;. git log -L 56,58:apps/desktop/src/updates/DesktopUpdates.ts shows the line only changed in aa219be and was untouched since, so "4 minutes" is a translation slip rather than an intended default.
  • Duration parsing: "4 hours" matches Effect's duration regexp (hours?) in .repos/effect-smol/packages/effect/src/Duration.ts, the same string form as the neighboring "15 seconds" at line 56.
  • Tests: DesktopUpdates.test.ts and remoteUpdateFlow.test.ts call updates.check("poll") directly and assert no cadence, so this constant cannot change their outcomes.
  • Not checked: the test suite and vp run check:changed do not run in my checkout (no node_modules; the pinned pnpm 12.14.0 binary fails to launch), and I did not observe the resulting 4-hour cadence in a packaged build.
  • Expected effect: 6 polls per day instead of 360, with the per-check spans, logs, telemetry messages, IPC broadcasts, and update-feed requests dropping about 60x.

Fixes #28480.

Written with Factory Droid (deepseek-v4-flash).

pingdotgg#2546 translated AUTO_UPDATE_POLL_INTERVAL_MS (4 * 60 * 60 * 1000) to the
string "4 minutes", so packaged builds check for updates 360 times a day
instead of 6 and emit update-check spans, logs, and state events at that
rate. Restore the 4-hour interval.
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Nov 1, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — Desktop update checks will run every four hours instead of every four minutes, while the startup check remains unchanged. Human confirmation is needed for the new default cadence and its slower discovery of available releases.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 8b74a69 and f390218.

Files selected for processing: 1
  • apps/desktop/src/updates/DesktopUpdates.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

The desktop automatic update poll interval changes from four minutes to four hours.

Changes: Desktop update polling

Layer / File(s) Summary
Set the polling interval
apps/desktop/src/updates/DesktopUpdates.ts
AUTO_UPDATE_POLL_INTERVAL changes from four minutes to four hours.

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Bug fix · Severity of issue fixed: Low

Suggested labels: size:S

Suggested reviewers: t3dotgg

Merge Risk: Minimal · up to f3902

The update polling cadence matches the intended six checks per day.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: restoring desktop update polling from 4 minutes to 4 hours.
Description check Passed The description covers the problem, change, scope and approval rationale, verification details, test limitations, and expected effect. It is complete and directly related to the one-line fix.
Linked Issues check Passed Issue #28480 (directly linked) requires packaged desktop builds to poll for updates every 4 hours, not every 4 minutes. The whole-PR diff (merge base 80a2351 to head f390218) changes one line in…
Out of Scope Changes check Passed The whole-PR diff against the merge base contains a single changed line: the AUTO_UPDATE_POLL_INTERVAL constant in apps/desktop/src/updates/DesktopUpdates.ts. This change directly implements the lin…
Full details: Linked Issues check

Explanation

Issue #28480 (directly linked) requires packaged desktop builds to poll for updates every 4 hours, not every 4 minutes. The whole-PR diff (merge base 80a2351 to head f390218) changes one line in apps/desktop/src/updates/DesktopUpdates.ts:57: const AUTO_UPDATE_POLL_INTERVAL = "4 minutes"; becomes const AUTO_UPDATE_POLL_INTERVAL = "4 hours";. The reviewed head file confirms this value. The issue cites the pre-Effect value 4 * 60 * 60 * 1000 (main.ts at aa219be^), which is 4 hours, so the change restores the intended cadence. The issue requests no automated tests, and the optional jitter is not required. The string form matches the existing "15 seconds" constant at line 56. The PR description states that Effect Duration accepts hours?; I did not independently verify that parser behavior in this review, but the existing string-duration form in the same file supports it. Non-coding verification steps (packaged-build observation, test-suite run) are outside the coding requirements.

Full details: Out of Scope Changes check

Explanation

The whole-PR diff against the merge base contains a single changed line: the AUTO_UPDATE_POLL_INTERVAL constant in apps/desktop/src/updates/DesktopUpdates.ts. This change directly implements the linked issue #28480 requirement. No other files, behaviors, or declarations change. The PR description says the 15-second startup check and poller loop are unchanged, and the diff confirms this.

Finishing Touches
Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@juliusmarminge juliusmarminge added bugfix Fix PR opened by an issue lead; enters the PR loop pr:gate-failed A land gate failed labels Nov 1, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Fix PR opened by an issue lead; enters the PR loop pr:gate-failed A land gate failed size:XS 0-9 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: desktop polls for updates every 4 minutes instead of 4 hours

2 participants