Skip to content

What's New: show the best of skipped releases, open only when it's worth it (+ v1.16 notes) - #2019

Merged
nadaverell merged 5 commits into
mainfrom
whats-new-v1.16
Oct 7, 2026
Merged

nadaverell merged 5 commits into
mainfrom
whats-new-v1.16

Conversation

@nadaverell

@nadaverell nadaverell commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

What's New opened after every minor release, showing only that one release's notes. This had two problems:

  • Thin releases interrupted users. A release made of fixes opened the same dialog as a feature release, which teaches people to close it without reading.
  • Skipped releases were never shown. Someone upgrading straight from v1.14 to v1.16 only saw v1.16's notes. v1.15's headlines never reached them.

The dialog now shows the best of the releases a user hasn't seen. It opens by itself only when that adds up to something worth an interruption; otherwise the nav rail dot carries it. Also adds the v1.16 notes.

What changed

Ranking

  • Importance per highlight. Each highlight has an importance from 1 to 10, comparable across releases. The scale is documented next to the field: 9–10 defines the release, 7–8 is a solid feature, 4–6 a useful improvement, 1–3 polish.
  • Which releases count. The releases after the user's last seen version, up to the running one, newest first. At most three are shown, weighted 1 / 0.75 / 0.5.
  • Cards and lines. Score = importance × weight.
    • The top 5 become cards.
    • The rest become one-liners ahead of the improvement lines, 8 lines at most.
    • Ties go to the newer release, then authored order.
  • Opening by itself. Only on Home (unchanged), and only when the shown cards' scores add up to 25 or more. Below that, the release stays unread behind the nav rail dot.
  • Calibration. Upgrading to v1.15 scores 38 and opens. v1.15 → v1.16 scores 15 and only lights the dot. v1.14 → v1.16 scores 29.25 and opens, led by v1.15's AI investigations. The weights and threshold are constants in releaseNotes.ts.

Seen state

  • The dialog records the version it was opened for when closed. If the server is upgraded while the dialog is open, a release whose cards never appeared isn't marked as seen.
  • A quiet upgrade without a seen record is never recorded as read. Fresh installs still start their record without opening.
  • Previews never record anything.
  • Opening it from the nav rail, Home or the command palette shows the unread releases, composed. Once everything is read, it shows the newest release alone.

Display

  • One release: unchanged, "What's new in Radar v1.16".
  • Several releases:
    • The heading reads "What's new since Radar v1.14", or "Recent highlights" when older releases were left out.
    • Cards and lines from older releases carry a small version tag.
    • The list heading becomes "Also new".
  • Card copy: every description fits a grid card (150 characters or fewer). A release's top highlight may also set leadDescription, fuller copy used only while it leads the dialog. Only that highlight can ever lead, since every other one in its release scores at or below it; a catalog test enforces both rules.
  • Colors: icon tile colors are assigned by position, so a mixed dialog never repeats one. The per-highlight tone field is removed.
  • Changelog: "Full changelog" (a neutral button next to "Got it") opens radarhq.io/changelog. The per-release GitHub releaseUrl is removed.

Previewing

?whats-new=v1.16.0&whats-new-from=v1.14.0 previews the dialog as composed for that upgrade. The release check's hint mentions it.

Content

  • v1.15 highlights get importance scores: AI investigations 9, Argo CD diffs 8, the rest 7. One description is reworded so it stands on its own.
  • v1.16 is a deliberately quiet entry, scoring 6 + 5 + 4 = 15:
    • Lead card: One steady issue per crash loop (6).
    • Log viewer enhancements (5).
    • Separate settings for each cluster (4).
    • The Timeline changes and the other fixes are one-line items.

Both upgrade paths to v1.16

From v1.15: no popup. The cards add up to 15, below the threshold, so only the nav rail dot lights up. Clicking it opens v1.16 on its own.

Nav rail: What's new with an unread dot

v1.15 to v1.16: What's new in Radar v1.16, opened from the nav rail

From v1.14: opens by itself on Home. v1.15 and v1.16 are composed into one dialog (29.25). v1.15's AI investigations leads with its full copy, v1.16's Issues card sits in the grid with its short copy, and older items carry a version tag.

v1.14 to v1.16: What's new since Radar v1.14, opened automatically

Testing

  • make tsc clean. vitest run src: 1,884 tests pass, including 50 What's New tests.
    • Unit: which releases count, decay and tie order, the three-release cap, overflow and the line cap, score and threshold.
    • Dialog: a quiet release stays behind the dot and is recorded once opened; a quiet upgrade with no record is not marked read; the composed heading, version tags and distinct colors; previews record nothing; the destination of a previewed upgrade; a seen record that isn't a version is never named; the recorded version stays fixed when the server is upgraded mid-dialog; the changelog link.
  • scripts/check-whats-new.sh v1.16.0 finds the notes.
  • Live, on a VERSION=v1.16.0 build with an isolated Radar home:
    • A seen record of v1.14.0 auto-opens "What's new since Radar v1.14" on Home.
    • A seen record of v1.15.0 doesn't open, lights the nav rail dot and leaves the record unchanged; clicking the dot opens v1.16.
    • Visual check of single, quiet and mixed in light and dark, and of the mixed dialog at phone width.

Notes

  • Release step: radarhq.io/changelog is updated by hand in the marketing repo. The button now points there, so the v1.16 changelog entry should be live when v1.16 ships.
  • The usage-data question for upgraders still lives in this dialog, so on a quiet release it waits until the user opens the dialog or until the next release that opens it. docs/usage-stats.md says so.

Note

Cursor Bugbot is generating a summary for commit 139d927. Configure here.

â€Ķrth it

Highlights carry a 1-10 importance. A user sees the releases they haven't
seen (up to three, weighted 1 / 0.75 / 0.5), ranked into five cards plus
one-liners, and the dialog opens by itself only when the shown cards score
25 or more; otherwise the nav rail dot carries them. Adds v1.16 notes,
links to the public changelog, and a whats-new-from preview param.
@nadaverell
nadaverell requested a review from hisco as a code owner October 7, 2026 11:25
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Compose skipped What's New releases and limit automatic opening

âœĻ Enhancement 🐞 Bug fix 🧊 Tests 🕐 40+ Minutes

Grey Divider

AI Description

â€Ē Rank unseen releases together so skipped highlights reach users.
â€Ē Auto-open substantial updates on Home; leave quieter releases unread for manual viewing.
â€Ē Add v1.16 notes, upgrade previews, safer seen-state recording, and a public changelog link.
Diagram

graph TD
  Seen["Seen state"] --> Unread["Unread releases"] --> Compose["Ranked notes"] --> Gate{"Home and score?"} -->|Yes| Dialog["What's New dialog"]
  Catalog["Release catalog"] --> Unread
  Gate -->|No| Dot["Nav rail dot"] -->|Manual open| Dialog
  Dialog -->|Acknowledge version| Seen
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Editorial auto-open flags
  • ➕ Simpler opening rule and easier per-release editorial control.
  • ➖ Does not naturally account for several individually quiet releases becoming worth showing together.
  • ➖ Still needs a separate way to choose the best highlights across skipped releases.

Recommendation: Keep the PR's shared importance scale and composed-card threshold: one ranking supports both skipped-release selection and interruption decisions. Calibrate the scores and threshold as subsequent releases are authored.

Files changed (6) +510 / -150

Enhancement (2) +286 / -109
WhatsNew.tsxShow composed notes without interrupting for quiet releases +145/-85

Show composed notes without interrupting for quiet releases

â€Ē Uses ranked unread notes to decide automatic opening while retaining the nav rail unread state for quiet releases. The dialog supports composed previews and version tags, links to the public changelog, and records its fixed destination version only when a non-preview view closes.

web/src/components/whats-new/WhatsNew.tsx

releaseNotes.tsAdd v1.16 notes and cross-release ranking +141/-24

Add v1.16 notes and cross-release ranking

â€Ē Adds v1.16 highlights and improvements and assigns comparable importance scores to v1.15 highlights. New selection and composition functions weight up to three unread releases into five cards and eight lines; the catalog drops per-highlight tones and per-release URLs.

web/src/components/whats-new/releaseNotes.ts

Tests (2) +220 / -38
WhatsNew.test.tsTest unread-release selection and composition rules +104/-28

Test unread-release selection and composition rules

â€Ē Adds coverage for version ordering, skipped releases, recency weighting, tie-breaking, release and display caps, and the automatic-opening threshold. Catalog checks also validate importance values and unique improvement lines.

web/src/components/whats-new/WhatsNew.test.ts

WhatsNewDialog.test.tsxCover dialog opening, preview, and acknowledgment behavior +116/-10

Cover dialog opening, preview, and acknowledgment behavior

â€Ē Tests quiet-release unread state, mixed-release display, preview isolation, changelog navigation, and acknowledgment when the running version changes mid-dialog. Test catalogs are restored to the shipped entries after each case.

web/src/components/whats-new/WhatsNewDialog.test.tsx

Documentation (2) +4 / -3
usage-stats.mdClarify when the upgrade usage-data question appears +2/-1

Clarify when the upgrade usage-data question appears

â€Ē Explains that the What's New dialog opens automatically only for sufficiently substantial releases; otherwise users reach the question through the nav rail.

docs/usage-stats.md

check-whats-new.shUpdate release-note authoring and preview guidance +2/-2

Update release-note authoring and preview guidance

â€Ē The missing-entry guidance now calls for highlight importance scores instead of a release URL and documents the skipped-upgrade preview parameter.

scripts/check-whats-new.sh

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📎 Requirement gaps (0) ðŸŽĻ UX issues (0) 🔗 Cross-repo conflicts (1) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Four highlight tiles use palette colors 📘 Rule violation ⚙ Maintainability
Description
TONE_TILES assigns bg-violet-500/10, bg-teal-500/10, bg-emerald-500/10, and
bg-indigo-500/10 instead of the allowed theme background tokens. HighlightCard applies these
classes to the non-leading cards, and the nearby comment explains their positional assignment but
does not document a design-spec exception for non-themable backgrounds.
Code

web/src/components/whats-new/WhatsNew.tsx[R422-425]

+  'bg-violet-500/10 text-violet-600 dark:text-violet-400',
+  'bg-teal-500/10 text-teal-600 dark:text-teal-400',
+  'bg-emerald-500/10 text-emerald-600 dark:text-emerald-400',
+  'bg-indigo-500/10 text-indigo-600 dark:text-indigo-400',
Evidence
The changed tile class definitions contain four hardcoded background palette utilities, and the
comment above them does not cite a design specification requiring an exception.

Rule 3036653: Use theme background tokens instead of hardcoded utility color classes
web/src/components/whats-new/WhatsNew.tsx[419-426]
web/src/components/whats-new/WhatsNew.tsx[445-449]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The four non-leading highlight tiles use hardcoded palette background classes rather than the permitted theme background tokens.
## Fix Focus Areas
- web/src/components/whats-new/WhatsNew.tsx[419-426]
## Recommended Fix
Replace the palette background classes with allowed theme background tokens. If the tiles need to remain visually distinct, use other theme-compatible styling rather than hardcoded background colors.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. v1.16 changelog is missing 🔗 Cross-repo conflict ≡ Correctness
Description
CHANGELOG_URL sends users reading the new v1.16 notes to marketing’s curated changelog, whose
newest release tag is still v1.15.0. If Radar v1.16 ships before marketing adds its entry, users
following “Full changelog” will not find v1.16 there.
Code

web/src/components/whats-new/WhatsNew.tsx[403]

+          href={CHANGELOG_URL}
Evidence
The PR adds v1.16 notes and changes their footer to the public changelog. Marketing renders a
curated list whose current release tag remains v1.15.0.

radar -> marketing
web/src/components/whats-new/WhatsNew.tsx[402-408]
web/src/components/whats-new/releaseNotes.ts[33-45]
External repo: skyhook-dev/marketing, content/radar-changelog.ts [53-65]
External repo: skyhook-dev/marketing, src/app/radar/changelog/page.tsx [4-6]
External repo: skyhook-dev/marketing, src/app/radar/changelog/page.tsx [94-98]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new Full changelog link leads to marketing’s curated timeline, which does not yet include v1.16.
## Fix Focus Areas
- web/src/components/whats-new/WhatsNew.tsx[402-408]
- /cross_repos/marketing/content/radar-changelog.ts[53-65]
## Recommended Fix
Add and deploy the v1.16 entries in the marketing repository before Radar v1.16 ships with this link.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
ðŸ’Ą Did you know, you can route each severity your way: inline, summary, both, or drop

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread web/src/components/whats-new/WhatsNew.tsx
Comment thread web/src/components/whats-new/WhatsNew.tsx
@nadaverell
nadaverell merged commit 500cae5 into main Oct 7, 2026
10 checks passed
@nadaverell
nadaverell deleted the whats-new-v1.16 branch October 7, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant