Skip to content

Releases

DistillPod v0.25.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Nov 01:16
4f6aca8

DistillPod 0.25.0-alpha.1 adds a sleep timer, playback effects and per-show speeds, a home-screen widget, and search across your local library. It also improves storage cleanup, queue controls, saved moments and sync recovery.

  • Sleep timer. Pause after 5, 10, 15, 30, 45 or 60 minutes of playing time, or at the end of the current episode. The last 15 seconds fade out; a manual pause freezes the countdown. Extend it by five minutes or cancel from Now Playing. The service owns the timer, so navigating away does not cancel it; it ends if Android stops the service and is not restored after process death.
  • Playback speed and effects. Adjust speed in 0.1× steps between 0.5× and 3×, retain the existing presets, or remember a default for each show. Skip silence and a moderate volume boost are optional and off by default. An unavailable boost leaves ordinary playback working and shows an explanation. These preferences are stored on this device and are excluded from backup and sync.
  • Home-screen widget. See the current show and episode, play/pause, open Now Playing, or save the last 60 seconds as a moment. Actions use the live media session; a stale widget refreshes after a tap. Episode and show titles are visible on the home screen.
  • Search your library. The Search tab finds followed shows, episodes, prepared transcript passages and saved moments locally. Tap a passage to open its transcript. Public podcast-directory search remains an explicit action. Matches are bounded; the search is not an exhaustive export of the library.
  • Clear local audio after review. Settings → Storage previews completed and unfinished downloads and managed audio cache, then asks for confirmation. Only the reviewed selection is eligible. Playing, queued, processing and automatically preparing audio is protected; new or changed copies are kept. Transcripts, saved insights, models and listening progress remain. Partial results are reported, and cancelling cannot restore files already deleted. Bulk transcript cleanup and the new configurable retention rules remain unfinished.
  • Clearer pages and queue controls. Saved has separate Moments and Posts tabs, compact cards and a simpler moment page. Moment deletion asks for confirmation. Queue rows expose move/remove actions and TalkBack actions. Library resume cards agree with the player, dates are consistent, episode actions are easier to reach, and feed errors identify the affected followed shows with recovery actions. Settings has compact accessible group headings and a regular About row.
  • Permission recovery. The first explicit download or transcript preparation can explain and request notification access on Android 13+. Denial does not block work or trigger repeated prompts; Settings remains available. Voice microphone denial offers system app settings when needed. Android 13+ Back handling is enabled.
  • Playback and sync reliability. Measured episode durations survive refreshes of unchanged played media. Playback readiness is released even when startup restoration fails. Continuous playback checkpoints occur about every ten seconds, with immediate saves at pause, seek and other boundaries. Sync triggers coalesce, Sync now can replace retry-backoff work, and refused changes are set aside with Retry/Discard controls so later changes proceed. Restored records become eligible for normal sync, query-bearing episode locators are handled without syncing private query parameters, and unchanged transcript artifacts avoid repeated rebuilding.
  • Privacy and maintenance. Android Auto artwork is handed to accepted browsers through individual read grants. Unchanged refresh configuration retains its schedule, cancelled refresh-all stops promptly, and storage/download errors provide more useful recovery guidance. Several validation fixtures were corrected without weakening their assertions.

The intended signed update uses version code 48, preserving the application ID and signing certificate. Database schema 12 and portable backup schema 7 are unchanged. Voice preview remains enabled for distribution; content uploads and history compaction remain disabled. Protocol-4 history recovery support is included, but this release neither upgrades accounts for compaction nor deletes cloud history. Enabling compaction requires a separately authorized rules deployment and a later explicitly enabled build. No backend deployment is required for this update.

Known limits: abrupt process death can lose roughly ten seconds of continuous playback progress. File removal and database updates are not one atomic operation, so cleanup reports partial outcomes. Sync backoff replacement retains a narrow start race; offline and Android background restrictions still apply. A failed sync scheduling chain may need another trigger or periodic recovery. Audio effects vary by phone. Android Auto artwork has emulator grant coverage rather than a real car-host/DHU check. No measured battery-life improvement or live-account validation is claimed.

Validation: the default and voice-enabled configurations passed unit tests, lint and APK assembly on the combined candidate, together with 160 tooling tests. Eight real-WorkManager scheduling scenarios passed on an isolated API35 emulator and a Galaxy S22 Ultra running Android16: foreground/background bursts, one follow-up to active work, pause, actual retry backoff, Sync now replacement, and synthetic-state recovery after process stop/reopen. The offline phone probe used a separate app and synthetic worker outcomes; the owner's DistillPod installation was unchanged. These checks establish scheduling behavior, not live cloud delivery or battery life. Feature-specific S22 evidence also covers cleanup, checkpoints, queue, timer, effects, widget and notification permissions at their recorded implementation revisions. No owner-app upgrade or live-account test is claimed. Predictive Back gesture rendering and real Android Auto artwork host/DHU behavior remain unverified. Publication separately validates the tagged source, release build and signed APK.

View changes since 0.24.1-alpha.1.

DistillPod v0.24.1-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 23:00
7225ff9

DistillPod 0.24.1-alpha.1 improves download recovery, queue playback and account recovery, and fixes a headphone-voice service shutdown that could crash the app.

  • Recoverable background-download refusals. Episode and model downloads retry when Android refuses their foreground-service start. If the bounded attempts are exhausted, the download pauses with a message asking you to open DistillPod and resume. Partial files and resume information are retained. Other failures before a transfer begins are marked failed instead of leaving a queued row without work.

  • Pause while waiting. Pausing a queued download now persists even before its worker starts, including during network or retry waits. Restarting the app does not automatically resume a deliberately paused download. System stops are distinguished from app cancellation so unfinished work can remain queued for Android to reschedule.

  • Safer headphone-voice shutdown. If a voice-service start reaches the app after its key is missing, the service now completes Android's required foreground promotion before stopping, avoiding the reproduced early-return crash.

  • More useful, content-safe crash diagnostics. Foreground-service failures receive an allowlisted service category and, for start timeouts, an indication of whether Android recorded the start call site. Raw service messages and class names remain redacted. This does not identify or claim to fix the original unidentified 0.23.0 foreground-service incident.

  • Clearer queue, smoother enqueue. Time remaining for the current episode uses the player duration across listening views. Finished items show “Played,” and the queue groups its existing order into History, Now playing and Up next, initially focusing the current item. Adding or moving an episode uses incremental playlist commands instead of rebuilding and re-preparing the playing item. Compact/drag/swipe row actions and preservation of measured duration across feed refreshes remain separate follow-ups.

  • Safer account and API recovery. Concurrent token refreshes preserve newer sign-ins, and only a matching explicit invalid grant disconnects the current credential. An unauthorized request gets one refresh/retry; access denial, quota exhaustion and temporary service errors have distinct recovery paths. Rejected temporary rate-limit requests get bounded retries, without replaying partially delivered streams. Long waits, process termination and errors after streaming begins can still require a manual retry.

  • Automation follows meaningful changes. Show preparation no longer wakes its coordinator for playback-position or transfer-progress updates alone. A job needing user attention no longer blocks later eligible episodes, while actively running work remains serialized. The show page identifies blocked jobs and retains Retry preparation. Stage updates preserve job order and do not recreate removed jobs. This is not a measured battery-life claim.

Install the signed APK as an update over your existing DistillPod installation. Version code 46 retains the application ID and signing identity. Database schema 12, portable backup schema 7, Firebase protocol, rules and distribution configuration are unchanged. The voice preview remains enabled, and automatic cleanup remains disabled. No backend deployment is required.

Validation includes regression tests for download rejection, pause/recovery and service diagnostics. Test-only corrections wait for transfer and library readiness, target the intended vertical list, and wait for audio ownership to be released before fixture cleanup; original acceptance assertions and production deletion protection are retained. Publication requires full hosted validation of the release candidate, successful exact-source main validation and the release workflow.

Device evidence and limits: isolated Galaxy S22 / Android 16 builds demonstrated background refusal/retry exhaustion, persistent pause, partial-download Resume and the voice missing-key crash before and after the fix. The corresponding production code is unchanged from those tested revisions. Separate isolated S22 tests covered Play next while playing on the actual playback service, and offline synthetic account-vault/Keystore reopening and connection-state behavior. These do not establish exhaustive queue/Bluetooth coverage or a live provider/account test. Automation device evidence used synthetic transcript-progress and playback-checkpoint writes, not real Whisper decoding or audio playback; the original idle incident and live Resume/sign-in recovery were not reproduced. The owner installation was not changed. Real system/long-running foreground timeouts, notification Pause and model downloads were not physically exercised; those paths rely on automated evidence. The original cold-process download trigger was approximated by a background retry. No signed upgrade on the owner's installation or live cross-device test is claimed. Android may still require you to open the app to resume downloads.

Bulk audio cleanup, automatic retention, local transcript deletion and the ChatGPT integration remain unfinished and are not included.

View all changes since 0.24.0-alpha.1.

DistillPod v0.24.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 16:35
a97f90e

DistillPod 0.24.0-alpha.1 shows when subscribed YouTube videos were published and what their creators wrote about them. It also fixes a diagnostics bug that could discard every pending report at once.

  • YouTube publication dates and descriptions. Videos from subscribed YouTube channels and playlists now show their publication date in episode lists and on the episode page. The episode page also shows the video's original description. Each refresh reads YouTube's public feed for the channel or playlist, which covers the newest 15 videos. Older videos and videos already in your library get their details the first time you open their episode page. While the details load, the page says it is checking. If YouTube can't be reached, the page says so and offers Retry. If YouTube has no date or description for a video, the page says that it is unavailable. DistillPod never invents a date or description. Dates outside the current year include the year. Videos that YouTube dates only by day keep that calendar day in time zones behind UTC.
  • Ordering with real dates. Episode order within a show is unchanged. Views ordered by date across shows now place dated YouTube videos at their real publication dates instead of after every dated episode. These views include the library list and the Shows "latest episode" sort and card date. Show automation now applies its usual start date to newly found dated YouTube videos, the same as podcast episodes.
  • Diagnostics outbox fix. If pending diagnostic reports exceeded the 5 MB limit, DistillPod deleted all of them instead of only the oldest. It now removes only as many reports as needed to get back under the limit, starting with the oldest routine reports.

Install the signed APK as an update over your existing DistillPod installation. Version code 45 retains the application ID and signing identity. Database schema 12, portable backup schema 7, Firebase protocol, rules and distribution configuration are unchanged. Publication dates and descriptions are stored only on this device and are not synced. The voice preview remains enabled, and automatic cleanup remains disabled. No backend deployment is required.

Privacy: refreshing a YouTube channel or playlist now makes one extra request, without your account, to YouTube's public feed. Opening a YouTube video that is missing details makes one more lookup for that video. See privacy.

Automated tests cover the YouTube feed parsing, the merging of details, filling in details for older videos, the date and description messages, and the diagnostics outbox limits. Full hosted Android, native, Firebase and isolated-emulator validation passed on the merged source of both changes. The YouTube feed was compared manually against yt-dlp for one public channel and one public playlist on 2026-11-12. YouTube can change that feed without notice. No new physical-device run, signed upgrade on the owner's installation or live cross-device test was performed for this release.

Bulk audio cleanup, automatic retention, local transcript deletion and the ChatGPT integration remain unfinished and are not included.

View all changes since 0.23.3-alpha.1.

DistillPod v0.23.3-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 12:49
3e1fca3

DistillPod 0.23.3-alpha.1 is a maintenance release for the development and validation pipeline. App behavior is unchanged from 0.23.2-alpha.1.

  • Lighter draft previews. Work-in-progress code pull requests defer expensive builds and emulator checks until they are marked ready for review. These draft previews are explicitly incomplete and cannot satisfy the merge gate. Ready code pull requests, main and release builds still require full validation; documentation-only pull requests retain their validated documentation route.
  • Clearer acceptance-test timing. CI records elapsed time and exit status for startup, ordinary, cloud and voice emulator phases. Existing test selection, failure handling and required checks are retained; this does not claim an app performance improvement.

Install the signed APK as an update over your existing DistillPod installation. Version code 44 retains the application ID and signing identity. Database schema 12, portable backup schema 7, Firebase protocol, rules and distribution configuration are unchanged. The voice preview remains enabled, and automatic cleanup remains disabled. No backend deployment is required.

CI-routing and timing regression tests and documentation checks passed locally. Publication is gated on full hosted Android, native, Firebase and isolated-emulator validation of the release candidate and exact merged source, followed by release-workflow validation. No new physical-device run, signed upgrade on the owner's installation or live cross-device test was performed for this pipeline-only maintenance release.

Bulk audio cleanup, automatic retention, local transcript deletion and the ChatGPT integration remain unfinished and are not included.

View all changes since 0.23.2-alpha.1.

DistillPod v0.23.2-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 22:01
02c8c5d

DistillPod 0.23.2-alpha.1 is a maintenance update focused on diagnostic validation and build-failure reporting. It adds no new user-facing features.

  • More reliable diagnostic tests. Producer tests can isolate physical disk-flush latency while retaining checks for file contents, publication order and failures. Normal app construction still uses the same native disk synchronization at the same persistence boundaries.
  • Correct timestamp checks. Diagnostic tests validate observation and emission timestamps independently instead of assuming wall-clock samples always increase. Production timestamps and diagnostic content are unchanged.
  • Better failure evidence. Additional test probes preserve bounded worker evidence, and CI retains Gradle exception stacks to help investigate packaging failures. The earlier packaging failure's underlying cause remains unconfirmed; current-source packaging passed.

Install the signed APK as an update over your existing DistillPod installation. Version code 43 retains the application ID and signing identity. Database schema 12, portable backup schema 7, Firebase protocol, rules and distribution configuration are unchanged. The voice preview remains enabled, and automatic cleanup remains disabled. No backend deployment is required.

Validation includes both default and voice unit-test, lint and build checks, native/default persistence regression tests, and full hosted emulator acceptance. Injected test fixtures do not establish physical durability or a disk-flush performance guarantee. No new physical-device run, signed upgrade on the owner's installation or live cross-device test was performed for this maintenance release.

Bulk audio cleanup, automatic retention, local transcript deletion and the ChatGPT integration remain unfinished and are not included.

View all changes since 0.23.1-alpha.1.

DistillPod v0.23.1-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 12:42
ee72a0b

DistillPod 0.23.1-alpha.1 better protects downloaded audio while playback and transcription are using it.

  • Keep audio available during playback. A selected local copy is protected before it enters the playback queue, and remains protected while a player reader is closing after removal. If a selection becomes unavailable before playback starts, the app uses the remote source when available. Playback progress, video selection and queue ordering are preserved.
  • Keep audio available during transcription. Pausing a transcript no longer allows its downloaded file to be removed while the reader is still finishing. Failed setup and cancellation release ownership so a file does not stay unnecessarily blocked.
  • Improve validation. Notification tests avoid unrelated application startup, test database cleanup waits for its readers, and CI preserves the default debug APK before validating voice. Diagnostic test probes collect more evidence for an intermittent timeout; its cause remains under investigation.

Install the signed APK as an update over your existing DistillPod installation. Version code 42 retains the application ID and signing identity. Local database schema 12, portable backup schema 7, Firebase protocol and rules are unchanged from 0.23.0-alpha.1. The distribution build retains the voice preview and existing Firebase configuration. No backend deployment is required.

The included code passed both default and voice unit-test, lint and build checks, full hosted emulator acceptance, and isolated offline Galaxy S22 tests for the audio-ownership changes. These synthetic tests cover controlled file and service lifetimes; they do not establish every OEM scheduling or audio-routing condition. A signed upgrade on the owner's installation and live cross-device delivery were not tested for this release.

Bulk cleanup controls, automatic retention, local transcript deletion and the ChatGPT integration remain unfinished and are not included. Automatic cleanup stays disabled. Existing queue writes remain asynchronous and can be lost if Android kills the process before they finish.

View all changes since 0.23.0-alpha.1.

DistillPod v0.23.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Nov 22:48
0174ab0

DistillPod 0.23.0-alpha.1 makes it easier to organize Shows and manage the playback queue, and improves recovery when Android delays transcription.

  • Find and organize shows. Filter audio and video, sort by title, last played or latest episode, and pin shows to the top of the current results. Cards show format, latest known episode date and unfinished count. Filters, sorting and pins are stored on each installation.
  • Manage the whole queue. Reorder items in playback order, including the current episode. Clear queue and stop playback asks for confirmation and preserves downloads and listening progress. The app protects a queue order you explicitly choose during sync from older pending playback writes. Later edits still take precedence.
  • Recover transcription. When Android rejects foreground startup, DistillPod retries with backoff and retains saved chunks. After five rejections, it pauses the job and offers Resume. Late state updates also respect deleted episodes and newer transcript revisions.
  • Get clearer feedback. Voice questions explain missing or stale transcript context before interrupting playback. Download removal explains when audio is protected by playback, the queue, transcription or a download in progress. TalkBack announces the diagnostics, usage-statistics and rewind controls as labeled switches.

Install the signed APK as an update over your existing DistillPod installation. Version code 41 retains the application ID and signing identity. The app upgrades the local database from schema 11 to 12 to record when new audio copies and transcript revisions are created. Existing content keeps an unknown age, and automatic cleanup remains disabled. Portable backups stay at schema 7 and exclude these local timestamps. Firebase protocol, rules and sync scope stay at the previous release's versions. The APK retains the voice preview and its setup, credit and transcript requirements. The source archive, component manifest and notices accompany the APK.

Queue writes remain asynchronous and can be lost if Android kills the process before they finish. WorkManager decides when a transcription retry runs. Feature validation includes emulator checks and isolated Galaxy S22 runs for queue controls, transcription recovery and lifetime, voice readiness, protected deletion, settings switches and the schema migration. The migration checks used synthetic data. Coverage of a signed upgrade on the owner's installation and live cross-device delivery is pending. The ChatGPT integration is still in development.

View all changes since 0.22.0-alpha.1.

DistillPod v0.22.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Nov 12:53
7a815ee

DistillPod 0.22.0-alpha.1 gives voice questions the available transcript from the beginning of an episode up to your listening position, with a prompt designed for more natural explanations.

  • Ask about earlier ideas: the former two-minute and 12,000-character cutoffs are removed. Each question sends all available valid completed transcript segments up to the captured listening position in chronological order. Future or partially heard segments, invalid timestamps, and other audio revisions are excluded. Missing transcript passages are not invented or automatically transcribed.
  • Get explanations and examples: the voice prompt now explicitly allows general knowledge, analogies, comparisons and reasoning without a routine restricted-context preface. Claims about what a speaker said, quotations and timestamps must still be grounded in the supplied transcript. Answers remain brief, in the question's language, and limited to one interaction.
  • Send context before recording: the transcript is sent separately from instructions in bounded, Unicode-safe parts. Recording starts only after every part is acknowledged. Automatic provider truncation is disabled; recognized context-capacity errors explain that an earlier listening position may be needed rather than silently discarding the beginning. There is no automatic paid retry or summarization fallback.
  • Understand the cost and scope: voice settings now state that questions and the available transcript up to your listening position go to OpenAI using your API credits. Longer transcripts consume more input credits. The existing model, encrypted key storage and voice opt-in requirements remain unchanged.
  • Production troubleshooting guidance: the repository now documents an evidence-based error-triage workflow. This documentation does not add monitoring, uploads or scheduled device work.

Install the signed APK as an update without uninstalling. Version code 40 supersedes code 39 and retains the application ID and signing identity. Database schema 11, portable backup schema 7, Firebase protocol/rules and sync scope are unchanged. Older backups remain importable; new exports still require an app supporting schema 7. Paid content sync remains disabled, and voice preview remains enabled with its existing setup requirements. The matching GPL source archive, component manifest and notices accompany the APK.

Known alpha limitations: full context means the available completed transcript, which may be partial or have gaps. Existing current-audio, source, stale-state and 15-second coverage requirements still apply. Missing or insufficiently recent context can still pause playback and show the generic readiness error tracked in #57; that separate fix is not included. Large transcripts remain subject to provider capacity, setup timeouts and network conditions. Live answer phrasing, actual provider capacity behavior, billing and long-context latency have not been measured with a live request. The prompt encourages natural, accurate answers but does not guarantee their quality. Existing storage, background, diagnostics and YouTube limitations from 0.21.0-alpha.1 remain.

The full scope is all changes since 0.21.0-alpha.1: merged PRs #55 and #65. Automated coverage includes transcript selection, database snapshots, Unicode-safe transport, matching acknowledgements, cancellation and recognized capacity errors. An isolated Android 16 / API 36 emulator verified all 360 completed passages in a long partial transcript reach a fake provider before synthetic recording, while excluding wrong-revision and future speech. This establishes payload and protocol behavior, not live model performance. Release publication is gated by the exact candidate's Android CI and signed-build verification. The scoped change does not alter microphone/audio routing, Bluetooth, permissions, playback leases, background scheduling or upgrade persistence; no new physical-phone validation or owner-data upgrade is claimed.

DistillPod v0.21.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Nov 07:57
c1ef31c

DistillPod 0.21.0-alpha.1 brings clearer Settings and storage controls, safer queued transcription, easier show navigation, and more useful opt-in troubleshooting.

  • Go from an episode to its show: use View show in the expanded player or episode details. Back returns to where you were without changing playback, queue, position or speed. Unavailable shows are labeled rather than offering a broken link.
  • Find the right setting: Settings now groups Your library, Playback & transcripts, and App access & privacy. Notification access has its own page, charging preferences live under Transcript preparation, and Moment saved sound has one editor. Existing saved values and defaults stay unchanged.
  • Recover notification access: the page refreshes after returning from Android Settings and after permission requests. If notifications are denied, the Settings recovery action remains available.
  • Understand and manage storage: see actual logical file sizes for completed audio, partial/cache files and models. Manage downloads offers confirmed removal of selected completed audio or a paused partial, with checks for active playback, queue and transcription use. Saved text and listening progress are retained. Lowering the audio quota does not delete existing downloads.
  • Know what protects your library: clearer guidance distinguishes Library sync from manual file backups, explains included and excluded data, and shows backup age. A successful file read-back does not prove that a storage provider uploaded it to the cloud. This update does not enable additional sync or automatic backups.
  • Keep queued transcription under the chosen network policy: changes to Wi-Fi / unmetered downloads only now cover requests after capture priorities or transcript checkpoints move. Modern requests retain their identity and scheduling metadata. On the first reconciliation of older requests, an active transcript chunk can finish before pending legacy jobs are replaced; their old IDs, delays and retry history are not retained, but saved transcript text and checkpoints are. This first reconciliation can temporarily delay the Settings action and new audio/model enqueue operations.
  • Respect Pause: an older missing-model check no longer overwrites a paused transcript or a newer transcript revision.
  • Improve optional diagnostics: bounded critical-event capacity, correlation across dependencies and retries, separate generation/review outcomes, and content-free context-readiness evidence make distillation problems easier to investigate. Diagnostic summaries contain no transcripts, prompts, quotes, raw provider responses or credentials. Collection still follows existing consent. Private investigation tooling reads authorized diagnostic records; it does not add a new upload destination, AI request or background schedule.

Install the signed APK as an update without uninstalling. Version code 39 supersedes published code 38 and retains the application ID and signing identity. Database schema 11 and portable backup schema 7 are unchanged. Older backups remain importable; new exports still require an app supporting schema 7. Installation-local diagnostic provenance is excluded from backup export/import. Firebase protocol/rules and sync scope are unchanged, paid content sync stays disabled, and voice preview remains enabled with its existing setup and opt-in requirements. The matching GPL source archive, component manifest and notices accompany the APK.

Known alpha limitations: diagnostics are bounded and best effort, not a complete history or proof of provider billing; missing evidence remains unknown. Diagnostic changes do not improve or guarantee generated content quality. Storage usage is a refreshable logical-byte snapshot, and file deletion plus database updates are not atomic across process death. Existing YouTube limits remain: public extraction can be slow or unavailable by video/device/network, private/restricted/live content is unsupported, imports are bounded to 200 entries, and offline downloads contain audio only. Carrier billing, long-duration background scheduling and unplugged battery drain were not measured.

The full scope is all changes since 0.20.0-alpha.1, including merged PRs #28, #29, #33, #40–#48, #50–#52. Automated checks cover the combined code, including default and voice-enabled builds, native and Firebase checks, and isolated Android acceptance. Change-specific physical S22 evidence covers notification recovery, queued network policy, and transcription pause preservation. The lower-risk UI/reporting changes have documented automated/emulator assessments. Publication is gated by exact-candidate main CI and the release workflow's build, signature and alignment checks. Earlier device evidence does not mean this release APK was installed on the owner's phone, or establish other OEMs, older physical Android devices or an owner-data upgrade.

DistillPod v0.20.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 23:47
33e1a5e

DistillPod 0.20.0-alpha.1 makes video shows easier to find and watch, with immersive landscape fullscreen and stable search results.

  • Fullscreen video: use the fullscreen button, or turn the phone sideways while watching with auto-rotate enabled. Tap the picture to reveal play/pause, seeking, Distill, voice question and exit controls. Controls remain visible while paused or interacting. Back returns to the inline player; its controls stay reachable in landscape. Playback position, speed and queue stay with the same player. Leaving the app restores audio.
  • Distill and ask while watching: fullscreen Distill saves the current moment without leaving the player. Voice question uses the existing voice setup and session sheet. Voice preview remains enabled and still requires its normal key, microphone permission and opt-in.
  • Find the actual channel: All, Audio and Video filters distinguish podcast results from YouTube channels and playlists. Results from slower providers append without displacing already displayed results. Loading, failure and retry remain specific to each provider.
  • Latest channel videos first: following a channel uses its latest Videos tab. Refresh persists source order rather than alphabetizing undated videos, while preserving progress and downloads. Choose the channel result for newest uploads. Dated playlists sort newest first; undated playlists retain the publisher's order, which can be nonchronological. Refresh existing subscriptions to apply the corrected ordering.
  • Less repeated loading: valid signed streams can be reused beyond the previous two-minute cutoff, with a safety margin before expiry and a 30-minute maximum. Rejected URLs still get one fresh resolution. Cold starts remain dependent on YouTube and the network. Video is streamed; offline YouTube downloads still contain audio only.
  • Download settings: changes to Wi-Fi / unmetered downloads only now reconcile queued audio/model downloads and the current identified transcript request, including online transcript lookup for locally downloaded audio. Partial files, request identity and saved transcript progress are retained. An already-running attempt intentionally finishes under its original constraints; use Pause when it must stop immediately.

Install this signed APK as an update without uninstalling. Version code 38 preserves the application ID and retained signing identity. Local database schema 11 adds video ordering metadata and preserves existing records. This version imports older backups; newly exported backups use transfer schema 7 and require an updated app for restore. Firebase protocol/rules are unchanged, paid content sync remains disabled, and YouTube sources stay local for compatibility with older clients. The matching GPL source archive, component manifest and notices accompany the APK.

Known alpha limitations: public YouTube extraction can be slow or unavailable by video/device/network; private, restricted and live content is unsupported. Imports remain bounded to the first 200 source entries. A pre-existing queued-transcription edge case remains: if a capture changes the next segment while an older request is queued, that older request can retain its previous network setting. Pause that transcription before changing the setting, then resume under the new policy. The separate corrective patch is not included in this release. Carrier billing, long-duration background scheduling, unplugged battery drain and live paid voice requests were not measured.

Validation evidence is recorded in PR #26, PR #32 and the video experience record. The unchanged video code passed automated and emulator checks plus non-destructive S22 channel/playback/fullscreen/seek/capture/Back/background acceptance, with the owner session restored. Network-policy device checks used isolated validation packages. Publication is gated by exact-candidate main CI and the release workflow's build, signature and alignment checks; earlier phone evidence does not claim that this new version was installed on the phone.