v2.6.10

Latest

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