Skip to content

desktop: What's New popup never appears after updates (changelog.json has no highlights) #60134

Open

Description

@MercuryOoO

Summary

The Desktop "Release notes" setting is enabled, but no What's New dialog appears after updating 2.2.0 → 2.2.1. showWhatsNew fetches https://opencode.ai/changelog.json and only opens the dialog when it finds highlights whose source contains "desktop". The feed currently returns "highlights": [] for every release, so the code silently marks the new version as seen.

Environment

  • opencode version: 2.2.1 (desktop, packaged; bundled CLI 2.2.1)
  • OS: Windows 11 Pro 10.0.26300 x64
  • Terminal: Desktop app
  • Shell: n/a
  • Install/channel: packaged desktop, channel latest
  • Active plugins: env-guard.ts, headroom-compress.ts, memory-inject.ts, modelscope-imagegen.ts (none related to release notes)

Reproduction

  1. Enable Settings → General → Updates → Release notes (default is on).
  2. Update from 2.2.0 to 2.2.1 with the in-app updater and restart.
  3. No What's New dialog appears.
  4. Inspect %APPDATA%\ai.opencode.desktop\drafts.sqlite: plugin.updater.seen is {"version":"2.2.1"}, written about 3 seconds after startup.

Expected Behavior

A What's New dialog with the desktop highlights for 2.2.1 (the release notes contain four Highlights, including /goal, image generation, background shell output, and the new model picker).

Actual Behavior

No dialog. The version is recorded as seen, so those highlights are skipped permanently.

Additional Context

  • Code path: packages/gui-plugins/src/updater/whats-new.tsx (showWhatsNew), stores in packages/gui-plugins/src/updater/index.ts.
  • showWhatsNew does if (highlights.length === 0) return input.markSeen().
  • https://opencode.ai/changelog.json (fetched today) returns 20 releases, all with "highlights": [].
    • v2.2.1: {"tag":"v2.2.1","name":"v2.2.1","date":"2026-10-29T05:16:55Z","highlights":[],"sections":[]}
    • v1.18.26: highlights: [], but sections contains Core and Desktop entries.
  • The rendered changelog page (https://opencode.ai/changelog) still shows v2.2.0 highlights, so the source data exists but is not carried into the JSON feed.
  • Likely causes: the JSON generator does not parse the v2 release-note format (### Highlights plus product sections), and the app only reads highlights while ignoring sections.
  • Suggested fix: emit highlights for v2 releases, or fall back to Desktop sections; and avoid markSeen() when the feed is present but has no parseable highlights (or log the parse failure), so a bad deploy does not silently consume the update.

Impact

Any stable Desktop user with the default setting never sees release highlights, and each new version is recorded as seen.

Activity

  1. opencodejr commented on Oct 29, 2026

    @opencodejr
    Contributor

    Thanks for the detailed report. I can confirm this.

    I couldn't run the Windows desktop app here, so I tested the code behind it directly:

    • Feed generator: I ran the changelog.json generator on the real v2.2.1 GitHub release body, which has a ### Highlights list with four items. The result is "highlights": [] and "sections": [], the same as the live https://opencode.ai/changelog.json. The generator only recognises the older <highlight source="…"> HTML blocks and ## headings, and v2 release notes use neither.
    • Desktop updater: I gave the live feed to the updater's showWhatsNew with previous = 2.2.0 and current = 2.2.1. It marked 2.2.1 as seen and never opened the dialog, which matches what you saw in drafts.sqlite.

    The code is unchanged on the latest dev (510aa79), so this still happens there. The test below reproduces both steps.

    Related: #59152 and #57940 (What's new page work), and #54902 (rendering /changelog from CHANGELOG.md).

  2. added a commit that references this issue on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions