diff --git a/CHANGELOG.md b/CHANGELOG.md
index a1d081b29..d087de290 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [v0.0.31] - 2026-11-07
+
### Added
- Showcase pages for The Rest Is History (`history/`), Darknet Diaries (`darknet/`) and Serial (`serial/`), each with its own header, latest-episode card and subscribe moment. ([#1238](https://github.com/boxcreate/boxlore/pull/1238))
- `BrandedSeal`, the "The best of boxlore" Showcase seal, in place of `BrandedTag`. ([#1238](https://github.com/boxcreate/boxlore/pull/1238))
@@ -30,6 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Links, Play Store pages and settings shortcuts start through `startFirstAvailable` / `openLink` (`:core:designsystem`), and `MainActivity` provides `SafeUriHandler` as `LocalUriHandler`, so no app to open one no longer throws `ActivityNotFoundException` or Compose's `IllegalArgumentException`. ([#1236](https://github.com/boxcreate/boxlore/pull/1236))
- `ForegroundSafeNotificationProvider` delivers Media3's late notification updates on the main thread inside a try/catch, so a `ForegroundServiceStartNotAllowedException` from `MediaNotificationManager.startForeground` posts the notification as an ordinary one instead of crashing the playback service. ([#1237](https://github.com/boxcreate/boxlore/pull/1237))
- The NPS survey's 90-day carry-over from the old survey applies only when it was answered (`nps_last_score`); a one-time revision lifts 0.0.30's wait for the rest. The finish moment is 6 hours and survives restarts: `PlaybackFinishes.onRecorded` → `EngagementPromptCoordinator.recordFinish` → `NpsSurveyStore`. ([#1239](https://github.com/boxcreate/boxlore/pull/1239))
+
## [v0.0.30] - 2026-11-01
### Added
diff --git a/README.md b/README.md
index 7cdea1554..1c2821b8a 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
-
+
@@ -63,6 +63,14 @@ Then it stays quiet while you listen. Free, with no app ads and no paywalls.
### Upcoming
+New features and improvements for the next release are currently in development.
+
+
+
+### What's New · `v0.0.31` · 2026-11-07
+
+
+
🆕 New:
- The Rest Is History, Darknet Diaries, Serial, Sherlock Holmes Short Stories and The Desi Crime Podcast have show pages in their own style: a gallery wall hung with the latest episodes, the show's flag-bearer with the flag waving, Serial's stack of cards dealt from its seasons, an 1891 Strand Magazine that opens to the stories read so far, and the hosts' crime board pinned with past cases. Each has its own moment when you subscribe.
@@ -82,72 +90,6 @@ Then it stays quiet while you listen. Free, with no app ads and no paywalls.
- Fixed a crash that could close boxlore in the background while the player notification loaded an episode's artwork.
- Echo's occasional question about how likely you are to recommend boxlore reaches listeners it had been skipping since the last update. It can now also ask when you come back within a few hours of finishing an episode.
-
-
-
-### What's New · `v0.0.30` · 2026-11-01
-
-
-
-✨ Highlights:
-
-- Listening history has a new Insights tab: your listening time, top shows, when and where you listen, how much of it is new episodes, and your records.

-- Each month, Echo tells the story of your last month of listening: your numbers first, how you listened, your records, and something new to say each time, ready to share.

-- Subscriptions has a cleaner look, and making a folder takes a few short steps: pick shows yourself, follow one genre, or let Auto make a folder for every genre.

-
-🆕 New:
-
-- Timeline lets you search your listening history, jump to any day and pick up where you left off.

-- The Vergecast, Conspiracy Theories, Waveform, Crime Junkie, The Joe Rogan Experience, Rotten Mango and The Daily now have show pages in their own style, with a boxlore "Made for" tag, the latest episode up top and a short moment when you subscribe.

-- Show pages can list episodes straight from a show's own feed, keep them for offline viewing, and tell you when boxlore is showing its own episode list instead. Rolling out gradually.

-- On New Episodes, swipe right to add an episode to your queue or left to mark it played, and pull down to check for new episodes.

-- Listening in German, French, Spanish, Portuguese, Russian or Dutch? You can now turn English off in Library settings › Languages, and boxlore then adds English shows to recommendations, search and suggestions only when there aren't enough in your languages.

-- Free up space with Clear saved shows in Library settings: it removes the episode lists saved for shows you opened but don't follow.

-- Feedback is now a conversation: pick a type, write your message and send, no email needed. The boxlore team's reply shows up in Feedback, Home's Feedback button lights up, and a notification tells you when it arrives if you turn them on.
-
-⚡ Improved:
-
-- Your listening time, longest sessions and where you listened carry over with cloud sync and backups, backups include your whole listening history, and listening on each of your phones counts once.

-- Cloud sync keeps your progress, likes, finished episodes and queue in step across all your devices, including ones on older versions of boxlore, and episodes you remove from the queue stay removed everywhere.

-- Restoring a library backup keeps your played and liked episodes on the right episodes, and exported OPML files point other apps to each show's own feed.

-- Subscriptions remembers whether you chose grid or list, and shows you follow later are added to their genre folder automatically.

-- Show pages load more smoothly, with the page's shape appearing right away and clearer messages while episodes load.

-- In light mode, the player keeps a light Play icon on a deeper cover colour and uses a soft dark shade of the cover for its text, and its quick-action buttons use cleaner, matching icons.

-- On Android 17, the Cast button asks once for permission to find devices on your network. If you'd rather not allow it, it opens Android's own picker, so you can still cast.
-- Shared episode links open the right episode for friends on any version of boxlore, even episodes only in a show's own feed, and keep your plays, progress and downloads on the episode you already have.

-- Library settings has separate rows for your chart country and your languages, and changing your country keeps your languages.

-- After importing your library or picking shows in search, choose whether to see similar shows or go straight to Home, and skip to Home anytime while suggestions load.

-- When boxlore needs a quick check that you're a person before Echo can suggest shows, Echo asks for it in its own voice, and the check fits in with the rest of the screen. Fewer phones need it: phones that are slow to confirm they run genuine boxlore now get more time to finish in the background.

-- New-episode notifications arrive sooner after a release.

-- boxlore asks to send notifications only when you turn them on for a show or finish importing your library, not every time you open Home.

-- On Explore, tap the Explore tab again to start searching. From a show or episode you opened in Explore, the first tap takes you back to Explore.
-- Every few months, right after you finish an episode, Echo asks how likely you are to recommend boxlore, with one short follow-up question. It never pops up as you open the app, and it uses your theme's colours.

-
-🐛 Fixed:
-
-- Shows whose feed stopped working or moved to a new address get new episodes and notifications again: boxlore follows the new address, checks the shows you follow after updating, and passes the fix to your other devices through sync.

-- New-episode notifications no longer repeat for the same episode when one show's feed misbehaves.

-- Turning off episode notifications for an RSS feed stops sharing its feed link from your device. Links already shared stay in earlier public backups.

-- Shows that changed their catalog number stay followed once: no more Subscribe button or duplicate follow, and the episodes you played before the change stay played.

-- Shows with more than 100 episodes keep progress, history and downloads on their newer episodes, and an episode of one show no longer replaces an episode of another show that uses the same feed.

-- Shows no longer list the same episode more than once after refreshing.

-- Hiding completed episodes no longer empties a show's page: boxlore keeps loading until it finds episodes you haven't finished, and tells you when you've finished them all.

-- On foldables and tablets, and when Android closes boxlore in the background, a show's search, open dialogs and selected episodes stay where you left them.

-- The Subscribe button on a show's page no longer stays stuck in its pressed shape after you tap it.
-- Full episodes that a show's feed labels as trailers show as normal episodes and can play next in Smart Queue.

-- Episodes you queue from another show, or play from Downloads, appear under the right show in the player, even after you restart boxlore.

-- Swiping the mini player aside to dismiss it no longer leaves its shadow behind.

-- Downloaded episodes that the Smart Queue adds play from your download.

-- boxlore no longer crashes on some tablets and foldables when you scroll to the end of the top row on Home.

-- Marquee hero cards with Artwork or App theme cover colours show the cover clearly instead of a dark blur.

-- Covers for CBC shows load right away instead of after a long wait.

-- Home and Explore keep the picks and trending shows you already see when boxlore can't reach the server.

-- Listening insights count every episode you've finished, started or liked, not just recent ones.

-- If boxlore can't check Google Play for updates, it offers to open its Play Store page so you can update there.

-- Clearing boxlore's data no longer opens a random episode on the next launch.

-- On an episode's page, More from shows the show's cover instead of a placeholder, and its header stands out from the episodes below it.

-- The prompt to rate boxlore appears only right after you finish an episode, counts only episodes you finish in boxlore on this phone, waits two days after you install or import your library, and doesn't ask twice for the same milestone.

-
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 37ed90bec..92096841b 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -61,8 +61,8 @@ android {
applicationId = "cx.aswin.boxlore"
minSdk = 31
targetSdk = 37
- versionCode = 30
- versionName = "0.0.30"
+ versionCode = 31
+ versionName = "0.0.31"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
diff --git a/release-notes/upcoming.md b/release-notes/upcoming.md
index e6d6c263d..76ab30c8a 100644
--- a/release-notes/upcoming.md
+++ b/release-notes/upcoming.md
@@ -24,19 +24,6 @@ Announcement title:
## New
-- The Rest Is History, Darknet Diaries, Serial, Sherlock Holmes Short Stories and The Desi Crime Podcast have show pages in their own style: a gallery wall hung with the latest episodes, the show's flag-bearer with the flag waving, Serial's stack of cards dealt from its seasons, an 1891 Strand Magazine that opens to the stories read so far, and the hosts' crime board pinned with past cases. Each has its own moment when you subscribe.
-
## Improved
-- Conspiracy Theories' show page is now an evidence board, with the latest episodes pinned up and tied together with red yarn, on white paper by day and black by night.
-- Show pages in a show's own style carry a "The best of boxlore" seal in place of the "Made for" tag. Tap it to find out what the page is.
-- The late-night sleep timer prompt has a new look in your theme's colours: a night sky with a turning moon, and once you pick a time it shows when playback will pause.
-
## Fixed
-
-- On show pages, Select all selects every episode of the show instead of stopping at 100, and while you search it selects your search results. A selected episode on a show's own-style page now stays readable.
-- Your monthly story with Echo opens again from Listening history instead of closing the app. Echo now lands smoothly between cards, the story fills the status and navigation bars, and its card's title no longer runs under the show covers.
-- Tapping a link no app on your phone can open, like a host's page or a funding link, now says so instead of closing boxlore.
-- Playback controls on the lock screen, in notifications and in Samsung's Now Bar show rewind, play and forward in that order, even when nothing is queued next, with a Next episode button beside them when there is.
-- Fixed a crash that could close boxlore in the background while the player notification loaded an episode's artwork.
-- Echo's occasional question about how likely you are to recommend boxlore reaches listeners it had been skipping since the last update. It can now also ask when you come back within a few hours of finishing an episode.
diff --git a/release-notes/v0.0.31.md b/release-notes/v0.0.31.md
new file mode 100644
index 000000000..d5c2a3bf9
--- /dev/null
+++ b/release-notes/v0.0.31.md
@@ -0,0 +1,24 @@
+
+
+Announcement title:
+
+## Highlights
+
+## New
+
+- The Rest Is History, Darknet Diaries, Serial, Sherlock Holmes Short Stories and The Desi Crime Podcast have show pages in their own style: a gallery wall hung with the latest episodes, the show's flag-bearer with the flag waving, Serial's stack of cards dealt from its seasons, an 1891 Strand Magazine that opens to the stories read so far, and the hosts' crime board pinned with past cases. Each has its own moment when you subscribe.
+
+## Improved
+
+- Conspiracy Theories' show page is now an evidence board, with the latest episodes pinned up and tied together with red yarn, on white paper by day and black by night.
+- Show pages in a show's own style carry a "The best of boxlore" seal in place of the "Made for" tag. Tap it to find out what the page is.
+- The late-night sleep timer prompt has a new look in your theme's colours: a night sky with a turning moon, and once you pick a time it shows when playback will pause.
+
+## Fixed
+
+- On show pages, Select all selects every episode of the show instead of stopping at 100, and while you search it selects your search results. A selected episode on a show's own-style page now stays readable.
+- Your monthly story with Echo opens again from Listening history instead of closing the app. Echo now lands smoothly between cards, the story fills the status and navigation bars, and its card's title no longer runs under the show covers.
+- Tapping a link no app on your phone can open, like a host's page or a funding link, now says so instead of closing boxlore.
+- Playback controls on the lock screen, in notifications and in Samsung's Now Bar show rewind, play and forward in that order, even when nothing is queued next, with a Next episode button beside them when there is.
+- Fixed a crash that could close boxlore in the background while the player notification loaded an episode's artwork.
+- Echo's occasional question about how likely you are to recommend boxlore reaches listeners it had been skipping since the last update. It can now also ask when you come back within a few hours of finishing an episode.