| Age | Commit message (Expand) | Author |
| 2026-10-30 | Fetch a second copy of an episode to subtract from the first | Peter Stone |
| 2026-10-29 | Judge a short line on a shorter run, and catch a bare music note | Peter Stone |
| 2026-10-29 | A music cue at the edge of a break is not part of the break | Peter Stone |
| 2026-10-29 | Decide where a break is line by line, not by how far the master drifted | Peter Stone |
| 2026-10-29 | Re-derive stored advertising when the rule improves | Peter Stone |
| 2026-10-29 | Pull a break's edges back off the programme | Peter Stone |
| 2026-10-29 | Do not claim to know why subtraction ran over | Peter Stone |
| 2026-10-29 | Recognise the episodes whose answer checks itself first | Peter Stone |
| 2026-10-29 | An episode started from the car resumes where it was left | Peter Stone |
| 2026-10-29 | Say what the length gap can and cannot see | Peter Stone |
| 2026-10-29 | Find the advertising by subtracting the publisher's master | Peter Stone |
| 2026-10-29 | Recognise the words in episodes no publisher transcript can describe | Peter Stone |
| 2026-10-28 | Read the advertising out of an episode's words | Peter Stone |
| 2026-10-28 | The app reads an episode's words, and follows them while they play | Peter Stone |
| 2026-10-28 | safefetch: an allowlist, and no proxy to go round it | Peter Stone |
| 2026-10-28 | Every outbound fetch may only reach a public address | Peter Stone |
| 2026-10-28 | Take publishers' transcripts, where they describe the copy we mirrored | Peter Stone |
| 2026-10-28 | The library row carries the show's artwork, not a dot | Peter Stone |
| 2026-10-28 | Library rows offer the newest waiting episode, and the car sorts like the phone | Peter Stone |
| 2026-10-27 | Plan: the labels are wired end to end, and when they are not applied | Peter Stone |
| 2026-10-27 | Use the labels: seed signatures from them, and take them back | Peter Stone |
| 2026-10-27 | Start testing the Compose screens | Peter Stone |
| 2026-10-27 | Write down a refused token instead of only remembering it | Peter Stone |
| 2026-10-27 | Follow the player, and put the ad button on the episode screen | Peter Stone |
| 2026-10-25 | Plan: step 4 of the UI redesign is done | Peter Stone |
| 2026-10-25 | Library and settings, with less in them | Peter Stone |
| 2026-10-24 | Fix the shadow run: resolve audio paths, and survive a bad file | Peter Stone |
| 2026-10-24 | Plan: mark the library built and the shadow run gathering | Peter Stone |
| 2026-10-24 | Shadow run: log what the signature library would cut, cut nothing | Peter Stone |
| 2026-10-24 | Store signatures, and age the ones that stop mattering | Peter Stone |
| 2026-10-24 | Send the listener's labels to the server and keep them | Peter Stone |
| 2026-10-24 | Spike: landmark hashing passes the gate for the signature library | Peter Stone |
| 2026-10-20 | Jump 25 seconds, the forward button's amount, not 45 | Peter Stone |
| 2026-10-20 | Add a "this is an ad" button to the notification | Peter Stone |
| 2026-10-20 | Publish how many episodes shared each break, and plan the rest | Claude |
| 2026-10-20 | Let the listener validate or invalidate a detected break from a popup | Peter Stone |
| 2026-10-19 | Episode screen: show name in the top bar, chapters fetched lazily | Peter Stone |
| 2026-10-19 | Make the episode screen the player and delete the separate player screen | Peter Stone |
| 2026-10-19 | Record that lowering the noise floor to 8s is wrong | Claude |
| 2026-10-19 | Replace the skip readout rows with three numbers and tappable marks | Peter Stone |
| 2026-10-17 | Record that the silent publisher fallback is gone | Claude |
| 2026-10-17 | Treat a rejected skip-server token as permanent, not a reason to wait | Peter Stone |
| 2026-10-17 | Wait for the server's copy instead of silently taking the publisher's | Peter Stone |
| 2026-10-17 | Refresh skips with bounded concurrency, not one at a time | Claude |
| 2026-10-16 | Refresh skips on feed refresh, without stamping server offsets onto publisher... | Peter Stone |
| 2026-10-16 | Say "breaks" on the fast-play toggle, not "ads" | Claude |
| 2026-10-16 | Centre the headphones on the launcher icon | Peter Stone |
| 2026-10-16 | Trim offered playback speeds to 1x, 1.1x, 1.25x, 2x | Peter Stone |
| 2026-10-16 | Add a toggle to play ad breaks at 3x instead of skipping them | Peter Stone |
| 2026-10-16 | Reverse: a served-shorter episode is furniture, not advertising | Peter Stone |