v2.7.2

Latest

This release is mostly about Android after a long stretch of background playback: opening the app no longer waits while it works out what played while you were away, and that work finishes sooner. An episode's audio also stops sitting on the device once the episode leaves the queue and the player, so the space comes back on its own.

Bug fixes

  • Opening the app no longer waits on a long catch-up. On Android, if the app had been playing in the background for a long stretch and you opened it while it was still working out everything that had played since you last looked, you could sit on a loading screen for ten seconds or more until that finished. It now opens as soon as that has worked out what is playing, provided playback has not moved on since, and finishes the rest in the background.
  • Downloads no longer pile up on the device. An episode's audio is now removed once it leaves the queue and the player, on both Android and iPhone, so the space comes back on its own. On Android it used to stay there until you signed out or cleared the app's data. Only the audio goes: your place in the episode and your starred list are untouched, and starting the episode again downloads it first, which needs a connection. The episode loaded in the player keeps its file even after you mark it done, and starred episodes keep theirs while Keep Starred Episodes Downloaded is on; with that setting off they are removed like any other. The first launch after this update reclaims whatever had piled up, after your queue has loaded. Another account's downloads on the same device are left alone.

Back-end changes

  • Catching up after long listening finishes sooner. On Android, coming back after hours of background playback used to repeat the same work separately for every episode that had finished while you were away, so the more had played, the longer it took. It now groups that work, so there is less to get through before the app is ready.

https://android.stfuai.com

v2.7.1

This release fixes several things on iPhone: a finished episode saves its completion without a connection, starred episodes keep their downloads when Keep starred episodes downloaded is on, and VoiceOver can read and dismiss the analysis notice. On Android, a widget control that cannot reach playback opens the app instead of doing nothing, and the Library header buttons respond to taps near their edges again. Buying or upgrading a subscription also keeps an allowance that belongs to your account rather than replacing it with your plan's default. The Back-end changes below are already active on the server and do not require this app update.

Bug fixes

  • Android local reset handles playback startup. When you use Reset local data after repeated startup failures, playback requests now wait for the reset to finish, and background work stops before local data is cleared.
  • Failed Android widget controls open the app. If a widget tap cannot reach playback, the app opens as a fallback. An older tap cannot open it after a newer playback control, and successful controls continue working without opening the app.
  • Finished episodes recover offline on iPhone. Reopening the app after an episode finished no longer requires a connection to save that completion locally. A newer Not Done saved on another device still wins when synchronization resumes.
  • VoiceOver can now dismiss the analysis notice on iPhone. The "Heads up!" card that explains episode analysis, which appears once per account the first time you press play or add an episode to the queue, was a single item to VoiceOver: it read out its title and nothing else, so neither the explanation nor the "Got it!" button could be selected. The card now reads out in full and its button can be activated, which also starts playback when the card had held a play request.
  • A custom analysis allowance survives an upgrade. If your account has an allowance set for it specifically rather than the one your plan comes with, buying or upgrading a subscription replaced that allowance with the plan's default until the app next managed to read your account. An account allowed 55 analyses a week showed Pro's 30 right after upgrading, and an allowance set lower than the plan default was raised just as wrongly. Your own allowance and the analyses you had already used this week now both carry through the purchase, and a later successful account read still decides the final number.
  • Starred episodes stay downloaded on iPhone. With Keep starred episodes downloaded on, a starred episode nothing else on the device was holding lost its audio every time the app opened, then downloaded itself again, so it was missing while you were offline until that transfer finished. It keeps its file now. Episodes you already have download once more the first time you open this version, and stay after that. Android was never affected.
  • Library header taps beside Add RSS work again on Android. A tap on the right edge of the star, or on the left part of Add RSS, did nothing, with nothing on screen to show why: the pull-to-refresh circle sits over those buttons and was taking the taps even while it was hidden. Both open now, and the circle looks and moves as it did.

Back-end changes

  • Fixed failures when starting episode analysis. Some analysis requests failed before processing began. A related problem could also overlook an available transcript and transcribe the episode again. Both problems are fixed. This fix is already active on the server.
  • Paid plans are recognized correctly. Some paying accounts were treated as Free. Those accounts now use the correct paid plan and weekly analysis allowance, while keeping any allowance set specifically for the account, including zero. Free accounts are unchanged. This fix is already active on the server.
  • Automatic ad checks follow your current plan. Your current plan now determines how much reasoning is requested by default when checking an episode for ads. This corrects cases where an expired plan was still used or another active, higher plan was overlooked. Plans granted by hand, lifetime plans, and payment grace periods work as before. This fix is already active on the server.
  • Finished analyses can arrive before statistics update. You can now receive a finished analysis while its Listening Statistics update continues in the background. This fix is already active on the server.
  • Android sign-in restoration handles temporary interruptions. When moving to another Android device or restoring a backup, recovering your saved sign-in now has a better chance of succeeding through a brief interruption. If recovery fails, the app still falls back to ordinary sign-in. This fix is already active on the server.
  • Fixed missing analyses in show statistics. On Android, reusing an existing episode analysis sometimes left it out of Listening Statistics totals for shows you subscribe to. That case is now fixed for newly reused analyses. This fix is already active on the server.

Minor tweaks

  • A subscription purchase that the store delivered on its own, with no purchase of yours open on screen, could put its later failure message on a purchase you started afterwards. Those unrelated deliveries are now kept apart.

https://android.stfuai.com

v2.7.0

See a breakdown of detected segments and silence skipping, save favorite episodes with a star, and keep starred episodes downloaded. This release also repairs some interrupted playback sessions and damaged downloads, protects saved settings, and keeps finished episodes' audio while you still need it.

Features & changes

  • Listening statistics across your account. See approximate time saved through detected segments and silence skipping, with expandable podcast and segment-type breakdowns. Detected segments count even if you never played or skipped them. Totals use available synced history, round up to whole minutes, and can count overlapping audio or repeated analysis and listening. Saved results stay visible when a refresh fails.
  • Star episodes to save them. Use the gold star beside Share in the full player, whether or not you follow the podcast or have the episode queued. Your starred episodes are saved to your account and appear when you sign in on another device.
  • Find starred episodes in the Library. The gold star beside Add RSS opens your starred list. Episodes already saved on this device appear immediately while the list refreshes from your account. You can play or unstar them during the refresh.
  • Star episodes from their menus. Long-press an episode in the Queue, Feed, or a podcast's page to star or unstar it.
  • Long-press the Now Playing card. The episode at the top of the Queue now opens a menu with Star or Unstar, Share, Analyze or Re-analyze, Mark as done, and Go to podcast. Play now and queue-reordering options are omitted because the episode is already playing.
  • Keep starred episodes downloaded. Turn on this new option under Settings > Downloads & Sync to download starred episodes in the background, including those starred on another device, and keep their audio after you mark them done. The option is off by default and respects Download over Wi-Fi only. Turning it off does not immediately delete existing downloads.

Bug fixes

  • Recover from interrupted playback. Reopening the app can repair certain playback problems left by an interrupted session without clearing your queue, listening progress, or settings.
  • Downloaded episodes repair themselves. Play reuses healthy audio when its saved download details disagree. If the audio is missing or fails a file check, the app attempts a replacement download and continues the original playback request while it remains active. Automatic repairs respect background download settings and no longer show the message intended for a first download.
  • Library buttons are easier to tap. The star, Add RSS, and Feed buttons have larger touch areas, making the header slightly taller. Those buttons, plus Discover Podcasts and Add RSS in an empty Library, also respond more reliably while the Library updates.
  • Analysis waits out temporary service failures. When a temporary service problem prevents a new analysis from starting, the app retries longer before reporting failure, unless the service refuses further attempts. Automatic analysis can also try again later after an unsuccessful retry period.
  • Startup cleanup reports success correctly. Removing a finished episode during startup no longer causes a cleanup-failure message after the removal succeeds.
  • Finished episodes keep their downloads longer. Marking an episode done keeps its audio while it remains loaded in the player or in the queue. Once neither applies, the file can be removed unless Keep starred episodes downloaded protects it. This retention also applies to episodes you have not starred.
  • Canceling keeps analysis results already underway. Canceling from the player after the episode has uploaded lets analysis continue and its results normally arrive. If cancellation stops the upload before it finishes, the analysis credit is returned after the unfinished upload expires. If the upload finishes first, analysis may continue and use the credit.
  • A stalled analysis uploads its audio again. The app can now retry an upload when it previously treated the audio as sent but the server never received it. This requires the episode's download to remain on the device and follows Download over Wi-Fi only.
  • Retrieve analysis that finished after a failure. If this device's earlier attempt failed but the server finished the analysis, a manual or automatic retry now retrieves that result instead of repeatedly failing again. Those repeated requests did not use additional weekly credits.
  • Protect saved settings after read failures. When the app temporarily cannot read your saved settings, it avoids overwriting them until it can read them or restore them from your account.

Back-end changes

These changes are already live for existing app versions.

  • Fixed some analyses failing immediately. A problem on our side could prevent analysis from starting for an episode our service already knew about. Those requests can proceed again.
  • Less waiting on listening statistics. Starting an analysis no longer waits for its listening-statistics update. Completed analysis results can also arrive while that update finishes.
  • More history in Listening Statistics. Analyses from shows you no longer follow can now count when your saved episode and podcast information identifies the show. Previously missing analyses can also be reconsidered when new synced information identifies their podcast.
  • Account restoration retries temporary stalls. When restoring your sign-in on a new Android phone, some temporary service stalls now get another attempt before restoration fails.
  • More weekly analyses. Standard weekly allowances are now 15 for Free, 30 for Plus, 45 for Pro, 75 for Platinum, and 150 for Absolute Nutter. Custom account allowances and analyses already used are unchanged.
  • Closer matching before reusing analysis. Episodes with different inserted ads are less likely to receive results from a different recording. This does not repair results already downloaded. When a fresh analysis is needed, it can use an analysis credit.
  • Retry more failed analyses automatically. Some stalled analyses and transcription-service failures now get another attempt. When these attempts cannot recover, the analysis credit is normally returned. A service failure no longer incorrectly blocks another analysis of the same audio.
  • Use verified transcripts with uncertain coverage. Analysis can continue with a usable transcript when the recording has been verified but speech coverage is uncertain. This does not guarantee that every word appears in the transcript.
  • Handle joined MP3 recordings. Some recordings assembled from multiple MP3 files can now be analyzed after verification confirms that the whole file was decoded. Recordings that fail these checks are still rejected.
  • Temporary sync outages stay temporary. A temporary account-check outage during sync is now reported as a temporary failure instead of an expired session.

Minor tweaks

  • Bug reports capture playback recovery. Android debug logs include recent playback failures and audio-repair outcomes, including failures that happened in the background.
  • Listening Statistics drops its footnotes. The gray notes about rounding, overlap, history, and syncing are gone. The totals and breakdowns are unchanged.
  • Episode-menu stars are consistently gold. Star and Unstar now match the player and Library, with a filled star for starred episodes.
  • One offline message in Listening Statistics. When statistics cannot refresh, one status line now appears above Retry instead of two stacked messages.

https://android.stfuai.com

v2.6.34

New episodes reach your queue again on phones where the automatic check had stopped, and episodes you finish stay finished instead of coming back unplayed.

Bug fixes

  • New episodes reach your queue again. On some phones, the automatic check that adds new episodes to your queue had stopped, so podcasts set to add new episodes automatically added nothing to your queue, even after a manual refresh. It resumes after updating and catches up on the episodes you missed. On some phones the catch-up can also add older episodes from those podcasts that you have not finished or removed from your queue.
  • Finished episodes stop coming back. An episode you finished could reappear in your queue again and again, starting over each time, when your account still listed it as unplayed with its saved place at the end. An unplayed episode saved within ten seconds of its podcast's listed length, or past it, now counts as finished unless you marked it Not Done: it is no longer added back, and when the app starts with it still in your queue or history, the app removes it as before and now also marks it played on your account. The listed length is the measure, so an episode whose audio runs longer, such as one with inserted ads, also counts as finished if you stopped that close to the listed length.
  • Finishing an episode sticks. An episode you finished could be marked unplayed again on every device. It happened when you paused or left the app right as the episode ended, and when the episode finished while the app was in the background and you then came back to the app, which also moved your saved place back to where it was when you left.

Minor tweaks

  • Finished episodes look finished sooner. On a podcast's page as it opens, and in the Feed when your account can't be reached, an episode saved at its very end now shows as finished, the same way it does once your account responds.

https://android.stfuai.com

v2.6.33

The player keeps up with background listening, connection failures are clearer, and incomplete transcript failures offer a confirmed recovery using the original downloaded audio. New analyses also check that the recording was fully read before accepting a transcript.

Bug fixes

  • Player no longer sticks on an old episode. After a long stretch of listening with the app in the background, opening the app could leave the mini player and full player on an earlier episode while the widget and the audio had moved on, for many minutes or until you closed and reopened the app. They now keep up with what is playing.
  • Discover and podcast pages say when they couldn't connect. When a podcast the app has no saved copy of, or Discover with no saved trending list, can't load because the app couldn't connect, it now says so and suggests checking your connection, instead of a generic "Failed to load" message. A server that is slow or not responding shows the same message.
  • Clear recovery for incomplete transcripts. When an analysis reports that its transcript could not be verified as complete, the app shows the failure and stops automatic retries. In the player, hold Re-analyze to check whether the original downloaded audio can be uploaded again, then confirm before using another weekly analysis. Older failures without matching audio evidence cannot use this recovery.

Back-end changes

  • New transcripts must pass completeness checks. New analyses check that the original recording was fully read before accepting a transcript. A failed check stops the analysis instead of publishing its result. This change is on our side and already applies to new analyses.
  • Older transcripts need evidence before reuse. Saved reports remain viewable, but transcripts without a verified completeness check cannot be used for new shared results or re-analysis. If no verified shared result is available, a new analysis counts against your weekly allowance. This change is on our side and already applies.

Minor tweaks

  • Listening progress syncs faster. After a lot of listening with the app in the background, the app now skips play, pause, and stop updates that a later one in the same batch would overwrite, instead of sending every one in turn, so your progress reaches your account sooner when the app next opens or wakes.

https://android.stfuai.com

v2.6.32

The player keeps up with what is playing after a long stretch of background listening, and Discover and podcast pages now say when they couldn't connect. On our side, ad detection checks more of each episode.

Bug fixes

  • Player no longer sticks on an old episode. After a long stretch of listening with the app in the background, opening the app could leave the mini player and full player on an earlier episode while the widget and the audio had moved on, for many minutes or until you closed and reopened the app. They now keep up with what is playing.
  • Discover and podcast pages say when they couldn't connect. When a podcast the app has no saved copy of, or Discover with no saved trending list, can't load because the app couldn't connect, it now says so and suggests checking your connection, instead of a generic "Failed to load" message. A server that is slow or not responding shows the same message.

Back-end changes

  • More of each episode is checked for ads. For about a day, from October 1 to October 2, a pricing limit held back one of our two ad-detection services, so more analyses, mostly of long episodes, finished with stretches that were never checked for ads. It is back in use. This change is on our side and already applies to new analyses.
  • Fewer analyses stop partway. Some service errors used to use up the remaining retries and leave part of an episode unanalyzed. They are now retried. This change is on our side and already applies.
  • Incomplete shared results are no longer reused. When someone else has already analyzed the same episode file, you normally get their result without using one of your analyses. If every earlier result for that file has parts that were never analyzed, you now get a fresh analysis instead, which counts against your weekly allowance; with none left that week, it waits until your allowance resets. This change is on our side and already applies.

Minor tweaks

  • Listening progress syncs faster. After a lot of listening with the app in the background, the app now skips play, pause, and stop updates that a later one in the same batch would overwrite, instead of sending every one in turn, so your progress reaches your account sooner when the app next opens or wakes.

https://android.stfuai.com

v2.6.31

Choose whether new episodes automatically join your queue across all podcasts, with separate choices for individual podcasts. This update also improves background episode checks and explains when an episode is too large to analyze.

Features & changes

  • Choose auto-add for all podcasts. Settings now has an "Auto-add episodes to queue" switch that starts on. Each podcast can follow it or override it. Your existing podcast-specific on/off choices are kept when you update.

Bug fixes

  • Too-large episodes now say so. When you tap Analyze on an episode whose file is too large for analysis, the episode shows Analysis failed. When the app can tell you right away, it also explains that the episode is too large to analyze.
  • Background checks keep your chosen frequency. A background check without a usable connection now leaves the next check at your Sync Frequency. Previously, repeated failures could delay new episode discovery for hours after the connection returned. Android's battery saving can still delay checks.

https://android.stfuai.com

v2.6.30

Automatic analysis now works for accounts that never changed a setting, and analysis copes better with very large episodes and temporary problems on our side.

Bug fixes

  • Automatic analysis works for accounts that never changed a setting. If you never changed a setting, your account never received a copy of your settings, and on Android the app could not start new analyses, download new episodes, or check for new episodes in the background. The app now saves a complete copy of your settings to your account the next time it starts while you are signed in and can reach your account, and fills in any settings an older copy was missing. Accounts already affected were fixed on our side.

Back-end changes

  • Episodes too large to analyze are turned away at once. An episode file over 500 MB used to start an analysis that could never finish and kept retrying for hours. It is now declined immediately and nothing is counted against your allowance. This change is on our side and already applies.
  • Analyses recover from temporary problems more reliably. When one of the services that analyzes episodes has a brief outage, the analysis now waits and resumes where it left off instead of starting over. This change is on our side and already applies.

https://android.stfuai.com

v2.6.29

New accounts now start with automatic analysis on, and accounts that never touched the setting since it turned off by default have it back on. Signing in on a bad connection can no longer replace your saved settings with the defaults.

Features & changes

  • Automatic analysis starts on for new accounts. When you sign up, the app analyzes the episode you are playing and the next five in your queue once they download, within your weekly analysis allowance, so skippable segments are usually ready by the time you reach them. Signing in to an existing account keeps that account's saved setting, and "Reset settings to default" now turns automatic analysis on. You can turn it off in Settings.

Bug fixes

  • Signing in on a bad connection keeps your settings. If the app could not load your saved settings when you signed in, changing any setting or signing out afterwards could replace the settings on the main Settings page with the defaults. The app now tries again each time you open or return to it and sends no setting changes to your account until your saved settings load. Then it uses them, and any setting you changed in the meantime keeps your new value.

Back-end changes

  • Automatic analysis is on for accounts that never changed it. If you created your account after the v2.5.14 update, your settings had synced to your account, and you never changed the automatic analysis setting, it is now on. This change is on our side and already applies. If you ever turned it on or off yourself, your choice stays as it was.

https://android.stfuai.com

v2.6.27

This release clears pending purchase notices after confirmation and improves subscription status updates.

Bug fixes

  • Purchase confirmation after a delay. A pending-purchase notice now closes when that purchase is verified, even if the store took longer than the initial wait.
  • Canceled subscriptions update more reliably. We fixed a problem that could prevent a subscription cancellation from reaching your account. This change on our side is already live.

Back-end changes

  • Expired plans update more reliably. We added regular checks to update plans after their subscriptions expire, while preserving other valid access. This change on our side already applies without an app update.

https://android.stfuai.com

v2.6.25

This update keeps your place after Stop, improves queue loading after sign-in or restore, and adds a repair option for oversized saved data. It also adds iPhone subscription controls and clearer guidance for pending Google Play payments.

Features & changes

  • App Store purchase recovery. The app checks unfinished App Store purchases when you sign in or return to it. If a purchase still needs confirmation, it remains available to restore.
  • iPhone subscription controls. The Subscription screen offers App Store purchase controls when the selected plan is available from the store. Restore Purchases is available when the store connection is ready.
  • Repair oversized saved data. If oversized saved data stops the app from starting on Android, the startup screen now offers "Repair saved data". After confirmation, it removes only the unreadable data and keeps you signed in. Unsynced information in that data is lost. If it includes player state, the queue returns from a separate device copy or your account; re-downloading a previously cleaned-up file can still fail, and an old notification can remain.

Bug fixes

  • Restoring purchases checks plan details. Restore Purchases requests updated billing-period and account-plan details. A failed refresh does not remove already verified access. A purchase from another store no longer temporarily replaces a higher plan with a lower one.
  • Pending payments get a clearer explanation. If Google Play is still processing a payment, purchasing or restoring a subscription shows "Payment pending" and asks you not to buy it again.
  • Damaged episode marks no longer block startup. If the saved list of episode marks waiting to reach your account is damaged or unreadable during an update, the app now opens and keeps every readable mark. An entirely unreadable list is retried when the app opens until a new mark is saved or you sign out; after that, its old marks cannot be restored.
  • Background changes no longer interrupt queue restoration. Changes to downloads or queued episodes while the signed-in app opens no longer interrupt restoring your saved queue and leave startup waiting for "Retry app setup".
  • Restored current episodes load when ready. A current episode selected by cloud restore or sign-in now loads paused once downloaded. Previously, download completion or pending skip-setting changes could leave it unloaded, with no playback notification and nothing playing on the widget or Android Auto.
  • Expired analysis uploads stop retrying indefinitely. Once an upload is confirmed expired, the app stops asking to start that upload. The app attempts recovery while signed in, using any network unless downloads are limited to Wi-Fi. If the first recovery request sent at least a day after the expiry confirmation still cannot recover the upload, the episode's analysis becomes failed and can be tried again. Waiting for Wi-Fi, sign-in, or the weekly quota reset can delay that request.
  • Stop no longer holds back updates. After stopping playback with a headset or car-stereo Stop button, skip-setting changes and finished analysis results now apply while playback remains stopped.
  • Stop keeps your listening position. Reloading an episode after Stop now resumes where you stopped, unless your account restores the queue first. This also applies when you return after choosing another episode. A position saved in the last minute, or less for episodes under ten minutes, stays on reload but starts over if you choose the episode again after playing something else.
  • Unreadable settings no longer block queue preparation. If the app cannot read saved advanced settings, returning to the app now continues preparing your queue. It tries reading those settings again on a later return.

Back-end changes

  • Changes to new episode analysis. We changed how new episode analyses are assigned to avoid services that missed ads or took too long. This change on our side is already live. It does not re-analyze earlier results.
  • Less waiting when analysis is unavailable. Some temporary service problems can now recover within the same analysis attempt if enough time remains. This change is already live and does not apply to Re-analyze.
  • Temporary checks no longer expire uploads. If our service temporarily cannot check whether an episode's upload arrived, it now preserves the pending analysis for another check instead of treating the upload as missing or expired. This change already applies without an app update.

Minor tweaks

  • Near-finished paused episodes start over. When the app loads your current episode paused after sign-in, or loads the next downloaded episode while your queue waits, a position saved in its last minute, or less for an episode under ten minutes, now starts from the beginning. Choosing the episode already behaved this way. The saved position becomes the beginning when the app next saves progress.
  • Subscription buttons describe their actions. With a screen reader, plan-change buttons identify the plan and billing period. Plan-change and Restore Purchases buttons also report when they are busy or unavailable.

https://android.stfuai.com

v2.6.24

Large episodes now finish uploading for analysis more often, and an upload that runs out of time tries again on its own. Marking a very large number of episodes Done or Not Done no longer breaks adding to the queue or leaves the app stuck at startup. Episode analysis now catches more ads, including a mid-episode break the old analysis often missed.

Bug fixes

  • Large episodes upload for analysis more reliably. Each try at sending an episode for analysis can now run up to twice as long as before, and later tries up to three times as long, if the upload has that much of its time left. Before, a large episode on a slower connection could run out of time on every try and never be analyzed. The phone can still cut a try short while the app is closed and nothing is playing. Starting playback from your headphones, car, or a widget can now also start a waiting upload, unless it is pausing after an earlier slow try, or "Download Over Wi-Fi Only" is on and you are not on Wi-Fi.
  • Expired analysis uploads try again by themselves. When the analysis service stops waiting for an episode's upload, the app now starts a fresh attempt on its own, up to three times, whether you tapped Analyze or the app started the analysis. The expired attempt's analysis is given back, so a fresh attempt does not cost an extra one. Fresh attempts stop early if the episode was downloaded again, or if its download is missing or no longer matches what the app saved when it downloaded it, and "Download Over Wi-Fi Only" still holds uploads until you are on Wi-Fi. Before, the first expiry ended the analysis with "This analysis attempt ended and cannot be picked back up". You still see that message if all three fresh attempts expire too, and an analysis the app started by itself is still tried once more, no sooner than an hour later, now with up to three fresh attempts of its own.
  • Marking thousands of episodes no longer breaks the app. After marking a very large number of episodes Done or Not Done by hand, typically well over a thousand, adding an episode to the queue failed with "Could not add this episode to the queue", and signing out and back in left the app stuck on "Couldn't finish starting" every time it opened. Clearing the app's storage was the only way out. Updating fixes it the first time the app opens, and keeps every episode you marked.

Back-end changes

  • Ads are found more reliably. We changed how episodes are analyzed on our side. In our testing, the new analysis found a mid-episode ad break every time, where the old analysis missed that break three to five times in ten, and it caught more ads overall across recent episodes. This applies to episodes our service analyzes for the first time from now on, whatever version you are running. An episode anyone had already analyzed keeps its earlier results, and tapping Re-analyze on it usually does not use the new analysis.

https://android.stfuai.com

v2.6.23

Canceling a subscription now leaves your access in place until the end of the period you already paid for. Opening the app keeps the episode that is playing instead of jumping to the next one. An analysis whose upload ran out of time now makes one more attempt on its own.

Bug fixes

  • Canceling keeps the time you paid for. Turning off auto-renew used to make the app tell you your subscription had ended and that you needed to start a new one, from the moment you canceled. Your access now continues to the end of the period you already paid for, which is what the store shows you. This one is a change on our side that already applies, whatever version you are running. The old message still appears when a subscription genuinely ends early, such as after a billing problem or a refund.
  • Opening the app no longer skips ahead. If an episode is still playing and is not near its end, opening the app keeps it. Before, a completion mark could pause that episode and move you on to the next one. This applies while playback is actually running.
  • An expired analysis tries again by itself. When an episode's audio never finished uploading for analysis, the app left it failed until you tapped Analyze. On Android it now starts one fresh attempt about an hour later. If that attempt runs out of time too, it stops, and Analyze is how you start another.

https://android.stfuai.com

v2.6.22

This update can sign you back in after a supported Android device transfer, and Google sign-in asks which account to use after you sign out. Mark Done and your skip choices hold through restarts, offline use, and reanalysis. The Subscription screen drops a plan we never sold, shows verified billing terms, and picks up a finished Google Play purchase without a restart. Analysis skips less real speech, including large sections marked as ads by mistake, and transcribes non-English episodes in their own language.

Features & changes

  • Restore your sign-in after a transfer. After a supported Android device transfer, the app can sign you back in to the same account if a restore credential was saved before the transfer. If restoration is unavailable, you can sign in normally.
  • Offline sign-out keeps other devices. After the app upgrades your saved login, signing out finishes without an internet connection, and your other devices stay signed in. Any remaining account cleanup runs in the background.

Bug fixes

  • Choose your Google account after signing out. Starting Google sign-in opens account selection instead of returning to the previous Google account.
  • Mark Done survives interruptions. While you are signed in, unfinished Mark Done work from the player or an episode list, including a bulk selection, can finish after a restart or a temporary loss of connectivity. A newer Not Done choice is kept. If syncing returns conflicting saved states, podcast lists, queue restoration, and pending completion checks use the newest one.
  • Mark Done keeps playback controls. When the next episode is already downloaded, marking the current episode done hands over without briefly removing the playback notification and lock screen controls. Playback still stops if no downloaded next episode is available.
  • Skip choices survive reanalysis and offline use. A downloaded episode started from a media controller, such as a voice assistant, keeps your chosen skip categories after reanalysis, and can recover them from full analysis still stored on the device without another analysis charge. When that analysis is already saved, skip choices also apply before settings finish syncing, including for podcasts you no longer follow. Turning off every category stops segment skipping.
  • A plan we never sold no longer appears. The Subscription screen no longer offers an Absolute Nutter plan while the plan list is loading, and it drops that plan from a stored list at startup.
  • Subscription messages use verified terms. A Google Play plan change shows the verified access date when one is available, and refers to the store's billing terms, instead of announcing a new seven-day trial and promising no charge. Before an upgrade or a longer billing period, the app checks whether the current period is a confirmed free trial, and offers recovery guidance if it cannot confirm the terms. If you leave while that check is running, the purchase screen does not open afterward. A purchase already opened in Google Play can still complete, and downgrades keep their existing schedule.
  • Subscription extensions keep your access. When Google Play extends your subscription, your plan stays available through the new expiration date instead of dropping to Free early. This fix on our side already applies without updating the app.
  • Trial upgrades keep the correct subscription. A Google Play upgrade during a trial could be rejected as a second free trial. A replacement confirmed for the same app account now activates. This fix on our side already applies without updating the app.
  • Late purchases keep checking. A Google Play purchase the store had already completed, but that had not yet been verified, is checked again each time you return to the app, though not more than once every few minutes, and right away if a purchase attempt times out.
  • Fixed episodes with large sections wrongly skipped. Timestamps could be misread, and a chapter whose description mentioned an upcoming sponsor break could be skipped as advertising. Fixed for episodes analyzed from September 14, 2026 onward; earlier episodes keep their old boundaries unless re-analyzed. This change on our side is already live.
  • Fixed transcription for non-English podcasts. Episodes in a language other than English were transcribed as garbled English. The spoken language is now detected from the episode, and chapter titles and descriptions follow that language. Live since September 17, 2026, for episodes analyzed from that point on.
  • Improved ad-skip and filler-removal accuracy. Real sponsor reads around eight seconds long were sometimes left in, an ad's opening could be covered by the previous line, and a timing rule briefly cut real speech. Live progressively between September 15 and 19, 2026, for episodes analyzed in that window and after.
  • Fixed chapter gaps in longer episodes. For episodes that need more than one analysis pass, missing time where one pass ended and the next began is joined, and gaps of a second or less between adjacent chapters are closed. Live since September 19, 2026; already-analyzed episodes are not automatically reprocessed.

Back-end changes

  • Apple sign-in is revoked on deletion. If you delete your account after signing in with Apple, that Apple authorization is revoked. Live for every account since September 14, 2026, regardless of installed app version.

Minor tweaks

  • Read long email addresses in Settings. In the Signed in as row, long email addresses wrap within the row.
  • Smaller app package. The app's built-in code uses less space.

https://android.stfuai.com

v2.6.19

This update fixes a case where completed episodes could return to your queue.

Bug fixes

  • Older syncs cannot undo completed episodes. An older background refresh could put an episode you marked done back in the queue after a newer refresh accepted its removal. The app now rejects that older queue.

https://android.stfuai.com

v2.6.18

Late subscription purchases can update your plan after you leave the plans screen. This release also improves Google Play account-conflict guidance and makes subscription prices easier to compare.

Bug fixes

  • Late purchases update your plan. If you left the plans screen before the store confirmed a purchase, your plan could stay unchanged until you returned or used Restore Purchases, which asks for your Apple Account password on iPhone. When the app can reach the store at startup, it now checks your purchases and keeps listening for late confirmations during your signed-in session.
  • Slow purchases get clearer messages. When purchase confirmation takes longer than expected, the plans screen says confirmation is still pending and tells you not to buy again. A confirmed purchase can update your plan afterward.
  • Late Android purchases update your allowance. If you leave the plans screen while a purchase is confirming, the verified plan and weekly allowance now appear even if a follow-up plan refresh fails. On iPhone, this case still depends on that refresh.
  • Account conflicts get clear guidance. When a Google Play subscription belongs to another account in this app, purchase results and Restore Purchases tell you to sign in with that account. If no purchase restores and another purchase could not be checked, Restore Purchases asks you to retry. If a purchase restores successfully, Restore Purchases reports success.
  • Confirmed Google Play purchases update your plan. A purchase could be confirmed but leave your plan unchanged if the app's second store confirmation failed. The app now applies the confirmed plan without repeating that step, including when recovering a purchase at startup.
  • Purchase results stay with their account. Switching accounts during Google Play purchase confirmation, startup recovery, or Restore Purchases cannot apply the previous account's result to the new account's plan. Plan refreshes also keep each account's saved plan and paused analyses separate.
  • iPhone tab labels fit their row. Labels under Library, Discover, Search, Queue, and Settings have enough room, including on iPhones with a home indicator.
  • The iPhone Subscription title sits higher. The large empty band above the title has been removed.
  • Pending payment updates preserve your plan. Google Play updates that report a payment still pending leave your existing access unchanged. A later update confirming payment can still apply the purchased plan. This change on our side is already live for all app versions.

Back-end changes

  • Absolute Nutter leaves plan selection. After your plan list refreshes, Absolute Nutter is no longer offered as a plan to buy. This change on our side is already live.

Minor tweaks

  • Subscription terms are clearer. The plans footer no longer says every price is in US dollars or that subscription benefits may change without notice during beta. Renewal and cancellation terms are unchanged. Terms of Use and Privacy Policy now open documents describing collected data, its recipients, and account deletion.
  • Yearly savings use a percentage. When the store provides comparable monthly and yearly prices, the badge compares those prices. Otherwise, it uses approximate savings from our list prices. The badge appears once the displayed price is ready and only when the saving against twelve monthly payments rounds to at least one percent.
  • Fallback prices identify US dollars. When the store has never quoted a plan on your device, its list price now includes USD. Previously received store prices retain their original currency display, including offline.

https://android.stfuai.com

v2.6.17

You can delete your account from Settings in this release. Settings changes made offline no longer hold up background work, and downloads say when storage is too low to continue.

Features & changes

  • Delete your account from Settings. A Delete Account row sits under Account, below Sign Out, whenever you are signed in. Type DELETE to confirm, and your account and your data are removed, then you land back on the sign-in screen. It does not cancel a paid subscription: cancel that with the store that bills you, or the store keeps charging you.

Bug fixes

  • A settings change made offline no longer stops background work. Changing a setting while offline used to disable already scheduled feed updates, downloads, and automatic analysis until you reopened the app. Background work now runs with your last synced settings while the edit waits to sync.
  • Downloads check for low storage. Your queue shows "Not enough storage" when space is too low to continue a download. Analyze and Re-analyze explain the hold and keep the analysis queued. Retry after freeing space; episodes already downloaded remain playable.

Back-end changes

  • Fewer repeated requests for queued episodes. If the app cannot start background work for queued episodes while it is open, retries are spaced out and eventually stop until new app activity requests another attempt.
  • Full re-uploads share the upload limit. Forcing a fresh upload for analysis now counts toward the weekly upload-attempt limit, including attempts that fail. Once the limit is reached, further uploads wait until the weekly reset. This change is already applied on our side.

Minor tweaks

  • The app no longer asks for location or camera access. It never used either one: both permissions arrived from packages nothing in the app calls, and both are gone from this build, along with several unused permission descriptions on iPhone. Nothing about how the app works changes; its permission list just gets shorter.

https://android.stfuai.com

v2.6.16

This release brings subscribing to iPhone through the App Store. It also includes every fix from v2.6.15, which never reached a public release, so the analysis-recovery and download work below is new to you either way. Analysis recovery improvements become available with the updated analysis service.

Features & changes

  • Subscribing on iPhone. The plans screen on iPhone buys and restores subscriptions through the App Store. If the App Store is not offering the plans, the screen says so and the buy buttons stay disabled.
  • A subscription stays billed by the store you bought it from. An iPhone whose subscription is billed by Google Play now says so in place of a Manage button, because Apple does not allow the app to link you there. Every other combination still gets a Manage button.
  • Two stores cannot start billing you by accident. Apple and Google cannot replace each other's subscriptions, so subscribing on one while the other still bills you would leave both renewing. When your account shows a subscription on another store, the buy buttons are disabled and name the store to cancel first. On a first run that has not reached the server yet, the app does not know, and the buttons stay live.
  • Terms of Use and Privacy Policy links on the plans screen. Both sit in the fine print under the plans.
  • No free trial offer on iPhone. The trial is a Google Play offer with no App Store equivalent, so the quota prompt does not advertise one there.

Bug fixes

  • The renewal fine print asked for 72 hours' notice; it now says 24. Both stores enforce 24 hours, so the old text asked for three times the notice either one needs. It also names the store that would bill a purchase on the device you are holding.
  • A plan the store is not offering can no longer be tapped. Its price falls back to the one the app has on file, and the button used to stay live and then fail with a generic error. It is now disabled and says the plan is unavailable. If the store returns no plans at all, a note above them says so and offers Check Again.
  • A lapsed subscription says what happened. When a store reports a subscription as expired, canceled, or revoked, the app says which one and tells you to start a new subscription, instead of suggesting a retry that cannot work. An unpaid renewal asks you to fix your payment method first.
  • Unreachable downloads report a failure. If you are online but an episode's host repeatedly cannot be reached, the download reports a failure and can retry later. Offline waits and network-permission failures keep waiting without using up episode retries.
  • Recover a missing quota reset time. If analysis is blocked and the reset time could not be loaded, the app now checks again automatically instead of waiting for another action to refresh it.
  • Resume interrupted analyses. With the updated analysis service, new analyses can resume the same attempt after a lost connection or expired upload link. A result for a replaced download cannot overwrite the current recording's skip markers.
  • Keep downloads when analyses run out. With the updated analysis service, an analysis refused for lack of available analyses after uploading keeps your download and previous markers. Automatic retries wait until the app confirms that analyses are available again.
  • Recover reanalysis from outdated recordings. With the updated analysis service, Re-analyze can upload the retained download when a saved transcript cannot be matched to it, without replacing the download.
  • Keep replacement recordings' markers separate. A newly downloaded recording waits for analysis instead of immediately inheriting the previous recording's skip ranges and chapters.
  • Playback notification buttons. On Android, a paused episode's notification could remain without playback buttons during startup. The app now completes that update without waiting for another tap.

Minor tweaks

  • One more permission on the store listing. The app declares Android's usage-access permission so a diagnostic export can include screen-on time. Nothing requests or uses it unless you switch it on yourself in the developer settings, where it is off by default.

https://android.stfuai.com

v2.6.15

This release improves recovery from interrupted analyses and keeps a replacement download from inheriting the previous recording's skip markers. Analysis recovery improvements become available with the updated analysis service.

Bug fixes

  • Unreachable downloads report a failure. If you are online but an episode's host repeatedly cannot be reached, the download reports a failure and can retry later. Offline waits and network-permission failures keep waiting without using up episode retries.
  • Recover a missing quota reset time. If analysis is blocked and the reset time could not be loaded, the app now checks again automatically instead of waiting for another action to refresh it.
  • Resume interrupted analyses. With the updated analysis service, new analyses can resume the same attempt after a lost connection or expired upload link. A result for a replaced download cannot overwrite the current recording's skip markers.
  • Keep downloads when analyses run out. With the updated analysis service, an analysis refused for lack of available analyses after uploading keeps your download and previous markers. Automatic retries wait until the app confirms that analyses are available again.
  • Recover reanalysis from outdated recordings. With the updated analysis service, Re-analyze can upload the retained download when a saved transcript cannot be matched to it, without replacing the download.
  • Keep replacement recordings' markers separate. A newly downloaded recording waits for analysis instead of immediately inheriting the previous recording's skip ranges and chapters.
  • Playback notification buttons. On Android, a paused episode's notification could remain without playback buttons during startup. The app now completes that update without waiting for another tap.

https://android.stfuai.com

v2.6.14

The iPhone app is the theme of this release. It finds and downloads new episodes on its own, signs you in with your Apple ID, slides podcasts and the Feed in as screens of their own, and keeps your place, your downloads and your analyses where they belong. Both platforms get a round of sleep timer fixes: setting or canceling a timer no longer disturbs an episode's progress, an end-of-chapter timer stops at the chapter end you meant, and the countdown stops stepping backwards. Analysis requests also stop vanishing when the app cannot send them at that exact moment; they wait, and the episode says so. On our side, analyses that stalled long ago now reach an end instead of appearing to run forever.

Features & changes

  • The app runs on iPhone. Your account, subscriptions, queue, downloads and analyses are the same ones. Bullets below that name the iPhone are either new there or fixed there; Android behavior is unchanged except where a bullet says otherwise.
  • iPhone finds and downloads new episodes on its own. iOS decides when to hand the app that time rather than the app keeping to a schedule the way Android does. Wakes favor a charging phone on Wi-Fi and can be hours apart, so each pass is sized to a short window and whatever it does not finish resumes on the next wake.
  • Sign in with your Apple ID. Apple ID and email are the two options on iPhone. Sign in with Google is Android-only for now, so the iPhone sign-in screen does not offer it.
  • Podcasts and the Feed slide in on iPhone. They open as screens of their own instead of swapping instantly, a swipe from the left edge takes you back, and the mini player stays docked while you browse.
  • Subscriptions are read-only on iPhone for now. The plans and prices are there to read, with a note on the screen saying so. An existing subscription keeps working, is still billed by Google Play, and Manage Subscription still opens Google Play.

Bug fixes

  • Analysis requests now say they are waiting. Tapping Analyze or Re-analyze hands the request to background processing, and the episode reads "Analysis waiting" in your queue and in the full player instead of showing nothing at all; the first couple of minutes still show the usual spinner. Tapping the control again neither starts a second analysis nor spends another weekly analysis, and holding it in the full player cancels the request. A request the app could not send the moment it was prepared, because your settings or queue had just changed, your network settings did not allow the upload right then, or two analyses were already running, used to be thrown away and the episode went quiet; those wait now and start on their own. For an episode that already has an analysis, your queue shows the caption with no button beside it: press and hold the row and pick Re-analyze there.
  • Returned analysis credits no longer leave the app stuck. When the service returns an analysis credit after a failed upload, the remaining count can rise and analyses waiting on the old zero can continue once the app has a fresh quota update. Notices shown while no analyses are available now say a failed upload may return one within a few hours, instead of saying the block lasts until the weekly reset.
  • An upload ceiling no longer reads as a spent week. An analysis refused because too many uploads were started in the current week was reported as the weekly analysis limit, so the app said no analyses were left when some were. It explains the upload limit plainly now, leaves the weekly count alone, keeps the episode eligible, and makes automatic analysis wait before trying again.
  • Sleep timers no longer disturb an episode's progress. Setting or canceling one while an episode played could move the progress bar backward and grow the remaining time, and the bar could keep jumping while a timer ran. Both platforms.
  • An end-of-chapter timer stops at the right chapter end. Setting one mid-episode could stop playback almost immediately, because the app picked the next chapter end from a saved position that trails the player by a few seconds. It uses where the episode is actually playing now, and the option arms the chapter end the player will really stop at. The same applies where the app re-applies a timer the player is no longer holding, including across an episode change; an episode with no chapters gets no timer there rather than one placed from the previous episode's chapters. Both platforms.
  • The sleep timer countdown stops stepping backwards. The remaining time on the notification and the lock screen was worked out from the playing position while an episode ticked along, but from a saved position that trails it whenever something else redrew the notification. Because the text rounds up to whole minutes, a redraw between ticks could show a minute reappear before it counted down again. End-of-chapter and end-of-episode timers; a countdown you set in minutes was never affected. Both platforms.
  • End of chapter is offered only when there is a chapter to stop at. The option appeared whenever an episode had chapters, including when every remaining chapter end was already behind you, or when the chapters left were three quarters or more skippable segments, and tapping it then failed with an error or stopped playback within seconds. If the last chapter end passes while the sleep timer sheet is open, the option grays out rather than disappearing, so the choices cannot slide under a finger already on its way to one.
  • A tap beside a sleep timer choice no longer closes the sheet. The sheet's own title, its grab handle and the empty space around its rows used to dismiss it, so a tap that landed just wide of "30 min" closed the sheet instead of setting a timer. Those taps do nothing now, and the dimmed area above the sheet is what closes it. Both platforms.
  • Assistant can no longer see an earlier sign-in's queue. Google Assistant, on the phone or in the car, can browse this app's queue to answer requests about it. The queue saved on the device outlives signing out or signing in as someone else, so what Assistant could see was the previous account's episode titles, podcast names and artwork, including when nobody was signed in at all. It finds nothing there now unless the saved queue belongs to your current sign-in, and finds your queue again once that has been rebuilt under it. Nothing changes while you stay signed in, and no list inside the app changes.
  • Signing out clears the old account's covers. Signing out or replacing a sign-in clears the previous account's widget and notification cover and removes the cover files the media controls use, and cover updates still arriving from that sign-in are refused.
  • A cover that loads late still reaches the media controls. The app starts preparing each cover while it builds the queue it hands to playback, and a cover that finished after that handoff could not get through, so the media controls showed that episode with no artwork until you started a different one. It affected any episode whose cover the app had not already prepared since you opened it, which is at least the first episode you play each time. On iPhone that means the lock screen and Control Center; on Android the playback notification and the home-screen widget, where you will see a difference only for a cover Android had not already prepared for itself.
  • Segment types you switch off stay off in newly queued episodes. Turning off one of the four kinds of skippable segment, whether everywhere or for one podcast, was ignored for an episode restored from your account's saved queue, added to your queue, or started from a podcast's episode list, and that episode skipped the type anyway. Episodes added from now on leave it alone, both when the app plays them from your queue and when it downloads them. The episode you are listening to picks a change up straight away, as it always did, and an episode already sitting in your queue keeps the segments it was added with until it is analyzed again or it leaves your queue and comes back. Applies to episodes the app had already analyzed when they were added.
  • Back-to-back skips no longer leak on a newly queued episode. v2.6.13 stopped the app playing about a second of the second segment where one skippable segment runs straight into the next, and said one episode could still leak until a follow-up; this is that follow-up. An episode already sitting in your queue still leaks until it is analyzed again or it leaves your queue and comes back.
  • The app tells the phone it is a dark app. It no longer follows the phone's own light and dark setting. On iPhone the surfaces the system draws for itself follow, so the keyboard and the share sheet come up dark too. On Android the system keeps drawing its own text-selection menu and keyboard to match the phone, so those still come up light on a phone set to light mode.
  • Screen readers reach the mini player one part at a time. The episode title activates to open the full player, and the play/pause and skip-forward buttons alongside it are labeled, with the skip label naming your configured interval; neither button carried a label before. On iPhone the whole row was announced as a single button, which left those two unreachable there. The full player's play/pause and both skip buttons are labeled too, and on iPhone the sleep timer's rows, from "End of episode" through "2 hr", are each their own item, with the dimmed area that closes the sheet announcing itself as a Close button.
  • Sheets no longer expose a nameless control. The Playback Speed, Volume Boost, Sync Frequency, Silence Skipping, Skip Forward Interval and Skip Backward Interval pickers, the weekly usage limit notice, and the Auto-Analysis Queue Depth picker when automatic episode analysis is on, all put the dim area that closes the sheet into the accessibility tree as an unlabeled control a screen reader could land on. It is no longer there, and each sheet's own labeled close button is unaffected.
  • A screen reader can reach inside the iPhone pickers. The Playback Speed, Sync Frequency, Skip Forward Interval and Skip Backward Interval pickers, the weekly usage limit notice, and the Auto-Analysis Queue Depth picker when automatic episode analysis is on, were each announced as a single unnamed item with nothing inside it to reach, so the title, the rows and the Done button were all invisible to VoiceOver while plainly on screen. The speed picker's plus and minus buttons are reachable now but still unnamed.
  • Trending and search stop spinning forever. Discover's "Trending Now" could spin indefinitely if either Apple request behind it never answered, and a podcast search could do the same. Trending gives each request 15 seconds now, which puts the worst case at about half a minute: with no saved list you get "Failed to load trending podcasts" and a Try Again button, and with one saved that list stays on screen and the spinner stops. Search gives up after 10 seconds and settles into its usual "No Results" state.
  • A slow sign-in restore is no longer thrown away. If loading your account's queue and playback history took more than about five seconds right after you signed in or opened the app, the app gave up on that answer and kept whatever queue it already had, which is empty only on a fresh sign-in, a reinstall or a first launch. It also stopped saving your listening position and played episodes to your account until you next left the app and came back. It uses that answer when it arrives now, and your position and played episodes resume saving right then, with your queue following unless a podcast feed left one of its rows unreadable.
  • A restore that fails part way through is picked up again. A sync that read your account successfully and then failed while restoring your queue and saved positions used to leave the app acting as though the restore had finished. It keeps cloud queue writes on hold now and picks the restore up when you return to the app. Whether it also holds back the position and played-episode writes the player makes as you listen depends on how far it got: before the restore has been applied on the phone it does, and after it has it does not. Marking an episode done or not done is unaffected either way. On Android the failure after a successful read used to clear the hold on its way past and nothing retried for the rest of that session; on iPhone neither the clearing nor the retry existed, so the hold was never lifted at all.
  • The iPhone player shows where you actually are as soon as it appears. Returning to the app, or reaching a screen with the mini player or the full player on it, drew the elapsed time and progress bar from the last saved position rather than the playing one, so both started a few seconds behind and stayed wrong for about a second. The mini player's elapsed time could also look frozen at a single time until the episode changed, even while audio played normally. Android already behaved this way.
  • Play starts the episode on the first tap on iPhone. With playback stopped or the queue run out, the tap did nothing: the request was refused at two separate gates. On the episode still loaded from the last time you used the app, it answered "Failed to play episode" and only a second tap worked.
  • Episode downloads finish on iPhone. Every download failed at the final step that publishes the finished file, so no episode could be downloaded at all, and episodes sat stuck in the queue where they could never be played or analyzed. Tapping Play on an episode that has not finished downloading now tells you so instead of looking like the tap did nothing, and the notice that a download is waiting for a connection reaches the iPhone too.
  • Your place in an episode survives closing the iPhone app. The iPhone playback runtime wrote your position down every few seconds, but the app never adopted it into the place it saves, so reopening restored the older position and wrote it over the accurate one. A long stretch of listening could disappear with no way to get it back.
  • iPhone storage from finished and removed episodes is reclaimed. The routine cleanup pass that catches finished episodes, and removed episodes whose file outlived the removal, skipped itself on every run, so that leftover audio accumulated forever.
  • Podcasts served over plain http load and download on iPhone. iOS blocks those connections by default, so those shows failed there while working normally on Android.
  • Analyzing a downloaded episode works after an update or a reinstall on iPhone. iOS gives the app a new storage location on those, and the analysis upload still looked for the audio at the old one, so it failed saying the file was not found on a file that was sitting right there.
  • A new-episode notification is taken off your iPhone when you no longer need it. The app posted the notification without any handle it could use later, then recorded the removal as done without asking iOS to remove anything. So the notification sat in Notification Center pointing at an episode the queue no longer had, whether you removed that episode, finished it, started playing it, or turned that podcast's notifications off.

Back-end changes

  • An upload that fails returns your analysis. If an attempt fails before its upload stage has finished, its analysis returns when the service confirms the failure. Some failures settle quickly; an expired upload waits for the service's inactivity window and next inspection, so it can take a few hours. Repeating the identical request does not use another analysis or restart the wait, while a changed retry can resume the live attempt and restart its wait, or start another attempt that temporarily uses an additional analysis before it returns, so the count can fall and later rise during the same week. Qualifying past failures have also been removed from usage history, and failures after the upload stage still count. A change on our side, already applied.
  • Old stuck analyses finally reach an end. An episode whose analysis stalled long ago, in a processing stage we have since retired, could appear to analyze forever. Those resolve now: one we already hold a transcript for finishes for free, and the rest report a failed analysis so the app stops checking on them. Finishing one of them no longer counts against this week's limit, because it counts against the week you first asked. A change on our side, already applied.
  • A rounding mismatch no longer fails a good analysis. A finished analysis could be recorded as failed because the exact figure it produced was compared against the rounded figure we had saved. A change on our side, already applied.
  • Repeated failed uploads can now hit a weekly cap. After many failed attempts to upload one episode for analysis in a single week, about five times your normal weekly count, further attempts are turned away with the same message you see for reaching your analysis limit, until the next week starts. It is aimed at abuse and repeated failure rather than ordinary use, so most people will never see it. A change on our side, already applied.

Minor tweaks

  • Password managers can fill the sign-in fields. The sign-in and change-password fields advertise themselves to your manager, and the keyboard's action key moves to the next field and submits the form instead of doing nothing. On Android your manager offers to fill and to save from those hints. On iPhone the keyboard's Passwords key reaches a saved login, but iOS will not offer a stfuai.com password on its own, and will not prompt to save a new one to iCloud Keychain, until the app declares an association with the site; managers that do their own matching, 1Password and Bitwarden among them, are unaffected.
  • Steadier controls and steadier digits. The chapter back and forward buttons in the full player are larger and use proper chevrons instead of text arrows, and the Feed's back button matches the chevron the rest of the app uses. The player's elapsed and remaining times, its sleep-timer countdown and the mini player's time line use fixed-width digits, so they stop shifting sideways every second. Both platforms.
  • iPhone screen furniture behaves like iOS. The bottom tab bar uses the standard iOS height, the search keyboard can be swiped away, and the required-update screen sends you to the App Store rather than Google Play.
  • The iPhone progress bar has a scrubber knob. It is draggable, and it enlarges while you drag it.
  • iPhone menus and pickers rise from the bottom. Episode action menus, the sleep timer and podcast settings all appear as sheets rather than in the middle of the screen, each with a grabber you can drag down to dismiss, and each leaving room above the home indicator.
  • iPhone touches answer back. A light tick on play, pause and either skip button; a firmer one when you pick up a queue episode to reorder it; a selection tick when a value lands, such as choosing a speed or dropping a reordered episode; a confirming buzz when you mark the playing episode done from the full player; and a warning buzz when a sign-out or reset-settings confirmation appears. Android is deliberately unchanged: these are iPhone-only.
  • Artwork uses less memory in the background. The playback notification and the home-screen widget release rebuildable cover images when Android asks the app to trim memory, which lowers background memory use without removing downloaded episodes or interrupting playback.

https://android.stfuai.com

v2.6.13

Analysis is the theme of this release. Requests that got no answer used to re-send themselves, sometimes for days, and could quietly spend a second weekly analysis; they now ask what became of the first attempt and stop instead of guessing. On our side, a weekly analysis is refunded when an upload dies before any work happens, and refunds for past ones have already gone out. The queue and the player also got a round of fixes: a stale refresh can no longer revert your queue, finished episodes stop coming back to it, and Mark as done tells you when it did not stick.

Features & changes

  • Share an episode from its details. The episode details popup now has a Share episode button, offering the same options as an episode's action menu: a link to the episode, and a checkbox to start it at a chosen time. It appears wherever episode details open, and creating a link needs you to be signed in.
  • Lists reopen in the order you chose. A podcast's episode list remembers newest first or oldest first for that show, and the spot you left off at is now saved in either order. Before, flipping a list to oldest first meant the spot was never recorded and the list reopened newest first anyway. Applies to a podcast's own list rather than the Feed, and saving a spot still needs hide-finished episodes turned off.

Bug fixes

  • A repeat analysis request stops re-sending forever. Asking to analyze an episode this device had already analyzed, or the app finding one episode under two feed addresses, could re-send the identical request on every background pass for days, with nothing on screen about it. Nothing was charged, but it cost battery and data. Such a request now retries for about a quarter of an hour and then stops: as a failed analysis you can retry when it was you who asked, and silently when the app found the duplicate itself.
  • A re-analysis the service never answers stops costing a second analysis. When a Re-analyze request got no answer, the app re-sent it, and once the first one had finished that second send spent another of your weekly analyses. The app now asks what became of the first request before re-sending: if it is still running it joins it, and if it finished it collects that result, so the analysis you paid for is the one you get. Past an hour, or when the answer does not match your request, the episode says the analysis failed and leaves the choice to spend another to you.
  • An unanswered analysis request stops retrying into a second charge. Since v2.6.12, an Analyze request that got no answer at all was re-sent every half hour indefinitely, and the service counts a repeat as new work after roughly two hours, so it could take another weekly analysis with nothing shown on screen. The app now gives up about an hour and three quarters after the first send. One you started says the analysis failed and waits for you; one the app started is left alone, and Analyze still works on it.
  • One slow upload no longer stalls every analysis. An upload for analysis gets fifteen minutes, and a large episode on a slow connection can run out. That used to read as a lost network connection and put every analysis on hold, so results for other episodes arrived late and nothing new started. Running out now counts as that one episode's failure. It retries after a wait that starts at fifteen minutes and doubles up to four hours, and tapping Analyze retries it immediately.
  • One stuck analysis no longer blocks the rest. An analysis that kept failing the same way when the app asked for its status held one of the two analysis slots for the whole of every wait, forever. Two of those and nothing new started, whether you tapped Analyze or the app tried on its own, with nothing explaining the block. Such an analysis now gives up its slot except for the last ten minutes before each attempt. The analysis itself is left as it was, because giving up on it would throw away one you already spent.
  • A dead analysis stops ending in silence. When the analysis service declared an attempt dead, or results arrived and could not be saved to your device, the episode went back to looking as though nothing had happened. Both now read as a failed analysis on the queue row and in the player, and a tap starts a fresh one. The app will not start that itself, because these endings can keep the weekly analysis they spent; the one exception, an upload that expired, is refunded on our side.
  • One podcast, one subscription, whatever the address looks like. When the same feed was subscribed under two spellings of its address, http on one and https on the other, with and without www., a trailing slash, a tracking tag, a written-out standard web port, an anchor, or the same parameters in a different order, it counted as two podcasts: the show appeared twice, its episodes could land in the queue twice, and an episode analyzed under one spelling could be analyzed again under the other. Your account now keeps one of the two and drops the other on the next sync while you are signed in, and the two share one analysis record from here on. Two things to know. Per-podcast settings you had saved under the address that gets dropped stop applying, so that show falls back to your global settings. And a second device still on an older release keeps showing the duplicate and puts it back on each of its own syncs until you update that device too. Unsubscribing removes every spelling, and episodes already downloaded or queued stay in your queue.
  • The Queue no longer reverts to an older version of itself. The queue is refreshed at startup, after a sync, and after each change, and whichever refresh finished last used to win. A slow one that had read the queue before a change could put a removed episode back or drop a newly added one until the next refresh corrected it. A refresh older than what is already showing is now ignored.
  • Finished episodes stop coming back to the Queue. Your account's saved queue can still list an episode you finished somewhere other than the Queue, and signing in or a background sync put those back, sometimes taking over as the current episode. Episodes your account records as finished, and ones this device finished but has not reported yet, are now left out. An episode explicitly marked not done still comes back, and whatever is playing is never removed.
  • No more "Marked as done" for a mark that was lost. Marking the episode you are currently playing done, from the Feed, the Queue or a podcast's episode list, could show it as done and report success when nothing had been saved. The episode is left alone now with no success message, and a multi-select batch counts it among the ones it could not mark and carries on.
  • Mark as done says when it did not stick. In the full player, marking the current episode done with nothing up next used to leave the screen exactly as it was. If the player is still showing that episode afterwards, it now says whether the mark went through, did not, or, while you are signed out, could not be confirmed.
  • Playback controls no longer freeze for good. When the part of the app that plays audio stopped answering, Mark Done never finished and from then on play, pause and scrubbing ignored every tap until you restarted the app. That wait is now bounded: the controls stay usable and the app tells you playback is not responding and that the episode was left alone.
  • Scrubbing no longer cancels an episode change. Dragging the progress bar, or using its accessibility seek action, during the moment an episode is being marked done or handed to the next one could leave playback stopped with nothing loaded. That seek is now ignored and the bar returns to the live position.
  • Two skips in a row no longer leak the second one. Where one skippable segment runs straight into the next with no gap, an ad into a self-promotion or an intro into an ad, the app skipped the first and played about a second of the second one. Both now go in a single skip. Needs both segment types switched on, which they are unless you turned one off, and an episode the app has analyzed. One episode restored from your account's saved queue can still leak until a follow-up fix.
  • A spent countdown sleep timer stays spent. A countdown timer could come due while nothing was watching: playback stopped by headphones or another app, with the phone asleep or the app killed. It was then treated as going off whenever the app next looked, so your sleep-timer restart window never ran out and a resume hours later armed a fresh timer of the full length. That window now runs from when the timer was due. When the timer actually stops your audio is unchanged.
  • Signing in no longer stalls startup on the queue saved here. When the queue stored on this device belonged to an earlier sign-in, startup got stuck behind an error and Retry hit the same failure every time. Startup gets past that queue now and rebuilds it under the current sign-in once your cloud queue restores. With no network, the rebuild waits for a launch or a return that has one.
  • Returning to the app mid-restore no longer skips its housekeeping. Coming back while your queue was still restoring from the cloud, or before the first episode had downloaded on a fresh sign-in, hit an internal error and skipped loading the top episode, clearing finished episodes out of the queue, and checking your subscriptions for new episodes. That work now waits for the restore instead of being dropped. The player still waits for a current episode's download, as it always did.
  • Your queue restore retries after a feed failure. When an episode in your cloud queue could not be loaded from its feed, the app held back saving your queue to your account so that episode would not be dropped, and nothing revisited it until the next cold start. It now retries the next time you bring the app back.
  • Saved spots survive a big library better. The app keeps the spot for the 25 podcast lists you opened most recently, and opening a list now counts as recent; before, only scrolling to somewhere worth saving did, so a show you read from the beginning aged out while shows you glanced at stayed. Two more ways a spot could vanish are addressed: one saved on a phone whose clock had moved backwards is fixed outright, and one saved in the first seconds after launch is now protected for the list you are looking at. The clock case needed 25 lists to be remembered already.
  • A spot at the list's end stays put. When the spot you left off at sits at the very end of a podcast's episode list, reopening it now leaves the list there. Before, it scrolled to the end, held the "Returning to where you left off" notice, then jumped to the top. Applies to a podcast's own list with hide-finished episodes off, which saving a spot needs anyway.
  • The last row of an episode list clears the mini player. On a list long enough to scroll, with an episode loaded in the mini player, a podcast's episode list now leaves room at the bottom. The final row used to sit behind the player with no way to scroll it into view.
  • The Your Library heading no longer breaks a letter at a time. In a very narrow window such as split-screen, the Add RSS and Feed buttons kept their full width and left the heading almost none. They drop to a second line now.
  • The local data reset says it clears your statistics. The confirmation for wiping this device's saved data listed the queue, history and downloads, and said anything synced comes back. Your Listening Statistics are deleted too and are never synced, so the silence-removed totals start from zero. All three screens say that now; what the reset deletes has not changed. It is only offered after repeated failed starts.
  • Removed silence is less likely to go uncounted. Silence that Listening Statistics had measured but not yet saved could be discarded while parts of the app were shutting down, and the usual save then stopped for as long as the player stayed up. It took unlucky timing during the app's own recovery from a failed start. Totals already saved were never affected.

Back-end changes

  • A weekly analysis comes back when an upload dies before any work starts. Your weekly analysis is spent when the service accepts the request, before the audio is sent, so an upload that expired, never landed, or failed to hand off left it spent on nothing. It is refunded automatically now, and refunds for past ones have already been issued. It is not instant: an upload that simply stops responding is settled two hours after the last sign of life, so the remaining count can fall by a few before it climbs back. A change on our side, already applied.
  • Episodes from some feeds can be analyzed at all now. One publisher wraps its episode IDs in quote marks, and every analysis of every episode from a feed like that was refused as soon as the audio started uploading, then sat until it timed out two hours later, spent a weekly analysis, and reported only that the upload expired. Those uploads go through now. A change on our side, already applied.
  • An interrupted handoff no longer leaves an episode analyzing forever. If the service stopped between taking your uploaded file and handing it to transcription, the episode sat showing an analysis in progress permanently, and nothing on the phone or the server would move it. That now fails after about twenty-five minutes, so the episode says the analysis failed and a tap starts a fresh one, with the weekly analysis refunded. A change on our side, already applied.
  • Fewer analyses fail for no reason you can see. An analysis whose transcription came back empty used to fail outright; it is retried now. A change on our side, already applied.
  • An analysis can now show as running for longer before it fails. Two cases changed in the other direction. When the transcription service may already have accepted paid work but its answer was lost, the analysis is held open for up to a day rather than failed in about twenty-five minutes, which protects the analysis you spent. And a failure the transcription service already reported can take up to about fifteen minutes longer to surface. In both, the episode shows as analyzing for that time and then reports what happened. Changes on our side, already applied.
  • Analysis history numbering adds up again. Refunding a weekly analysis removed it from the week's count without renumbering the entries that stayed, so the list could show "10 of 10" under a header saying 6 used. Each entry is now numbered against the entries that remain. A change on our side, already applied.

Minor tweaks

  • A paused player checks in less often. While nothing is playing, the app checks and reports your position about every two seconds instead of four times a second, on screen or in the background, which should cost slightly less battery over a long pause. Playing audio still checks four times a second, as does a paused episode that is still loading, for up to ten seconds at a time. Scrubbing while paused still reports the new spot right away.
  • The player's silence button reads clearer. It says "Skip Silence" beside the current mode, so a mode of Off no longer reads as though silence itself were switched off.
  • The app writes far less to storage in the background. It keeps a rolling diagnostic file so a problem report has a trail to send, and it used to rewrite that whole file every couple of seconds for as long as anything was being logged. It appends only the new lines now.

https://android.stfuai.com

v2.6.12

Silence skipping arrives, off by default: a setting with three strengths, a mode you can set for one podcast, a Silence button in the player that changes only the episode you are listening to, and a Listening Statistics screen showing how much dead air it removed. The rest of the release is analysis reliability. Eight faults are fixed, among them analyses that stalled forever, ones that disappeared from the queue with nothing said, a single waiting request that stopped every other analysis on the account, and a phone waking in the background for work it would then refuse itself. An analysis the service gives up on now gets one automatic retry. Two volume boost faults are fixed as well, and one more fix is on our side rather than in the app, so it has applied since September 2 whatever version you run.

Features & changes

  • Silence skipping, off by default. Settings has a Silence Skipping row offering Off, Mild, Medium, and Aggressive, and a single podcast can be set to its own mode in Podcast Settings. Either change applies at once: to everything in your queue, to anything already downloaded, and to the episode playing unless you chose a mode for it from the player. A podcast you set individually keeps its own mode when you change the one in Settings, until you revert it in Podcast Settings.
  • The player's Silence button lasts one play. It changes only the episode you are listening to, saves no setting, and beats your settings for that episode while it is in force. It survives pausing, leaving the app, and the app closing and reopening. Playing something else, moving to the next episode, marking this one done, or finishing it goes back to whatever your settings say, and so does playing this episode again after playback stops.
  • Listening Statistics shows the silence removed. The screen lives in Settings and breaks the total down by podcast and by episode. It measures source audio, so the listening time it saves is smaller above 1x speed. The mode you pick and these totals stay on this device and do not sync to your other devices. Signing out sets the global mode back to Off and returns every podcast you set individually to following it; your totals are kept, so signing back in on this device shows the same numbers.
  • A failed analysis gets one automatic retry. When the analysis service took an episode and then reported it could not finish it, tapping Analyze used to be the only way back. It now tries once more, at least an hour later, on the next background pass that finds the episode still near the top of your queue, still downloaded, and automatic analysis still on for that podcast. One retry per episode, so an episode that keeps failing can use two of your weekly analyses instead of one. Analyses you start yourself were never limited and still are not.

Bug fixes

  • A volume boost hidden by capitalization now applies. The boost you set for one podcast is matched to that podcast whatever the capitalization of its web address. Before, a difference in capitalization alone hid it completely: Podcast Settings showed your global level rather than the custom one, and playback used the global level too. Restoring your settings on a new device or after a reinstall is where the two spellings can differ.
  • Volume boost changes reach queued episodes. Changing the boost, globally or for a single podcast, applies at once to the episode playing, to everything in your queue, and to anything already downloaded. Before, a new level only reached episodes added to the queue after you changed it; one already in the queue kept the level it had when it was added, however long it sat there.
  • An unanswered analysis request keeps retrying. When a request got no answer at all, the connection dropping mid-call or a reply that could not be read, the app gave up after the sixth try, marked the episode "Analysis failed", and started fresh work as if nothing had been sent, even though the service might have accepted and charged it. Such a request now keeps its place and keeps retrying, waiting up to half an hour between tries, until the service answers; a repeat of the same request is answered from the service's record rather than charged again, unless the service has since marked that job failed. Tapping the same button again replaces the waiting request with a fresh one. A request the service refuses still gives up after six tries.
  • A re-analysis the service refuses now recovers itself. When you tap Re-analyze and the service answers that the episode and transcript the app saved no longer belong together, the app used to mark the analysis failed, and every later Re-analyze tap sent the same refused details again; only a long-press Force re-upload got past it. That answer now makes the app upload the episode afresh, which spends one analysis unit, and the result replaces the saved details. The reading stays failed only if that fresh upload is refused too.
  • Three silent analysis endings now show as failed. A recovery re-analysis the app runs on its own when the service reports the transcript is gone, a Force re-upload the service answered with its older saved result, and a request the app could not build because the episode was missing a detail. Each now reads as a failed analysis on the queue row and in the player for an episode in your queue or playing, and a fresh tap starts over. Each used to drop its analysis indicator with nothing said whenever the app was no longer watching the request as it ended, which is any time the app was in the background, the download was still finishing, or the device was offline. Episodes an earlier version already left in one of these states are read the same way.
  • A retrying analysis stops blocking all others. While a refused request waited out its retry delay, nothing else on the account could start analyzing: not another episode you tapped, and not the automatic analysis of newly downloaded episodes. The block lasted as long as the request kept retrying, about fifteen minutes for an ordinary refusal, until the weekly reset for a request parked on a spent allowance, and with no end for one waiting on a sign-in or an app update. A request is now held open only while its answer never arrived, and everything else carries on around one that is merely waiting.
  • The app stops waking up for analyses it will not run. After giving up on handing an episode to the analysis service, the app went on deciding that episode needed analyzing, waking up in the background to do it, and then refusing itself, for as long as the episode stayed near the top of your queue, still downloaded, with automatic analysis on for that podcast. Nothing came of it but battery. Those episodes are left alone now, tapping Analyze still works on any of them, and an episode whose download failed is unaffected.
  • A stuck analysis now finishes itself. An analysis could sit on a percentage that never moved, because the audio never reached the analysis service and nothing on the phone was going to send it; holding the percentage to cancel was the only way out, and it threw away an analysis you had paid for. If the app reaches it while the service is still waiting for that audio, and the episode is still downloaded and your network settings allow the upload, the app now sends the audio and finishes the analysis, normally using no more of your weekly analyses. If the service had already given up first, the episode says the analysis failed; if the audio still cannot be sent, it says so too and waits for you to tap.
  • A stuck analysis stops rechecking so often. Repeated failed checks on an episode being analyzed are meant to wait longer after each failure, up to half an hour, so a bad stretch does not drain your battery. That only happened while every attempt failed in the identical way; when the trouble varied from try to try, which is routine, the wait dropped back to 30 seconds every time. Failures that amount to the same trouble now count as one run. The trade is that an episode which has backed off to the half-hour wait is not looked at again until that wait is up, even if the service came back a minute after the last try.
  • An analysis stalled mid-send stops being written off. When an analysis stalled while the episode's audio was still being sent, the app treated it as though the audio had arrived, which took it off the sending path for good: it could never finish, only be given up on, and until it was the episode showed an analysis in progress and refused a new one. The app now recognizes that the audio still has to go, so the analysis can resume and finish, and it checks in every couple of hours instead of every thirty seconds while it waits. Episodes an earlier version left in that stalled state are picked up on the next round of background work without anything from you; ones it had already written off are not recovered here.

Back-end changes

  • A repeat analysis stops crossing two episodes. Rarely, when we already held the analysis you asked for, our reply named the transcript but not the episode it belonged to, and the app could pair that transcript with a different episode of the same podcast. You would see the wrong episode's analysis, or lose one of your weekly analyses to the app recovering from it, or get a re-analysis that failed and kept failing. We now name the episode alongside the transcript, so the two cannot cross. This is a change on our side and already applies, whatever version you run.

https://android.stfuai.com

v2.6.11

Background analysis stops draining the battery of an idle phone, and it stops going quiet when something goes wrong. An analysis that got stuck used to hold the phone out of sleep indefinitely; one that failed used to vanish from the queue and the player with nothing said. A separate fault could leave the app stuck on "Couldn't finish starting" on every launch, which took widget playback, subscription checking, downloading and analysis down with it. That one is fixed, and a phone already stuck this way starts normally on the update. On our side, ads are missed less often at the break, which has applied since late August whatever version you run.

Bug fixes

  • A stuck analysis no longer holds an idle phone awake. While the app worked through analyses in the background, one whose next check time had passed and that no check could move along was treated as the most urgent thing there was: a full check every 30 seconds, and a fresh ten-minute stretch of them whenever the last ran out, for as long as it stayed stuck. The app now ends that burst as soon as a check leaves such an item where it found it. Nothing is abandoned; the rest waits for the ordinary scheduled check, which on an idle phone means at least half a minute and often much longer. Automatic analyses need background work left on in Settings, and one you start yourself reaches the same checks with that setting off. With something playing there is no battery change to look for, because playback holds the phone awake anyway.
  • The app could get stuck on "Couldn't finish starting". The app readies a paused episode in the background, most often when a download finishes while nothing is playing. Once playback had been stopped, readying that same episode again was mistaken for the earlier one. If your queue had changed in between, a new episode or a finished download being enough, startup then failed permanently: "Couldn't finish starting" with a Retry that could not succeed, on every launch, taking widget playback, subscription checking, downloading and analysis with it. If your queue had not changed, nothing was said at all: the app told the player and the widget an episode was ready to resume while saving nothing, so the next launch had nothing to resume. Both are fixed, and a phone already stuck this way starts normally on the update, with nothing to clear and no reinstall.
  • A failed analysis no longer just disappears. When the analysis service reported that it could not finish an episode, the progress indicator vanished from the queue and the player and nothing took its place. Those episodes now read "Analysis failed", and a tap starts a fresh analysis. Automatic analysis still will not pick a failed episode back up on its own, so that tap is what restarts it.
  • A finished analysis is no longer lost while it is being saved. While your results were being written out, one of the two replies the service sends to say so was not recognized, so the app stopped waiting for them and the episode quietly stopped showing an analysis. Unfamiliar replies are now waited out, and a reply saying the analysis cannot be found is followed up before anything is concluded from it. Either way the results are collected when they arrive.
  • Re-analyze no longer gives up on an unfamiliar reply. Tapping Re-analyze asks the service to look again at the transcript it already holds. An answer the app did not recognize used to stop the request outright and tell you the service had turned it down. Those are now retried on a widening delay. Two answers still change course: if the service no longer holds that transcript the app usually sends the episode up again, and if it says the saved details do not match what it has, that episode reads as a failed analysis, because asking again with the same details would only get the same answer. Getting it analyzed after that means holding Re-analyze for Force re-upload.
  • An abandoned analysis stops nagging the server. An analysis abandoned partway through being sent, with nothing left that could finish sending it, used to make the app wake about every 30 seconds whenever the phone was awake, then ask the server on every wake indefinitely. Those are now watched the same way as any other analysis you are waiting on: promptly while there is something to collect, and spaced out to at most half an hour while the same problem keeps coming back. The pauses are longer, around two hours, only where the server has not confirmed it holds the whole episode, since nothing this checking does can send audio. A phone that cannot reach the server at all is not read as an answer about the analysis.
  • A finished analysis stuck mid-send arrives up to two hours sooner. If an analysis was abandoned partway through being sent but the server had already finished the work, the app left that episode alone for up to two hours before its first check. It now asks as soon as that episode's own next check time has passed, which for one abandoned mid-send is usually straight away. An episode carrying a delay of its own, such as one waiting on a weekly analysis-allowance reset, still waits that delay out.
  • An unusable sign-in no longer makes the app check every 30 seconds. With no usable stored sign-in left to present, episodes still waiting to be sent for analysis made the app check about every 30 seconds whenever it was awake, and none of those checks could get an episode any closer to being sent. That wait is now about half an hour, unless a result is already waiting to be saved and is due sooner. A queue change or a finished download can still prompt a check sooner, and a problem that blocks signing in only briefly keeps the fast checking.
  • A hidden retry no longer outlives its episode. The app remembers a paused episode it readied in the background so it can reconnect to it. If your current episode then became one this phone had not downloaded, which is how another device moving your queue along arrives here, or if the app re-established your sign-in without you signing out, it went on trying to reconnect to an episode it would never load again, and it never gave up, costing battery with nothing visible while it happened. All of those now end it, as does playing an episode. When one is being held, a new current episode you have already downloaded is followed instead of leaving the app stranded on the old one.
  • Play works on a queue row held done. An episode can carry a done state you are never shown: one your account still records as played, or the leftover from having removed it from your queue. Pressing play on a queue row like that dropped the row out of your queue and started nothing, with no explanation. The row still leaves the queue, but the episode now plays, and it picks up where you left off unless you had listened almost to the end, in which case it starts over. An episode whose downloaded file has gone missing does the same, and a row that still cannot start says so instead of looking dead.
  • An episode near its end starts over instead of finishing instantly. An episode whose saved spot is within a minute of the end no longer starts there, where it would play out those seconds, finish, leave your queue and delete its download. That covers tapping it, Next, Previous, choosing it in the car, and the queue moving on to it by itself. The minute shrinks for short episodes, to a tenth of the length the feed announces, and an episode whose feed announces no length is left alone. Unpausing is untouched. Two cases are not covered yet: an episode your account already records as finished is refused before any of this, and one the app readies in the background as its download lands can still start on its last seconds the first time you press play.
  • A paused episode stops resaving the same spot. While an episode was the current one and the engine was running, playing or paused, open on screen or not, your saved position was rewritten every five seconds even when the position being written was the one already stored. Those repeat writes are gone. Resuming reads the same saved spot it read before, pausing still saves your spot, and a change while playing is still held to the usual five-second spacing. One difference in your favor: after a quiet stretch, the first tick carrying a real change is saved right away instead of waiting out a fresh five seconds. The copy Android Auto and the media library read is still kept up to date as before.
  • A failed notification cleanup stops spinning. When the app takes down or hands off the playback notification and that attempt hits an error, it used to try again almost immediately, over and over, for as long as the error kept happening. The repeating was invisible; what you could see was the notification staying up and the battery it spent. It still retries, because nothing else runs that cleanup, but each repeat of the same failure waits longer than the one before, up to half a minute, and drops back to the shortest wait once the situation moves.

Back-end changes

  • Ads are missed less often at the break. Our transcription could skip a stretch of an episode without ever reading it, most often right where an ad break opens on a beat of silence and a music sting. Audio that was never read cannot be recognized as an ad, so it played. Reading now resumes where speech actually stopped, and audio still left unread is checked for speech and read again if speech is there. This is a change on our side and has applied since late August, whatever version you run; an older episode picks it up only if you re-analyze it, which spends one of your weekly analyses. Some episodes can still be missing a stretch.

Minor tweaks

  • Tapping Analyze, Re-analyze, or Force re-upload no longer starts a second "Analyzing episodes in the background" notice of its own. On Android 15 and newer, those taps no longer spend part of the daily allowance Android gives the app for that kind of notice, which subscription checking, downloading and analysis all draw on. The analysis itself is unchanged.

https://android.stfuai.com

v2.6.10

Background analysis stops getting in the way of listening. It no longer closes the app mid-episode, and it checks for finished results far less often, which shows up as better battery with the screen off. On a podcast's page, play buttons that used to sit there dead now work, keep your place, and say something when they cannot start an episode.

Bug fixes

  • Playback no longer dies during analysis. On Android 15 and newer, the app could spend its entire daily allowance for background-work notices on episode analysis. Once that allowance was gone, Android force-closed the app, so audio stopped mid-episode with no message, and any later analysis stayed frozen until you next turned the screen on. An analysis that starts while audio is playing now runs under playback itself instead of raising its own notice, and an allowance that does run out now ends that work cleanly rather than taking the app down. Episode downloads, and an analysis that began before you pressed play, still use some of the allowance.
  • Background analysis checks far less often. While an analysis runs on our servers, the app used to check for the result every 5 seconds, with a second hidden task waking up beside every check, for the several minutes each analysis takes. Analyses the app starts on its own now check every 30 seconds, which saves battery while you listen with the screen off. One you start yourself still checks every 5 seconds while the app is open or audio is playing. A finished result can appear up to 25 seconds later than before.
  • Stuck analysis checks now back off. An analysis whose result check kept failing the same way, such as a sign-in that could not refresh, used to retry every 30 seconds for as long as a background pass was running, and that drained the battery. After the second identical failure in a row the waits double, up to a 30-minute cap, and drop back to 30 seconds once a check succeeds. No number of failed checks abandons the analysis.
  • Play works on an episode held done out of sight. On a podcast's page, pressing play on an episode the list does not show as done no longer refuses it over a done state you cannot see, such as the one left behind when you remove an episode from your queue. That button used to do nothing at all, with no message, for as long as the hidden state lasted. Adding the episode to your queue had always cleared it and carried on.
  • Playing from a podcast's page keeps your place. An episode still shown as unfinished, and not already your current or queued episode, now starts where you left off once the page has loaded your progress. When it played at all, it used to start from the beginning. An episode your account still records as finished starts from the beginning, which is what marking it not done has always done.
  • A play button that refuses now says so. On a podcast's page it used to look dead. An episode that still has to download keeps its existing downloading notice, and choosing a different episode stays quiet rather than complaining about the one you moved on from.
  • The last episode you tapped is the one that plays. Pressing play on an episode and then quickly pressing play on a different one used to start the first one anyway. The first now stands down.

Back-end changes

  • Re-analyzing a long-analyzed episode is coarser. Ad and chapter boundaries come out less precise when you re-analyze an episode that was analyzed more than 60 days ago, because the fine-grained timing behind them is discarded at that age to keep our storage within its limits. New episodes, and anything re-analyzed within 60 days, are unaffected, and nothing you can see is deleted. This is a change on our side and has applied since mid-August, whatever version you run.
  • Analyzing the same audio twice costs nothing. Asking to analyze audio our servers have already transcribed now returns the finished result straight away and does not spend one of your weekly analyses. Episodes our servers had filed under two identities, which happened when the app changed how it names a feed, are now recognized as one. This is also a change on our side that already applies whatever version you run.

Minor tweaks

  • On Android 15 and newer, the quiet "Updating episodes" notification no longer appears for an analysis running while audio plays, including one you started yourself.

https://android.stfuai.com

v2.6.9

Mostly episode lists this time. You can select a batch of episodes and mark them done together, lists reopen where you left them, and a new button jumps you back to the top. The player's progress bar can finally be dragged. Background work got quieter and quicker: syncs no longer refetch every show every time, and the next episode in your queue gets analyzed while you listen instead of waiting until you open the app.

Features & changes

  • Select and mark episodes in batches. A new button beside the sort and hide-finished controls turns selecting on; tap episodes, or use "Select all shown" or "Range" for a stretch. Marking done clears those episodes from your queue and deletes their downloads, after telling you how many. If the episode you are listening to is one of them, it stops and the next one starts. Past 25 episodes it asks first. Tap the button again, the X, or Back to finish selecting, which clears your picks, as does leaving the page. Works on any podcast page, subscribed or not.
  • Episode lists reopen where you left off. Applies to a podcast's own list, not the Feed, while hide-finished is off and the list is sorted newest first. A note shows while it scrolls back down, and a slow phone gives up and opens at the top. Returning to the top forgets the spot. Very deep spots, past roughly 550 episodes, or a list whose newest episode changed, open at the top instead.
  • Jump-to-top button on long lists. A small round arrow appears over a podcast's list and the Feed once you scroll down a couple of rows. Only the circle is tappable.
  • Syncs skip shows with nothing new. Each show now gets its own check time based on how often it publishes, instead of every show being refetched on every sync. Expect less battery and less data with a lot of subscriptions. Nothing goes unchecked for long: a show still publishing is checked at least every twelve hours, one quiet for two weeks at least daily, and one with no measurable pattern on every sync as before. Pull to refresh still checks everything immediately. A show on an unpredictable schedule can surface a new episode up to one sync interval later than before.
  • Changelog link in Settings. In the About section, just below the version number.

Bug fixes

  • The next episode gets analyzed while you listen. With the screen off, analysis used to wait for the phone's next deep-sleep window, sometimes hours, or until you next opened the app, so you heard the ads. It now starts within seconds and keeps running to completion under a quiet "Updating episodes" notification. Needs background sync and automatic analysis on, the episode downloaded, allowance left, and an unmetered network if you limit downloads to Wi-Fi. On Android 11 and older, that notification can also flash up briefly when the app reacts to a queue change.
  • The progress bar can be dragged. A drag used to be thrown away the moment your finger drifted up or down, and the screen scrolled instead. The time now follows your finger and playback jumps when you let go. A swipe starting on the bar scrubs, so scroll from elsewhere.
  • Tapping the progress bar no longer bounces. It showed your new position, flicked back to where you were, then jumped forward again. Tapping backward a few seconds during playback can still settle on the old spot, because that is genuinely indistinguishable from playback having moved.
  • Segment markers seek to the right place. Tapping a marker on the progress bar used to send you near the start of the episode.
  • Mark Done sticks when a headset or widget button lands at the same moment. The episode could leave your queue with nothing recording that you finished it.
  • Double-tapping Done marks the episode done. The second tap used to cancel the first, leaving the episode unfinished.
  • No more false "Failed to mark episode as played." A storage hiccup after the episode was already done raised an error about work that had actually succeeded. The message still appears when marking done genuinely fails.

Back-end changes

  • Ad skips start closer to the real start of the ad. The opening seconds of an ad were being left out of what gets read, so breaks were detected late and you heard the front of the ad. Version 2.6.6 reported this fixed and only half fixed it. This is a change on our side, so it already applies whatever version you run, and it affects episodes analyzed from now on. Re-analyze an older episode to pick it up; that costs one weekly analysis.

Minor tweaks

  • Debug logs name podcasts and episodes. Many lines showed a bare ID, in the player, podcast pages, queue and sync. A log sent with a bug report is now readable without looking those IDs up.
  • Debug log exports include a power summary. Time awake, processor use by area, background check counts and duration, and data moved by checks and downloads. Recorded whether or not debug logging is on; send an export from Settings, Developer, View Debug Logs to see it.

https://android.stfuai.com

v2.6.7

This release is about the app working when your connection does not. Podcast pages now open offline from a copy saved on your device, and that copy is kept for every subscription automatically instead of waiting for you to visit the Feed tab first. A batch of fixes also makes finished episodes behave when you queue or replay them on a patchy connection, the player's progress bar finally moves while an episode plays, and the speed control now tells the truth about its top speed.

Features & changes

  • On Android, the app now saves a copy of each subscription's recent episodes for offline use automatically, as part of the background sync it already runs, once the app has set up its feed storage on the device (signing in and restoring your subscriptions does that on its own). Before, that saving only began after you had opened the Feed tab at least once; until then the Feed and podcast pages could sit empty offline.
  • The playback speed control now tops out at 2.0x, and every speed it offers is the speed you actually get. It went up to 2.5x before, but nothing above 2.0x was ever played that fast - the app stored and synced the higher number and then played 2.0x anyway. If your speed was set above 2.0x, it now reads 2.0x, which is what you have been hearing all along; nothing you hear changes.

Bug fixes

  • On Android, opening a podcast's page without a connection now shows its episodes whenever the app still holds a cached copy of the feed, with a note that the list could not be checked just now. The copy of recent episodes that background sync keeps for each subscription now counts; before, the podcast page recognized only its own recently built full episode list, so for most podcasts it showed "Failed to load podcast details" over an empty page. That error is now reserved for a podcast the device holds no readable copy of, such as a search result you have never opened.
  • Adding a finished episode to your queue, or pressing play on one, no longer fails on a patchy connection. The app un-finishes the episode first, and it used to then ask the server whether the episode was finished and believe the answer, even when the server had not been told yet. On a connection good enough to read but not to write, you got "Could not add this episode to the queue", or play did nothing. The app now trusts what it knows about your own most recent action.
  • Those actions are also no longer held up by the network. Un-finishing an episode waited for the server to confirm before anything else happened; it now saves your change on the device straight away and tells the server in the background, so the download starts immediately. Marking an episode not done works the same way.
  • The progress bar and elapsed time in the player now move as an episode plays. They had been standing still while playback advanced and only jumping to the right spot when you paused; the same was true of the mini-player at the bottom of the screen. Both now update continuously during playback.
  • Marking an episode as not done now only marks it as not done. It used to add the episode to your queue and download it as well, which is not what the action says it does and not what you asked for. If you want it queued, the queue buttons still do that, and they still un-finish the episode for you on the way.
  • Adding a finished episode to the top of your queue now puts it at the top. It went to the bottom instead, because un-finishing it quietly queued it first and the real add was then refused as a duplicate.
  • Pressing play on a finished episode now plays it. It used to refuse and tell you to mark it as not done first, which is the same decision twice: pressing play is you saying you want to listen to it again, so it is un-finished for you and starts.
  • An episode you finished no longer flips back to unfinished when its last pause update landed at the exact same moment as the finish. That collision could make a finished episode reappear in your Feed and get picked up again by background downloads.
  • On Android, switching a podcast's episode list between newest-first and oldest-first while the page was still checking the feed could leave the list in the old order under a control showing the new one, and scrolling further could mix the two orders. The list now always follows the order the control shows.

https://android.stfuai.com

v2.6.6

Mostly a release about things that did not stick. Episodes you finished, un-finished, or were partway through could all end up back where they started, and the Feed was reading your listening progress from a place that never had it, so every episode looked untouched however much of it you had heard. Sleep timers, chapter titles, and the playback speed and volume boost controls are fixed too, and ad skips now start at the start of the ad.

Features & changes

  • An episode list with nothing in it now tells you why, instead of showing a heading and blank space. It says whether every episode really is finished, whether the podcast has no episodes at all, or whether something went wrong while looking, and in most of those cases it offers you a way to try again.

Bug fixes

  • Every row in the Feed now shows how much of that episode is really left. The Feed was reading your listening progress from somewhere that does not keep it, so it treated every episode as untouched: the time on the row was the whole episode, however much of it you had already heard. It now reads your real position.
  • Turning off "Show finished" in the Feed now actually hides episodes you finished. Because the Feed had no idea where you were in an episode, it could not recognize one you had played to the end, so those episodes stayed in the list even with finished episodes hidden, and refreshing never cleared them. They are now recognized and hidden. Leaving "Show finished" on still shows them, as it always has.
  • Episodes you finished are far more likely to stay finished. If an episode ended while the next one in your queue was still downloading, the app could lose the record that you had finished it, leaving it looking half-listened and bringing it back in your Feed and queue. A pause saved at the very moment an episode finished could also wipe that record. Both are fixed. In the rarer case where the episode is no longer on your device at all, the record can still be lost.
  • An episode you mark as not done no longer disappears from the Feed again just because your saved spot in it sits at the end. This affected the Feed while it was working from your device's own records, which is what it falls back on when it cannot reach the network or is showing you a cached view; the online view already got this right. Marking an episode not done on another device is covered too.
  • Marking an episode done or not-done from the Feed sticks immediately. If the Feed happened to be refreshing the moment you tapped, the row could briefly flip back to how it looked before, then settle a moment later; it now keeps your change right away.
  • Your spot in an episode is kept when the app starts fresh, whether that is after an update, a crash, or a force stop. Reopening to an episode you were partway through could drop you back to an older position, often the very beginning. This mainly hit podcasts whose feeds number their episodes plainly, and any podcast whose address had been saved with different capitalization.
  • Chapter titles survive playing an episode from your downloads. They no longer turn into "Chapter 1", "Chapter 2", and so on.
  • End-of-chapter sleep timers now stop in the right place whether the episode just finished analysis, you started it from Downloads, or the app restored your queue, including during the last chapter. If three quarters or more of a chapter is made up of segments you have chosen to skip, the timer passes over it and stops you at the end of the next real chapter instead. And when the app has no chapter times it trusts for an episode, an end-of-chapter timer no longer stops you at a made-up spot; it does not arm at all.
  • One Play press now carries you into the next episode after a sleep timer stops you at the end of one. Pressing Play gave only a moment of audio and stopped again, so you had to press it twice. Each episode after the first also stops the same distance before its end as the first one did, instead of playing to the very end.
  • The playback speed and volume boost controls now keep up with you. Each tap of + or -, and each digit of a volume boost, was applied the instant you made it, and applying one took long enough that the number on screen visibly fell behind your taps. The number now responds immediately and your choice is applied once, when you close the picker; by the Done button, the X, the back gesture, or tapping outside, all of which keep your change.
  • Hiding finished episodes on a podcast with a very long back catalog no longer empties the list. On shows such as The Vergecast, where the episodes you have not heard sit a thousand or more back in the archive, everything vanished including those unheard ones. They now stay on screen, and looking further down the archive for more of them can no longer take the ones you are reading off the screen.
  • New episodes arrive sooner, and checking for them wastes less battery. While you had the app open, ordinary things you did in it, such as playing something or adding to your queue, restarted the check for new episodes from the beginning, even when nothing about your subscriptions had changed. A check could only finish once you had left the app alone for long enough. Checks now keep running unless your subscriptions or queue genuinely change.

Back-end changes

  • Ad skips now start at the start of the ad. While listening to an episode's audio, the part of our system that writes down what is said could throw away up to thirty seconds at a time, and the opening of an ad break set that off reliably. The ad was then found late, so a skip began partway into it and you heard the first several seconds anyway. Those discarded stretches are now picked up and written down properly. About two thirds of episodes turn out to have some, usually a few seconds of speech and occasionally a lot more. This one is a change on our side rather than in the app, so it already applies to every episode analyzed from now on, whichever app version you are on.

Minor tweaks

  • The keyboard no longer covers the volume boost box while you are typing in it on a short screen.
  • The volume boost box can now be cleared while you retype a number, instead of jumping back to 0 the moment you delete the last digit.

https://android.stfuai.com

v2.6.5

Mostly an analysis release. Analysis could stop working altogether - one episode stuck at 5%, every other episode insisting it was already being analyzed - and several quieter ways an analysis could go missing, come back empty, or sit there claiming progress it was never going to make. Episodes finished with the app closed now reach your other devices on their own, the app opens faster, and listening with the screen off costs less battery.

Features & changes

  • Episodes you finish now reach your other devices without you having to open the app again. Finishing an episode was recorded on your phone and only sent up the next time the app was open and running, so a long listening session with the app closed left all of those episodes looking unplayed everywhere else until you came back. They are now sent as soon as the phone has a connection, and they wait and try again on their own if it does not.
  • Opening the app is quicker, and the difference grows with the size of your queue. While it was restoring your queue and your place in the current episode, it rebuilt its internal picture of what to play next several times over, checking every downloaded file on disk each time, before it would show you anything. It now does that work once, and asks the background player only for the extra episode details it actually needs rather than details for every episode you have queued.

Bug fixes

  • Fixed downloads failing for anyone whose playback speed is set above 2x. With the speed at 2.1x through 2.5x, every episode downloaded fully and was then thrown away at the last step, so nothing could be played offline, automatic analysis never started, and a manual "analyze" answered that the episode could not be downloaded. Downloads now complete at any speed setting. Your speed setting itself is unchanged; as before, audio plays at up to 2x. A missing or damaged saved speed now falls back to normal speed instead of confusing playback. Episodes that already gave up before this update are retried on their own within about six hours, or right away if you start one yourself.
  • Fixed analysis going completely silent, with one episode stuck at 5% and every other episode answering "This episode is already being analyzed." Two episodes could get themselves into a state where they were counted as occupying both of the app's two analysis slots while being set to try again days later, which stopped every other episode from starting and stopped the app waking up to make any progress at all. Slots are now only held by work that is genuinely about to happen. Episodes already stuck free themselves after the update, with no deleting, re-adding or re-analyzing needed.
  • Fixed episodes coming back from analysis completely empty. When the server replied that it already knew about a request, the app could read that as a finished analysis and record it as such - no ad segments, no chapters - and then stop waiting for the real result, which never arrived. A reply now only counts as a finished analysis when the work is genuinely done. An episode that already came back empty can be analyzed again to get the real result.
  • Fixed an analysis the server was still working on being left stranded. The app had taken the job on but had no way to move it forward, so it sat there while the app quietly retried the same dead step over and over. Those analyses are now handed straight to the part of the app that collects finished results.
  • Fixed a running analysis vanishing from an episode on accounts with a long history of analyses. Once roughly forty past attempts had piled up, the app could stop seeing the analysis that was actually running: the episode stopped showing progress, put its Analyze button back, and then refused the tap. Live work now comes ahead of old, finished attempts.
  • An analysis the app can no longer finish now says so and offers a retry, instead of sitting at a percentage forever or quietly vanishing from the episode. This covers an episode whose downloaded file has gone, and work the server has finished with that the app could not collect - where results already exist, they are collected and applied rather than thrown away. None of this spends an extra analysis credit.
  • A retry that has not got anywhere yet now says "Analysis retrying" instead of showing a made-up 5%, and an analysis resuming part-way through shows where it actually got to.

Back-end changes

  • Listening with the screen off uses less battery. Once a second, the whole way through an episode, the app was rebuilding everything a player needs in order to show you where you are, even with the screen off; and with the screen off is most of the time you spend listening. It now does that only while a player is actually on show. Nothing looks different: the player, lock screen, widget and notification all update exactly as before.

Minor tweaks

  • Debug reports you send now include what the app knows about analysis, so an analysis that will not budge can actually be diagnosed from a report instead of guessed at.

https://android.stfuai.com

v2.6.4

Analysis no longer gets stuck on one episode and quietly blocks the rest, background checks for new episodes are much lighter on battery and mobile data, and marking episodes done - plus the detail shown for skippable segments and chapters - is more reliable.

Bug fixes

  • Analysis no longer gets permanently stuck on one episode and, worse, quietly stops every other episode from being analyzed too. When you asked to analyze an episode the server had already processed, the app could get caught silently retrying it over and over - which used battery and data in the background, showed no way to cancel it, and blocked new analyses on every other episode. That hidden retry is now visible and can be cancelled with a press-and-hold; it gives up after a few tries and shows the episode as failed so you can tap to try again; and one stuck episode can no longer hold up the rest. Tapping analyze on a stuck episode now cleanly starts fresh. No analysis credits were ever spent by the stuck retries, and none are spent recovering from one.
  • Background syncing is much lighter on battery and mobile data. Every time the app checked for new episodes in the background, it re-downloaded your entire played-episode history from the cloud and rebuilt its settings from scratch, several times over, in a single check. It now downloads only what has actually changed since the last check, and does the rebuilding once instead of a dozen times. The difference grows with how much you have listened to: on a large listening history this was most of the work each background check did.
  • Skippable segments and chapters keep the detail your analysis actually found. Segment cards were collapsing into a wall of identical "ADVERTISEMENT / 100% Match / Detected segment" entries, and chapter titles into "Chapter 1", "Chapter 2" - moments after an analysis landed, when playing an episode from your downloads, and on any queue change at all: playing something, adding, removing, reordering, or the app finding new episodes in the background. Once an episode had been flattened it stayed that way, because the placeholders looked correct to every later check. All of those paths now keep the real segment type, match percentage, description, and chapter title, and an episode analyzed while segment skipping is turned off still lists what it found. Episodes already showing placeholders repair themselves the next time your queue changes, as long as the episode is still downloaded; ones whose audio has since been cleaned up need a re-analysis.
  • Marking an episode done now starts the next one right away, even when you have just reopened the app after a long time away. Catching up on saved listening progress no longer holds the next episode back, which could leave the player sitting silent.
  • Marking an episode done now reliably starts the next episode. A sync running at the same moment no longer cancels it partway through.
  • Your queue no longer flips back to an episode you just finished. While your device is still telling the server about a change you made, a sync can no longer put the older version the server still has back over it.
  • Marking a second episode done a few seconds after the first no longer says the first one failed. Both taps now take effect, and the earlier one is properly recorded as finished instead of quietly leaving the episode able to come back later. The "Failed to mark episode as done" message is now reserved for a Done that really did not happen.
  • Using the app with no connection no longer fills the debug log with errors. Saving your progress, your queue, and your settings while offline is an expected part of how the app works - it is kept on the device and sent when the connection comes back - so it is no longer reported as if something went wrong, and a long stretch offline no longer repeats the same line dozens of times. Anything that genuinely could not be saved is still reported.
  • Fixed a battery drain after an interruption. When something else took over the audio - a navigation prompt, an alarm, a call - the app paused and kept itself registered with Android as actively working, so it could resume the moment the interruption ended. If the interruption never ended, it stayed that way: silent, but still telling your phone it was busy, which stops the phone settling into its low-power state. It now waits five minutes and then settles into a normal pause, keeping your place and the notification so one tap resumes. Interruptions shorter than that still resume on their own exactly as before.

https://android.stfuai.com

v2.6.3

Four bug fixes. Running an analysis no longer quietly drains the battery in the background, marking an episode done now starts the next one straight away instead of after a gap of silence, finished episodes get their downloaded files cleaned up again, and an episode you finished while the app was closed stays finished.

Bug fixes

  • Running an analysis no longer drains the battery in the background. While an analysis was in progress, the app checked on it every few seconds, and each check quietly redid a full background refresh: re-downloading your entire played-episode history from the cloud, re-reading every setting, and re-checking for app updates, before asking the one question it was woken for. On a phone with a large listening history that added up to a lot of CPU time and data during every analysis. Those checks now ask only about the analysis in progress, and the full refresh runs only when there is genuinely new work to start.
  • Marking an episode done now starts the next downloaded episode straight away. The app used to finish tidying up the episode you just finished, and tell your other devices about it, before any sound started, so there was a gap of silence in between. In the same vein, something you do while the app is still catching up with your other devices at startup (marking an episode done, pausing, reordering your queue) now sticks. That catch-up could previously finish a moment later and quietly put your queue and player back the way they were.
  • Finished episodes get their downloads deleted again. When several episodes finished while the app was closed, the cleanup at the next launch could stop partway through and leave the rest of those files on the device.
  • An episode you paused and then finished while the app was closed no longer comes back as unplayed after the app catches up.

https://android.stfuai.com

v2.6.2

Opening the app after a long stretch of background playback no longer parks you on a loading screen. On Android it now opens from what is already saved on your phone and finishes catching up in the background once you are already in.

Bug fixes

  • Opening the app after it has been playing in the background for hours (episodes finishing, new episodes arriving) no longer stalls on a loading screen while it catches up. The app now opens straight from what is already on your phone, and the catch-up work (marking finished episodes as played, tidying up their files, syncing to the cloud) happens in the background after the screen is up. On Android only.

https://android.stfuai.com

v2.6.1

A small follow-up to 2.6.0, all about the analysis progress indicator telling you the truth. Long analyses no longer interrupt you with a message claiming the app cannot reach the network, and an analysis that ends right as the app stops watching it now registers straight away instead of spinning on for a few more minutes.

Bug fixes

  • Long analyses no longer interrupt you with a false "Analysis queued and will continue when the app can reach the network" message a couple of minutes in. That message was shown whenever the app's short foreground watch on an analysis ran out, which any full re-upload of a long episode does as a matter of course, even with a perfectly good connection; the analysis was never affected. The app now says nothing in that case and the progress indicator simply carries on (it also no longer blinks briefly to zero at that moment). Very early on, while the episode is still downloading, the indicator can still clear for a moment and come back. You only hear from the app when the phone is genuinely offline, and the message now says that.
  • An analysis that finished, or that you cancelled, in the last moments before the app stopped watching it now registers immediately. The percentage indicator used to keep spinning on work that had already ended, sometimes for a few minutes, until the next background check noticed.

Minor tweaks

  • The Analyze button no longer flickers back to tappable on an episode that is still being analyzed.

https://android.stfuai.com

v2.6.0

A release about not getting stuck. An episode could freeze at "Analyzing 15%" forever after a repeated full re-analysis; that is fixed, and any episode already frozen that way clears itself up. You can now also cancel an analysis you no longer want by pressing and holding its progress indicator. The app opens noticeably faster and no longer waits on the internet to let you in, a battery drain tied to the weekly analysis limit is gone, and subscription and purchase problems now tell you what actually happened.

Features & changes

  • You can now cancel an analysis that is underway: press and hold the analyzing percentage indicator in the player and confirm. Analyses that are seconds from delivering results are left to finish so their credit is not wasted, and the app tells you so. After a cancel, automatic analysis leaves that episode alone for five minutes (so the work you stopped does not immediately restart) and then follows your normal settings again; manual re-analysis works right away.
  • The two highest-version releases now stay expanded when you follow an older changelog permalink, while the linked release opens and scrolls into view with a brighter green highlight.

Bug fixes

  • Fixed an episode getting permanently stuck at "Analyzing 15%". Asking for a fresh full re-analysis (press-and-hold on Re-analyze) a second time on the same episode could file the new upload's paperwork in a slot still occupied by the previous, already-finished analysis; the upload then never started and nothing ever moved again, surviving even app restarts. New re-analyses no longer hit this, and any episode already stuck this way is automatically cleaned up on one of the next background analysis passes, usually within a few minutes of the app being open: the frozen indicator clears, the episode's existing results stay, and you can re-analyze again if you still want to. No analysis credit was spent by the stuck attempt.
  • Fixed a battery and data drain that could kick in after you hit your weekly analysis limit. If an episode's upload had stalled long enough to expire while your limit was used up, the app kept quietly re-asking the server about it every half minute, around the clock, until the weekly reset; each ask was guaranteed to be refused. It now asks once, waits until your allowance actually resets, and picks the episode back up then. Tapping Analyze on that episode still re-checks right away, so a plan upgrade is picked up immediately.
  • Fixed a bug that could wrongly show "You've hit your weekly limit" and block analyses even when you had plenty of weekly analyses left. Background and tap-to-analyze requests were being limited to the app's old small per-day allowance and only unblocked around midnight Pacific time; they now correctly follow your weekly allowance.
  • The Back button on a podcast page now responds correctly on physical Android devices, including when the podcast was opened from your Library.
  • The app now opens much faster, and stops holding you on a loading screen while it finishes work you were not waiting for. It used to save a copy of your whole queue, cover art and all, and post a backlog of queued-episode notifications one at a time, before letting you in. Measured on a tablet with 57 episodes queued, opening from cold went from around three seconds to about one and a half, and reopening is now almost instant.
  • Opening the app no longer waits on the internet for anything, even briefly. It used to confirm your sign-in with our servers before letting you in, which could add up to two seconds on a slow or misbehaving connection; it now opens straight from what is already on your phone and confirms in the background. In the rare case a sign-in was revoked, you are signed out a moment after the app opens instead of being held at the door.
  • Opening the app with no signal, or with a change still waiting to upload, no longer looks like something went wrong. Your change is kept safely and sent once you are back online, and the app no longer reports that as a sync error or, in the worst case, refuses to start.
  • When an analysis cannot be finished, the player now explains what happened in plain English instead of showing an internal error name. Every message says whether the attempt is over and whether you can try again.
  • Subscription problems now show the real reason instead of a generic "Purchase Failed". If you already used your free trial, the app now says so and offers the paid plans; before, that message could never appear. And when Google Play permanently rejects a purchase, the app now tells you retrying will not help and points you to a new purchase or Restore Purchases, instead of suggesting you try again in a moment. Restore Purchases gives the same honest answer: if Google Play has permanently rejected your stored purchase, the app says it cannot be restored instead of asking you to retry forever.
  • After a refused free trial, the app now explains that the trial attempt will disappear from Google Play by itself within a few days at no charge, instead of leaving the pending Google-side subscription unexplained until it blocked same-plan purchases with a confusing message. Restore Purchases gives the same explanation during those few days instead of wrongly telling you to retry the connection.
  • Changelog permalink buttons and expand and collapse arrows now sit in their expected order with clearer spacing.

Back-end changes

  • Background downloading and analysis no longer run on out-of-date settings for the rest of the week if your account has gone over its weekly analysis allowance. The app's hourly background check of your subscription, podcast list and settings used to fail whenever the allowance was overspent, so changes made elsewhere were only picked up once you reopened the app.

https://android.stfuai.com

v2.5.28

Two things this time. When an analysis could not be finished, the app used to show you the internal name it had for the failure, which meant nothing to anyone. It now says what happened in plain words. Release notes for every published version are also readable on the web now.

Features & changes

  • You can now browse the release notes for every published version on the public changelog website.

Bug fixes

  • When an analysis cannot be finished, the player now explains what happened in plain English instead of showing an internal error name. Every message tells you whether that attempt is over and whether you can try again.

https://android.stfuai.com

v2.5.27

The app now starts from your saved data instead of waiting on the network, uses far less battery during playback, and handles large podcast libraries more reliably. Downloads and analyses recover from failures that previously left episodes stuck for days or forever.

Features & changes

  • The app opens from your saved queue, position, subscriptions, settings, and downloads while account sync finishes in the background. Slow hotel Wi-Fi, airplane mode, and long periods offline no longer leave it hanging on startup.
  • Podcasts with very large archives now open and load more episodes as you scroll. Podcast pages and the Library Feed show saved episodes immediately and remain useful without a connection.
  • Analyze and Re-analyze requests survive leaving the app or losing the connection. Queue and player screens now show whether an analysis is working, waiting for a download, retrying, stalled, or held by the weekly limit.
  • Listening-history sync now downloads only changes after its first full pass, supports long histories without silently cutting off older episodes, and compacts redundant finished-episode records to keep future syncs quick.
  • When saved app data cannot be opened, the startup screen now explains the specific problem and the safe recovery steps. A confirmed on-device reset is offered only after repeated failures.

Bug fixes

  • Updating from older versions no longer leaves the app stuck on "Couldn't finish starting" because of playback history, offline work, an interrupted sign-out, an account switch, or a duplicate synced queue entry. Existing queues, downloads, positions, and settings remain intact.
  • Audio no longer stutters because subscription checks or background maintenance are monopolizing the device. Feed checks finish much faster, background work settles when caught up, and new episodes should appear sooner.
  • Playback with the screen off uses substantially less battery. The app no longer rebuilds the full queue several times a second or keeps redrawing a player nobody can see.
  • Losing the connection no longer replaces saved podcast data, removes per-podcast settings, re-adds finished episodes, or overwrites newer progress from another device. Downloads and analyses now wait efficiently for a usable connection.
  • Downloads stuck on "Download failed" repair themselves, including episodes already stuck before the update. If a publisher refuses the audio file, the queue now says so and keeps retrying in the background.
  • Re-analyzing an episode now applies the new skip points and chapters. Episodes already stuck on "Analyzing..." recover automatically instead of keeping the old result forever.
  • Dead or stalled analyses no longer retry forever or permanently block another attempt. A request that never reached the server can be restarted after 15 minutes, while one that did reach it is left alone so the same analysis is not counted twice.
  • Downloading an already-analyzed episode again no longer damages its analysis. Cancelling a download also clears any re-analysis waiting on it, and a valid waiting request starts as soon as the download finishes.
  • Weekly analysis limits now show when they reset and are checked again on each new Analyze or Re-analyze tap. Background downloads and checks continue normally when the allowance is exhausted.
  • Marking an episode done now cancels its pending download and analysis without showing a false failure. Removed episodes reliably give their storage back instead of leaving files and cleanup work stuck across restarts.
  • Re-adding an unfinished episode preserves its listening position and no longer claims it must be marked not done first. Podcast pages now find the correct saved progress, and the custom finished-episode threshold applies consistently.
  • The playback speed control responds to every tap and no longer shows internal error text when changes overlap.
  • Podcasts marked unavailable remain visible in your Library, Retry no longer makes them disappear, and errors now distinguish a broken feed from a problem the app itself cannot handle.
  • Old queue-change records and repeated artwork copies are cleaned up automatically instead of consuming more storage every day.

Minor tweaks

  • The Queue's Now Playing control now says Pause while audio is playing and Resume while it is paused.
  • Queue rows explain failed downloads, disabled automatic analysis, stalled analysis, and abandoned analysis in plain language.

https://android.stfuai.com

v2.5.14

Background updates now keep your queue ready while the app is closed, startup and browsing are more reliable, and playback works properly after moving to a new device. Android Auto is temporarily disabled so regular updates are no longer held up by its separate review.

Features & changes

  • New episodes are found, downloaded, and analyzed while the app is closed, and podcast refresh keeps running while you listen.
  • Automatic analysis is now off by default. You can turn it on globally or per podcast and choose up to 10 upcoming episodes, plus Now Playing.
  • Every queued episode downloads in the background, and playback keeps queue order instead of skipping ahead when the next episode is still downloading.
  • Android Auto support is temporarily disabled. Bluetooth, notification, lock-screen, headset, steering-wheel, and widget controls continue to work normally.
  • Discover and podcast pages show saved results immediately while refreshing in the background, and a failed refresh no longer replaces them with an error.
  • Background refresh now starts at Android's real 15-minute minimum. Wi-Fi-only mode also covers analysis uploads and allows unmetered Ethernet.
  • Your saved login is encrypted with a device-protected key and removed when you sign out.

Bug fixes

  • Playing an episode after installing the app or signing in on a new device now downloads the audio and resumes from your saved position.
  • One unreachable podcast or a stalled background run no longer stops every other download, analysis, or new-episode check. Work resumes automatically when the connection returns without retrying every minute all night.
  • Episode notifications arrive again, and notification, Bluetooth, and headset buttons skip within the current episode by your chosen interval instead of changing episodes.
  • Updates and quick reopenings no longer leave the app blank or stuck on "Couldn't finish starting," and a brief login problem no longer wipes your queue, downloads, or settings.
  • Changing Google Play plans no longer leaves the old subscription charging beside the new one, and failed or slow purchases no longer freeze the subscription screen.
  • Queue controls no longer flash or ignore taps, target the wrong podcast when feeds reuse an episode ID, or bring finished episodes back with the player stuck.
  • Adding an almost-finished episode works again, tapping the green queued check offers to remove it, and re-queuing a finished episode marks it unfinished.
  • Large, malformed, incomplete, or temporarily unavailable feeds recover without freezing the app. Manual refresh retries unavailable shows immediately.
  • Episode artwork is restored across the queue, widget, notification, lock screen, and other playback surfaces, including shows that only provide one feed image.
  • Podcast Back controls return to the page you came from and stay visible over light artwork.
  • Popups follow the dark theme, remain usable with large text, and cannot fire the same action twice.

Minor tweaks

  • Playback controls now consistently show skip-back and skip-forward actions.
  • Downloads start a little faster and avoid reloading a show's full episode list when nothing changed.
  • Android releases remove unused code and resources to reduce download and install size.

https://android.stfuai.com

v2.5.5

Playback and its controls were rebuilt to run natively on Android, so widgets, notifications, the lock screen, Bluetooth, and Android Auto show what's really playing and respond when you press them. Sync stops losing changes or letting a stale device overwrite newer ones.

Features & changes

  • Android Auto can search your downloads by voice, by episode or podcast name.
  • Tapping play on an episode that's still downloading now says so and plays it as soon as it's ready.
  • A permanently dead feed now shows in your library as an "Unavailable" card you can retry or unsubscribe from, instead of an invisible subscription.

Bug fixes

  • Fixed an intermittent freeze where the app ignored taps until you restarted it.
  • Widgets, notifications, lock screen, Bluetooth, and Android Auto no longer show stale artwork or Play/Pause state, ignore presses, or leave playback unresponsive on Android 15.
  • Background ad and segment skips no longer crash the app, stop playback, or undo a newer pause.
  • Sleep timers and their countdown survive rearming, background episode changes, and reopening the app.
  • Next, Previous, and automatic episode changes follow the real queue instead of jumping back or sticking at the end.
  • The elapsed-time clock advances live instead of looking frozen until you reopen the app.
  • Playback works right after signing out and back in, and signing in no longer stalls.
  • Play, Pause, position, Done, and settings changes are no longer lost or applied out of order, and a stale device can't overwrite newer changes.
  • Reopening after long background listening jumps straight to what you're listening to instead of scrubbing through finished episodes.
  • Marking episodes done is much faster, and its confirmation is dark, not a bright system dialog.
  • Cover art is back in the home-screen and notification players when an episode has no image.
  • Dragging a queue row's grip handle reorders immediately.

https://android.stfuai.com

v2.5.3

Makes playback far more dependable when the app is asleep or closed, fixes sleep timer re-arming across every playback control, and improves downloads, notifications, syncing, and account changes.

Features & changes

  • Android 9 or newer is now required so playback, downloads, timers, and other background work can rely on the modern Android behavior they need.

Bug fixes

  • Fixed delayed Play requests, including home-screen widget taps and download-first playback, sometimes overriding newer pause, seek, skip, speed, sleep-timer, mark-as-played, or episode-selection actions.
  • Made home-screen widget playback controls work after Android closes the app in the background, without showing stale artwork or Play/Pause state from an earlier session.
  • Fixed cold widget playback being interrupted by Android's background limits or playing through an opening advertisement after restoring audio.
  • Improved screen-off queue playback so it can keep moving through more downloaded episodes and mark completed episodes done promptly when the app wakes.
  • Fixed automatic episode completion occasionally leaving playback stuck between episodes after the app was stopped in the background.
  • Fixed background ad skips, pause positions, and skip-forward or skip-back positions sometimes restoring to an older point after the app process stopped.
  • Fixed sleep timers being lost during episode changes, re-arming against a chapter or episode that had already ended, or reporting success before Android accepted the change. Re-arming now works from the app, notification, lock screen, Bluetooth earbuds, Android Auto, and widgets while the app is asleep, with the player countdown and playback notification kept in sync.
  • Fixed playback speed changes sometimes updating the player display without changing the audio. Failed changes now remain unapplied and show an error.
  • Fixed Stop, Bluetooth, notification, lock-screen, Android Auto, audio-interruption recovery, and headphone-disconnect actions sometimes waiting for the app to wake before applying or syncing playback changes.
  • Made all safely playable downloaded episodes available in Android Auto, with resume position, playback speed, chapter timers, and ad skipping preserved while the app is asleep.
  • Fixed Android Auto occasionally resuming the previous episode after a different downloaded episode was selected.
  • Fixed playback occasionally becoming unresponsive when a background Play or Pause failed to show the playback notification.
  • Made episode downloads continue or resume after Android closes the app in the background, with safer cleanup of interrupted downloads and validation before playback.
  • Made eligible new-episode notifications and settings changes retry if Android closes the app before they finish.
  • Fixed disabled notification permission causing newly queued episode alerts to be forgotten instead of delivered after permission is restored.
  • Prevented episode alerts from appearing after the episode was removed from the queue or its notifications were turned off.
  • Prevented unfinished sign-out, playback, download, notification, and analysis work from one account carrying over after an account change.
  • Fixed podcast-specific settings occasionally returning after they were reset to defaults.
  • Fixed removed subscriptions occasionally returning when sync, a subscription import, cloud restore, or sign-out happened at the same time.
  • Fixed already-started episode analysis being abandoned or accidentally started twice after an app restart or quota refresh.

https://android.stfuai.com

v2.5.2

Adds weekly analysis limits and Discord account linking, makes background podcast work much more dependable after long idle periods and phone restarts, and fixes several queue, widget, dark-mode, and notification issues.

Features & changes

  • You can now link your Discord account from Settings > Account > Discord. Linking adds you to the STFUAI Discord server, and paid subscribers automatically receive the matching subscriber role. The row shows who is linked and lets you re-link or unlink.
  • Analysis allowances are now weekly: Free 10, Plus 20, Pro 30, and Platinum 50 analyses per week (Pacific time). Absolute Nutter has an underlying weekly limit of 100 and appears in the app as virtually unlimited.
  • Usage screens now show the weekly reset in your local date and time, update the remaining count immediately after an analysis, and display analysis history newest first.
  • A full weekly-limit notice can appear once every 72 hours. When that notice is throttled, a longer message still gives you the local reset time.
  • Unsupported app versions can now show a required-update screen with one Google Play action. Temporary network hiccups never trigger it; the app just continues normally.
  • Settings now includes controls to reset all settings to their defaults or remove every podcast-specific override. Both actions explain what will change and ask for confirmation.
  • The sleep timer restart and resume setting now defaults to a five-minute window instead of 30 minutes. Existing saved values remain unchanged.
  • Debug log exports now include more background-work detail, and finish even if some diagnostics cannot be read.

Bug fixes

  • Fixed podcast updates and automatic queue preparation stopping after the app had been closed for a long time or the phone restarted. Android now keeps this work scheduled, retries temporary failures, and prepares the current episode before upcoming queue entries.
  • Fixed widget Play and media controls hanging or restarting an episode that was already loading after a cold start. Playback now waits for the local download, times out safely if Android audio setup stalls, and allows a later Play request to retry without disrupting healthy playback or background queue preparation.
  • Fixed foreground podcast discovery getting stuck when one podcast's feed server accepts a connection but then stops responding. The app now times that feed out and continues with the remaining subscriptions.
  • Fixed listened-to episodes sometimes returning to the queue and being downloaded or analyzed again. Existing affected queue entries are repaired automatically during startup.
  • Fixed a playback edge case where an already-finished episode could remain visible as the current episode after Android reached the end of its prepared queue.
  • Fixed the home-screen widget showing stale playback state or artwork after background pauses, sleep-timer stops, episode changes, and app shutdowns.
  • Sign-in, password, and force re-upload dialogs now use the app's dark theme. Messages that previously disappeared during navigation now wait for you to dismiss them.
  • Fixed weekly usage occasionally missing its reset time when the first usage check did not include a usable one.
  • Fixed weekly-limit and expired-upload messages sometimes being replaced while usage refreshed, so the correct message remains visible.

Back-end changes

  • Added version-aware requests and safer version checks so the app and its processing service can evolve without breaking older app versions.
  • Hardened background work, cold-start audio loading, queue ownership, and finished-episode cleanup across process restarts and device reboots.
  • Overlapping background maintenance requests can no longer leave stale notification state behind.

Minor tweaks

  • Fixed a transient internal warning that could appear when resume-time queue preparation overlapped with other startup work.
  • Fixed duplicate silent "Updating podcasts and preparing queue" notifications remaining in the Android notification shade after maintenance had already finished.

https://android.stfuai.com

v2.5.0

Makes playback much more dependable while the app is backgrounded or your phone is asleep, fixes several ways an episode could resume from the wrong position, and gives long episode analysis enough time to finish.

Features & changes

  • Android playback now runs on a more reliable background-capable engine. Segment skipping, sleep timers, media controls, episode auto-advance, and position saving keep working more consistently while the app is backgrounded or the phone is asleep.
  • Background playback now uses one stable media notification instead of relying on a separate playback keep-alive path.

Bug fixes

  • Fixed the long-standing stutter, freeze, and crash that could happen shortly after returning to the app following background playback.
  • Pressing play immediately from the app, notification, Bluetooth, hardware controls, or Android Auto during a cold start no longer restarts a partially played episode from the beginning.
  • When an episode's uploaded audio expires before processing starts, the app now re-uploads it and retries automatically instead of giving up for the rest of the session.

Back-end changes

  • Episode analysis now waits up to about 60 minutes before giving up, instead of about 21 minutes, so a healthy long-running analysis of a big episode is no longer treated as failed. Very long episodes also get more room to recover from temporary processing hiccups.
  • Debug log exports now capture much more detail about playback and process exits, which makes crash reports far more useful and shortens investigations into difficult playback failures.

https://android.stfuai.com

v2.1.5

Rebuilds the Play Queue into consistent, easy-to-tap cards, makes home-screen widget artwork survive offline, and fixes a stubborn crash when resuming playback after the app had been backgrounded.

Features & changes

  • The Play Queue has been rebuilt: uniform episode cards with full-width, two-line titles, evenly balanced spacing, and consistently aligned actions, so nothing feels cramped or misaligned.
  • The "Now Playing" card at the top of the queue now scrolls with the list instead of staying pinned, giving you more room to see what is coming up.
  • Home-screen widget cover art is now cached in an offline-safe form, so artwork keeps showing even with no network and no matter how large the original image is.
  • Every tab shows a little more content thanks to a slimmed-down header.

Bug fixes

  • Fixed a persistent crash that could happen when resuming or waking playback after the app had been in the background.
  • Hardened the home-screen widget: play and pause now stay in sync with the notification, and taps are more reliable when the widget starts from cold.
  • Queue rows are more accessible: proper-sized touch targets and TalkBack labels, plus a backstop so long episode text no longer overflows.
  • Episode analysis now waits longer before giving up (up to about 21 minutes), and stalled downloads back off more patiently instead of hammering the server.

https://android.stfuai.com

v2.0.11

Tightens up places where choosing what to play, scrubbing, or starting playback from another surface (widget, car screen, notification) could behave differently than expected.

Features & changes

  • Playback handoffs from podcast detail, the queue, widgets, and Android Auto should now feel more consistent.
  • Starting a different episode is better about preserving the episode you were already listening to, including its resume position.
  • Android Auto seek is now properly wired up, so the car's seek bar actually moves playback instead of doing nothing.

Bug fixes

  • Manual seeks and automatic skippable-segment jumps are now treated more separately, which should reduce cases where one kind of jump confuses the other.
  • Manual seeks now re-assert the audio session, improving reliability after scrubbing or skip-forward and skip-back actions.
  • Android Auto queue playback now shares more of the same handoff behavior as the in-app queue.

Back-end changes

  • The Android Auto seek path is fully wired up in the app, but still needs testing in a real car.

https://android.stfuai.com

v2.0.10

Mostly about getting the public-facing story of the app into better shape: the Play Store listing, website, screenshots, and ads.

Features & changes

  • Refreshed the Play Store listing, website, screenshots, and marketing copy to better explain the real app: automatic ad skipping, downloaded playback, AI-found skippable segments, RSS and OPML support, and the subscription model.

Minor tweaks

  • Cleaned up stale marketing claims that no longer matched the current app.
  • Kept Android Auto copy more cautious, since that path still needs validation in real cars.

https://android.stfuai.com

v2.0.9

A grab bag of fixes that make the player feel more trustworthy, especially after long background sessions.

Features & changes

  • You can now drag the full-player progress bar smoothly instead of only tapping to jump.
  • While scrubbing, the progress fill and time display update as your finger moves.
  • Subscription refresh logic now does a better job of deciding when a podcast feed actually needs a fresh check.

Bug fixes

  • End-of-episode sleep timers now pause safely near the end instead of accidentally advancing the queue.
  • Fresh skippable-segment results can now land during long background playback instead of waiting forever for the app to notice.
  • Cloud restore is more careful about keeping the correct episode analysis and playback speed.
  • Duplicate episode-finished events are handled more defensively, so one episode ending cannot trigger duplicate follow-up actions.

Back-end changes

  • Background "check for new episodes" work is now separated more cleanly from the heavier sync work that runs while the app is open.

https://android.stfuai.com

v2.0.7

A chunky reliability release: fewer stuck loading states and fewer situations where you have to tap something twice.

Features & changes

  • Resume recovery should appear less often and dismiss much faster when it does appear.
  • When new episodes are added while the player is idle, the app can now prime the top queue item so your next Play tap starts right away.
  • Podcast descriptions now open in a dedicated pop-up instead of trying to cram a giant wall of text into the podcast header.
  • The hidden developer settings screen now includes tuning options for resume recovery.

Bug fixes

  • Fixed a queue Analyze button issue where repeated taps could start competing analysis runs before the screen showed anything was happening.
  • Fixed podcast feeds with special characters (like "&") failing to load after an earlier under-the-hood security update.
  • Improved voice dictation and audio focus handling: the app now refreshes its audio session before playback and keeps an eye out for unexplained pauses.

Back-end changes

  • Manual analyze, re-analyze, and force re-upload now share more of the same logic, which should mean less duplicate work and fewer inconsistent errors.
  • Resume recovery keeps its crash-prevention safety net but stays out of your way far more.

Minor tweaks

  • Cleaned up pop-up layouts and accessibility labels across several screens.
  • Network outage logging is much quieter; a brief signal drop no longer floods the log with repeated errors.

https://android.stfuai.com

v2.0.6

Targets one very specific but very annoying Android Auto problem: playback could look like it started from the car screen, but no audio would actually come out.

Bug fixes

  • Fixed silent playback when starting audio from Android Auto.
  • Improved playback recovery for cases where the app had been idle in the background long enough for Android to tear down parts of the audio setup.
  • The same recovery path helps widget and notification playback behave more consistently.

Back-end changes

  • Android Auto now reuses the app's existing audio refresh logic instead of a separate recovery path.

https://android.stfuai.com

v2.0.5

The app is now much better at noticing new episodes when you are not using it, and several Android notification bugs are fixed.

Features & changes

  • The app can now discover new episodes in the background and notify you, even when the app is fully closed.
  • Background discovery adds new episodes to your queue without trying to download or analyze them until the app is open again.
  • Episode actions got smarter, especially around analysis and subscription-related flows.
  • Added a hidden developer settings screen for troubleshooting advanced playback behavior.

Bug fixes

  • Fixed a persistent extra "Playing audio in background" Android notification that could hang around after pausing.
  • Improved resume recovery and sync startup so signed-in users do not get stale or mixed-up state at launch.
  • Notification handling got a cleanup pass, so tapping and routing should feel more predictable.

Back-end changes

  • Background work now respects Android's scheduling rules.
  • The app is more careful to do only lightweight work in the background, then pick up downloads and analysis when the app is open.
  • Added better crash capture to make Android failures easier to diagnose.

https://android.stfuai.com

v2.0.4

Makes repeat analysis reliably target the exact episode you asked about, plus some account recovery polish.

Features & changes

  • Re-analysis now identifies the exact episode more consistently, so repeat analysis passes land on the right target.
  • Force reprocess and force re-upload flows got more reliable for episodes that need a fresh analysis pass.
  • Account recovery and password-change handling got some polish.

Bug fixes

  • Hardened the upload flow so fewer edge cases turn into confusing failures.
  • Improved playback resilience in a few recovery paths.
  • Cleaned up analysis verification so the app can better tell when results belong to the episode currently being handled.

Back-end changes

  • Added more guardrails around episode identity and analysis jobs; most of the benefit is things quietly failing less.

Minor tweaks

  • Reduced warning noise around normal fallback behavior.

https://android.stfuai.com

v2.0.3

Better re-analysis feedback and smoother progress display, plus a few playback cleanup fixes so the app looks less stuck while work is happening.

Features & changes

  • Re-analyze progress now stays visible even if you leave the player and come back.
  • Analysis progress now starts correctly at 0%.
  • Progress now moves more smoothly between processing milestones, so it is clear the app is still working.

Bug fixes

  • Fixed a progress bar bug where an episode could look 100% complete while it was still playing.
  • Improved cleanup so two episodes are less likely to overlap during player recovery or file cleanup.
  • Fixed analysis cancellation when marking an episode done.
  • Improved trial eligibility checks by trusting Google Play where it matters.

Back-end changes

  • Analysis state is now more consistent, so the queue, the player, and background work agree with each other more often.

https://android.stfuai.com

v2.0.2

Makes the subscription screen clearer, especially around free trials, annual plans, and what happens when you back out of a purchase.

Features & changes

  • Added support for annual subscription options.
  • Redesigned the trial pricing display so free trial offers are easier to understand.
  • Plus and Pro trial support is now better reflected in the app.
  • Annual subscription options now stay visible when they are supposed to, including for trial-eligible users.

Bug fixes

  • Fixed purchase cancellation handling, so backing out of a purchase no longer leaves the app in a confused state.

Back-end changes

  • Subscription plumbing became much more flexible around monthly, annual, hidden, and trial-eligible plans.
  • Added more checks around subscription state so the app trusts the right source at the right time.

Minor tweaks

  • Cleaned up subscription copy and plan display behavior.

https://android.stfuai.com

v2.0.0

The big audio engine swap. Playback moved to a newer engine to improve reliability and background behavior.

Features & changes

  • Playback was rebuilt on a newer, more capable audio engine.
  • Improved background playback support, especially for long listening sessions.
  • Automatic skippable-segment behavior kept working through the engine change.
  • Playback speed handling was cleaned up so speed changes apply more reliably.

Bug fixes

  • Fixed a case where manually seeking into a skipped segment could cause the app to skip again when it should not.
  • Reduced confusing upload warnings that were not actually problems you could do anything about.

Back-end changes

  • This was a major internal change, so most of the work went into keeping the existing podcast-player behavior intact while swapping out the machinery underneath. Extra safety checks were added around playback.

https://android.stfuai.com

v1.9.6

Focused on making podcast discovery, syncing, and episode analysis more reliable. Unglamorous work, but it cuts down on the weird one-off failures.

Features & changes

  • Podcast feeds are now treated as the primary source of truth more consistently.
  • Added better handling for podcasts that need special subscription or feed-source treatment.
  • Improved the force re-upload and re-analysis flows for episodes that need another analysis pass.

Bug fixes

  • Fixed played episodes reappearing in the queue after a sync.
  • Fixed force sync getting blocked in some cases where it should have been allowed to run.
  • Fixed settings being re-synced on restart when they did not need to be.
  • Fixed very long episodes failing analysis because their audio was being cut off during upload.
  • Fixed podcast feeds with lots of special character codes failing to load.

Back-end changes

  • Improved episode transition handling so the mini-player and full player stay in agreement more often.
  • Added more safety around the upload, download, and analysis flows.

Minor tweaks

  • Cleaned up several warning messages that made normal fallback behavior sound scarier than it was.

https://android.stfuai.com

v1.9.5

Makes the app easier to understand when sync, downloads, or playback are being weird.

Features & changes

  • The debug log viewer now has better filters, so useful information is easier to find when something goes sideways.
  • Download behavior is clearer when Wi-Fi-only rules or sync timing affect what the app is doing.
  • Playback speed settings now do a better job of showing when a podcast-specific setting is overriding the default.

Bug fixes

  • Improved cloud sync behavior around the queue, settings, and playback state.
  • Tightened a few cases where settings could feel stale after restarting the app or switching contexts.

Back-end changes

  • Continued working through sync edge cases from real-world use, especially where background state, queue updates, and user settings overlap.

Minor tweaks

  • Cleaned up a bunch of logging so normal app activity no longer reads like a string of errors.
  • Reduced unnecessary warning noise so actual problems stand out.

https://android.stfuai.com

v1.9.4

Mostly Android Auto follow-up work, plus a handful of small playback and description fixes.

Features & changes

  • The player's duration display can now be tapped to switch between total duration, remaining time, and remaining time adjusted for playback speed.
  • Android Auto queue browsing got a round of follow-up fixes: the queue list should stop jumping around while playback updates, and tapping an episode should do the correct thing more reliably, including loading the episode and starting playback when possible.

Bug fixes

  • Episode descriptions now decode character codes like "&" into "&".
  • New-episode queue ordering was tightened up so new episodes land where your podcast settings say they should.
  • Resume recovery got a little more cleanup after the big v1.9.3 stampede fix.

Back-end changes

  • Added guardrails around how many episodes the app will try to analyze automatically at once, so it does not try to do too much at the same time.
  • Continued hardening the Android Auto integration, especially around media actions and queue refreshes.

https://android.stfuai.com

v1.9.3

The STAMPEDE release: fixes the app freezing after long stretches in the background, plus queue ordering and text-display fixes.

Bug fixes

  • Fixed new-episode queue ordering.
  • Fixed character codes like "&" showing up literally in episode text instead of being displayed as "&".
  • Fixed the app freezing when you returned to it after 10 or more minutes in the background. This was far worse if you turned the screen off with the app open and came back later; the app could lock up for a long while and sometimes needed a force-close to recover.

Back-end changes

  • The freeze turned out to be a "thundering herd" (awesome name; I wish all my screw-ups had cool names like that): after a long nap, every timer and refresh in the app tried to fire at once. The app now notices when it wakes from an extended background stay, calmly resets its timers, health-checks the audio player, and clears any stale loading state instead of trampling itself.

https://android.stfuai.com

v1.9.2

Android Auto! Browse your queue and control playback from your car's display, plus a batch of Android Auto fixes caught during final pre-release checks.

Features & changes

  • Android Auto support: browse your playback queue and control playback (play and pause, skip forward and backward, seek) directly from your car's Android Auto display.
  • Selecting an episode from the Android Auto queue downloads it (if needed) and starts playback immediately.
  • Ad skipping and skippable-segment detection should work automatically during Android Auto playback, same as on your phone.
  • Queue content stays in sync between the phone app and Android Auto in real time.
  • (I genuinely had no way to test this in a real car before release, so I'm looking forward to seeing what the community thinks!)

Bug fixes

  • Fixed several Android Auto issues caught before release, including a probable crash when selecting an episode from the car screen and taps in the browsing list that could silently do nothing.

https://android.stfuai.com

v1.9.1

A couple of small fixes, all aimed at making playback resume reliably after Android cleans up the app in the background.

Bug fixes

  • Fixed the audio player occasionally failing to resume after the app sat in the background long enough for Android to reclaim its resources.
  • Fixed tapping play on the home-screen widget or notification controls occasionally failing with timeouts or "player does not exist" errors after a long background stay. Previously, the only workaround was to force-close and reopen the app.

Back-end changes

  • The app now checks the health of the audio player before playing. If Android destroyed the player while the app was suspended, the app automatically rebuilds it, reloads the episode from the downloaded file, and resumes at the correct position.
  • If loading an episode fails on the first attempt, the app now fully resets and retries once before giving up. This should keep one-off temporary hiccups from turning into visible crashes, delays, or other issues.
  • I hope.
  • Added safeguards so the automatic recovery logic can never get stuck in a loop.

https://android.stfuai.com

v1.9.0

This release adds home-screen widgets, fixes a couple of queue and episode-description annoyances, and makes episode analysis noticeably smarter.

Features & changes

  • Added widgets! Control playback right from your home screen.
  • You would not believe how difficult this was. ಠ_ಠ

Bug fixes

  • Fixed a bug where the episode description would not scroll all the way to the bottom, so some info (usually some skippable segments) never showed up.
  • The trash icon in the queue is now a "done" icon, and removing an episode from your queue now properly marks it as done.

Back-end changes

  • Episodes that have already been analyzed before are now recognized more often, so results come back faster.
  • Significantly improved analysis intelligence and decreased dumbness and stupidificationism.

https://android.stfuai.com