Skip to content

[AI Summaries] Remove AI summaries - #6147

Merged
sztomek merged 8 commits into
mainfrom
feat/remove-ai-summaries
Oct 14, 2026
Merged

sztomek merged 8 commits into
mainfrom
feat/remove-ai-summaries

Conversation

@sztomek

@sztomek sztomek commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Description

Removes AI summaries completely. The AI_SUMMARIES flag was never turned on in production, so production users keep exactly what they see today. Plus, product team decided to mold summaries into Episode chat so the feature become unnecessary.

Generated chapters keep working, now without summaries

  • TranscriptManager.loadSummaryText() was the only code that fetched <transcript>-meta.json, which is also how generated chapters get saved.
  • It's replaced by loadGeneratedChapters(), which only depends on GENERATED_CHAPTERS.
  • The player's ChaptersViewModel calls it for its episode. That covers both the player and Episode details, since both screens share that view model with their Chapters tab.
  • In the player it runs once per playing episode, and not when nothing is playing. Before, it re-fetched meta.json on every player update.

Player

  • The Summary tab is gone, along with SummaryFragment, SummaryViewModel and the summary analytics event.

Episode details

Also removed

  • Feature.AI_SUMMARIES and OnboardingUpgradeSource.AI_SUMMARIES.
  • SummaryPaywall, SummaryContent and MarkdownUtils.
  • The showCloseButton option that Redesign episode details screen with AI summaries #5353 added to the transcript toolbar.
  • Six strings (episode_summary, summary_upsell_title, summary_upsell_description, summary, player_tab_summary, and the already unused description), from values/ and all 16 translations.
  • No database migration is needed.

Visible change in debug and prototype builds

  • These builds had the flag on by default, so they now show the production Episode details layout instead of the redesign.

Testing Instructions

Use a debug build with "Generated chapters" on in Beta features.

  1. Open Episode details for an episode with a transcript and generated chapters (Radiolab › Patient Zero). ✅ Details / Chapters / Bookmarks tabs at the top, a "View transcript" card, then the show notes.
  2. Tap Chapters. ✅ The generated chapters show ("These chapters are automatically generated…"). Logcat shows the …-meta.json request.
  3. Open Episode details for an episode without a transcript. ✅ The show notes keep their 16dp gap below the date/duration row, as before.
  4. Rotate to landscape. ✅ Same layout, nothing missing or overlapping.
  5. Open the full-screen player. ✅ Tabs are Playing / Details (if there are show notes) / Chapters (if there are any) / Bookmarks. There's no Summary tab.
  6. Beta features no longer lists "AI Summaries".

Screenshots or Screencast

Before (debug, flag on) After After, with transcript Generated chapters Landscape Player
before-episode-details after-episode-details after-episode-details-transcript after-generated-chapters after-episode-details-landscape after-player-tabs

Checklist

  • If this is a user-facing change, I have added an entry in CHANGELOG.md
  • Ensure the linter passes (./gradlew spotlessApply to automatically apply formatting/linting)
  • I have considered whether it makes sense to add tests for my changes
  • All strings that need to be localized are in modules/services/localization/src/main/res/values/strings.xml
  • Any jetpack compose components I added or changed are covered by compose previews
  • I have updated (or requested that someone edit) the Event Horizon schema to reflect any new or changed analytics.

I have tested any UI changes...

  • with different themes
  • with a landscape orientation
  • with the device set to have a large display and font size
  • for accessibility with TalkBack

@claude

claude Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @sztomek's task in 1m 2s —— View job


This looks good to merge and I found nothing blocking. Generated chapters still get fetched on both screens. ChaptersViewModel is created and collected straight away in EpisodeContainerFragment and PlayerContainerFragment, and ChaptersFragment uses the same view model from its parent, so meta.json is fetched once per episode. loadLocalTranscripts waits up to 1 minute for the show notes to finish processing, so dropping the old re-fetch on every player update doesn't stop chapters loading for a newly started episode. I found no remaining references to the removed view IDs, strings, AI_SUMMARIES or the EpisodeSummary* events.

@dangermattic

dangermattic commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator
1 Warning
⚠️ This PR is larger than 500 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.

Generated by 🚫 Danger

@sztomek
sztomek force-pushed the feat/remove-ai-summaries branch from bb0d5ff to 7a9d2d6 Compare October 9, 2026 10:56
@sztomek
sztomek changed the base branch from feat/episode-chat-remove-episode-details-entry to main October 9, 2026 10:56
@sztomek sztomek added [Type] Other Issues not covered by other types, such as refactoring and documentation. [Type] Tech Debt Involving upgrades or refactoring to maintain or enhance the codebase. AI Summaries [Project] Episode Chat labels Oct 9, 2026
@sztomek sztomek added this to the 8.23 milestone Oct 9, 2026
@sztomek
sztomek marked this pull request as ready for review October 9, 2026 12:31
@sztomek
sztomek requested a review from a team as a code owner October 9, 2026 12:31
@sztomek
sztomek requested review from geekygecko and removed request for a team October 9, 2026 12:31
@claude

claude Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @sztomek's task in 1m 8s —— View job


This looks good to merge and I found nothing blocking. Episode details is back to the production layout, the player has no Summary tab, and generated chapters are still fetched once per episode from ChaptersViewModel on both screens. The one difference from main is that the player no longer retries a failed meta.json fetch.

Non-blocking

  • modules/features/player/src/main/java/au/com/shiftyjelly/pocketcasts/player/view/chapters/ChaptersViewModel.kt:71: if the meta.json request fails once (for example, playback starts offline), generated chapters stay missing in the player until a different episode plays. On main it only recovered because every player update fetched again. Add a retry if that matters, or accept it. [AI Summaries] Remove AI summaries #6147 (comment)

viewModelScope.launch(ioDispatcher) {
mode.episodeIdFlow()
.filter { it.isNotEmpty() }
.collectLatest(transcriptManager::loadGeneratedChapters)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(non-blocking) If the -meta.json request fails once, for example when playback starts offline, the player won't show generated chapters for that episode until a different episode plays. On main this only kept working by accident: SummaryViewModel stayed NotAvailable when summaries were off, so every listDataLive emission fetched again. Now loadGeneratedChapters runs once per episodeUuid and swallows the error. If that matters, retry on failure, e.g. have it return a success flag and retry with backoff, or re-trigger it on a connectivity change. Otherwise it's fine to accept and leave as is.

@claude

claude Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @sztomek's task in 29s —— View job


I found nothing new since the last review, and the one open finding is resolved. 8bf5e04 makes loadGeneratedChapters return whether it succeeded. ChaptersViewModel now retries a failed meta.json fetch with backoff (5s, 10s, 20s, 40s, 80s). collectLatest cancels the retry when the episode changes. This fixes the offline-start case from #6147 (comment).

@wpmobilebot wpmobilebot modified the milestones: 8.23, 8.24 Oct 12, 2026
@wpmobilebot

Copy link
Copy Markdown
Collaborator

Version 8.23 has now entered code-freeze, so the milestone of this PR has been updated to 8.24.

@sztomek
sztomek force-pushed the feat/remove-ai-summaries branch from 8bf5e04 to 9cb4e95 Compare October 14, 2026 12:18
@claude

claude Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @sztomek's task in 27s —— View job


Nothing new since the last review, and nothing is still open. This push rebases the same 8 commits onto the latest main (fc3bb35). The diff is the same size (44 files, +219/−2520), and the code coming in from main doesn't use anything this PR removes.

@sztomek
sztomek merged commit 5f0af82 into main Oct 14, 2026
20 checks passed
@sztomek
sztomek deleted the feat/remove-ai-summaries branch October 14, 2026 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Summaries [Project] Episode Chat [Type] Other Issues not covered by other types, such as refactoring and documentation. [Type] Tech Debt Involving upgrades or refactoring to maintain or enhance the codebase.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants