+ Nothing matches that search — clear the field or pick a different area.
+
+
+
+
+
+
From 68b829a6d924193ec9c492ae538813198417a1dd Mon Sep 17 00:00:00 2001
From: Dawn Parzych
Date: Fri, 18 Sep 2026 11:25:09 -0500
Subject: [PATCH 2/6] Fix changelog area to a closed set
Area was a free string derived from whichever entries existed; fix it
to the five actual areas (Code Push, CLI, Console, API, Flutter) so
the filter chips are stable regardless of what's in ENTRIES.
Co-Authored-By: Claude Sonnet 5
---
src/pages/changelog.astro | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/pages/changelog.astro b/src/pages/changelog.astro
index fe534ef8..a2c08b7a 100644
--- a/src/pages/changelog.astro
+++ b/src/pages/changelog.astro
@@ -2,12 +2,18 @@
// cspell:words rollouts
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
+// The parts of Shorebird a change can be filed under. Fixed on purpose —
+// this drives the area filter chips, so it should stay in sync with the
+// products we actually ship rather than growing a new value per entry.
+const AREAS = ['Code Push', 'CLI', 'Console', 'API', 'Flutter'] as const;
+type Area = (typeof AREAS)[number];
+
interface ChangelogEntry {
/** Anchor id and permalink slug for this entry. */
id: string;
date: string;
version: string;
- area: string;
+ area: Area;
type: 'New' | 'Fixed' | 'Changed' | 'Deprecated';
title: string;
summary: string;
@@ -56,8 +62,6 @@ function formatMonth(iso: string): string {
});
}
-const areas = [...new Set(ENTRIES.map((e) => e.area))].sort();
-
const groups: { label: string; items: ChangelogEntry[] }[] = [];
for (const e of ENTRIES) {
const label = formatMonth(e.date);
@@ -112,7 +116,7 @@ for (const e of ENTRIES) {
>All
{
- areas.map((a) => (
+ AREAS.map((a) => (
From ae97ac86ddff243a58e26fc06125ea85a2a043bd Mon Sep 17 00:00:00 2001
From: Mac Carrithers
Date: Fri, 18 Sep 2026 12:00:53 -0600
Subject: [PATCH 3/6] Make changelog entry headers clickable and align the
filter chips
The toolbar opts out of Starlight's markdown sibling spacing, which was pushing every chip after "All" down by 1rem.
The expand toggle keeps its button on the badge row, but a stretched ::after covers the whole header so the title and summary toggle the entry too. Links inside the header sit above the overlay. The "+" text glyph is replaced with an SVG so it centers in a larger bubble, and the vertical stroke hides when the entry is open.
---
src/pages/changelog.astro | 137 ++++++++++++++++++++++++++------------
1 file changed, 95 insertions(+), 42 deletions(-)
diff --git a/src/pages/changelog.astro b/src/pages/changelog.astro
index a2c08b7a..cf568130 100644
--- a/src/pages/changelog.astro
+++ b/src/pages/changelog.astro
@@ -1,5 +1,6 @@
---
// cspell:words rollouts
+// cspell:ignore data-type white-space
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
// The parts of Shorebird a change can be filed under. Fixed on purpose —
@@ -82,7 +83,7 @@ for (const e of ENTRIES) {
for the full detail, the command, and the doc it belongs to.