Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 03:36
· 108 commits to main since this release

Changelog

  • 69fdf9a Initial commit
  • 3668c40 Merge branch '44-de-duplicate-duration-formatting-and-episode-to-item-mapping' into 'main'
  • 26f378d Merge branch 'feat-app-logo' into 'main'
  • cc24c78 Merge branch 'feat-github-goreleaser' into 'main'
  • 808e178 Merge branch 'fix-details-minimum-height' into 'main'
  • 3d4bd43 Merge branch 'fix-player-pane' into 'main'
  • d65758a Merge branch 'fix-queue-player-order' into 'main'
  • 8903396 Merge branch 'immediate-markers-padded-player' into 'main'
  • 74c4290 Merge branch 'issue-10-library' into 'main'
  • 3a5a6a1 Merge branch 'issue-11-player-ui' into 'main'
  • 5bfaa30 Merge branch 'issue-12-discovery' into 'main'
  • a49e679 Merge branch 'issue-12-discovery-ui' into 'main'
  • 6bf1a2f Merge branch 'issue-13-artwork' into 'main'
  • 05071c9 Merge branch 'issue-13-artwork-ui' into 'main'
  • 7a4af91 Merge branch 'issue-14-visualization' into 'main'
  • bdeded1 Merge branch 'issue-15-mpris' into 'main'
  • 9f89cca Merge branch 'issue-16-macos-media' into 'main'
  • dcb9ebe Merge branch 'issue-17-validation' into 'main'
  • efdb860 Merge branch 'issue-19-next-live' into 'main'
  • b65e964 Merge branch 'issue-2-ci-gates' into 'main'
  • b254581 Merge branch 'issue-20-playback-stack' into 'main'
  • 78abc6c Merge branch 'issue-21-unsubscribed-play' into 'main'
  • 2c3e48c Merge branch 'issue-22-latest-queue' into 'main'
  • e01fa13 Merge branch 'issue-23-discovery-entry' into 'main'
  • 0a493ee Merge branch 'issue-23-discovery-entry' into issue-24-podcast-index
  • be0a9ea Merge branch 'issue-24-podcast-index' into 'main'
  • c5fe56a Merge branch 'issue-25-seeking' into 'main'
  • 6b7c9d0 Merge branch 'issue-26-icons' into 'main'
  • 5b64662 Merge branch 'issue-27-details-keys' into 'main'
  • 66bc97a Merge branch 'issue-28-progress' into 'main'
  • 8b2ca76 Merge branch 'issue-29-theming' into 'main'
  • 4b5f1b9 Merge branch 'issue-3-profile' into 'main'
  • 6a7b1a4 Merge branch 'issue-30-settings' into 'main'
  • ed83c7a Merge branch 'issue-31-headers' into 'main'
  • 0a7ab59 Merge branch 'issue-32-columns' into 'main'
  • 96e8731 Merge branch 'issue-33-player' into 'main'
  • b1ac195 Merge branch 'issue-34-bottom-hints' into 'main'
  • 9973a27 Merge branch 'issue-35-column-headers' into 'main'
  • 3d75944 Merge branch 'issue-36-navigation-scroll' into 'main'
  • 56eb40f Merge branch 'issue-37-popup-inputs' into 'main'
  • 5ef0a92 Merge branch 'issue-38-player-hud' into 'main'
  • 15a230d Merge branch 'issue-39-library-destinations' into 'main'
  • b7078c6 Merge branch 'issue-39-library-sections' into 'main'
  • 6193a1a Merge branch 'issue-39-navigation' into 'main'
  • da1a5cd Merge branch 'issue-39-not-started' into 'main'
  • 0f7b705 Merge branch 'issue-39-predictable-playback' into 'main'
  • f0982c1 Merge branch 'issue-39-queue-undo' into 'main'
  • 967f286 Merge branch 'issue-39-up-next' into 'main'
  • 5ca286a Merge branch 'issue-4-storage' into 'main'
  • c1e23de Merge branch 'issue-40-search-url' into 'main'
  • a1b1ed7 Merge branch 'issue-43-hairline-spectrum' into 'main'
  • 40d606e Merge branch 'issue-45-unify-dialogs' into 'main'
  • d6fd35f Merge branch 'issue-48-episode-card' into 'main'
  • d79e366 Merge branch 'issue-49-compact-player' into 'main'
  • 174e24c Merge branch 'issue-5-mpv' into 'main'
  • 8bf5613 Merge branch 'issue-50-details-actions' into 'main'
  • 492b65d Merge branch 'issue-51-obvious-playback' into 'main'
  • bd4fa4b Merge branch 'issue-6-playback' into 'main'
  • b25b540 Merge branch 'issue-7-control' into 'main'
  • 85072fd Merge branch 'issue-8-tui' into 'main'
  • 0f9967c Merge branch 'issue-9-feeds' into 'main'
  • 66bc145 Merge branch 'main' of https://gitlab.com/susamn/podmutt into issue-15-mpris
  • fbf200f Merge branch 'main' of https://gitlab.com/susamn/podmutt into issue-16-macos-media
  • f458ae3 Merge branch 'readable-player-columns-logo' into 'main'
  • 9c82f73 Merge branch 'sonar-main' into 'main'
  • 4c1e6a1 Merge branch 'tight-player-identity-and-markers' into 'main'
  • 6b9098a Merge branch 'wider-queue-shared-player' into 'main'
  • e0ad1d3 Merge main and preserve MPRIS warnings alongside queue and progress updates
  • d06d179 feat(app): calculate percentage remains in stackItem
  • d92567d feat(app): connect settings theme switching and live config update
  • 6d74703 feat(app): populate structured input dialog fields in search and preview
  • a9f60dd feat(app): populate structured item metadata and queued indicators
  • d20de29 feat(app): propagate version to UI shell for top-right header display
  • d614c01 feat(app): remove inline hints from podcast panel in library and discovery
  • 2fa7869 feat(artwork): embed existing app logo as asynchronous cover fallback
  • c88cc9e feat(assets): add application logo and packaging assets for Linux and macOS
  • 128dca2 feat(details): bind contextual actions to inspected identity
  • 438d14e feat(details): share a compact episode card across sources
  • 1a86029 feat(discovery): accept feed and website URLs in search
  • afceeb0 feat(library): distinguish Not started from Continue listening
  • 5dd7060 feat(library): expose explicit episode destinations
  • c3d6ec3 feat(playback): choose newest pending publication independently of queue order
  • d56de88 feat(playback): correlate snapshots with monotonic publication revisions
  • 4d90223 feat(player): reserve a compact transport strip below Details
  • 2adadc7 feat(profile): add SetTheme to persist theme selection in config.toml
  • e3e90e1 feat(queue): remove immediately with actor-owned undo
  • 5f2c42b feat(theme): add palette definition, file parser, presets, and config setting
  • 83591ae feat(ui): add CLIAMP spectrum visualizer engine
  • 0c65035 feat(ui): add Unicode box headers with panel shortcut tags and version
  • ea846cd feat(ui): add columnar rendering for episodes and queue with channel colors
  • ede035d feat(ui): add contextual bottom hint bar with highlighted key styling
  • 7a90234 feat(ui): add interactive settings overlay with theme picker and summary
  • fbb5300 feat(ui): add styled input box rendering with cursor and centered modal overlay
  • fd1b306 feat(ui): add table column headers and Remains column in Queue
  • 8c82bf1 feat(ui): compact player identity and share exact list column budgets
  • e8eecfa feat(ui): connect theme to model and handle SIGUSR1 reload
  • 27ef83c feat(ui): dedicate Tab to panel switching, add h/l column scroll and ,/. seek
  • f874341 feat(ui): prioritize full channel identity and add responsive player padding
  • dc101a3 feat(ui): quietly separate library views from subscriptions
  • 854aea9 feat(ui): redesign Player pane with modern Cyberpunk HUD layout and full-length slider
  • e789284 feat(ui): replace heavy visualizer with calm 1px hairline scrolling spectrum
  • 877148d feat(ui): separate Now playing from pending Up next
  • 5d7e9c7 feat(ui): separate library selection, visible queue and current playback
  • d9d863e feat(ui): share bottom player space and restore queue remaining percentages
  • 754dbc3 feat(ui): update player pane with colored transport glyphs and cyan block bar
  • bc1389c feat(ui): use open/back navigation and list-only Tab cycling
  • 576bb33 feat: add bounded mpv JSON IPC requests and event delivery
  • 6e394fe feat: add bounded signed Podcast Index search without credential forwarding
  • c5b324e feat: add cached library views and explicit subscription edits
  • d021043 feat: add independent coalesced playback state watchers
  • b73a446 feat: add play pause stop next and JSON status CLI commands
  • 65d3f93 feat: add responsive Bubble Tea panes and centralized Vim navigation
  • 2bc7e84 feat: add reusable Unicode icons with explicit Nerd Font and text modes
  • 0340f58 feat: animate a labelled decorative player pattern with cancelable clock
  • 726c287 feat: attach optional Linux media controls to the foreground session
  • 1cbe085 feat: bound private Unix session-bus authentication
  • c4dd3f7 feat: cache explicit preview selections without subscribing
  • fea0da8 feat: compose library panels with stable selections and safe details
  • 3d3d8c7 feat: connect Apple discovery, previews, and subscribed-library search to the TUI
  • b82552f feat: connect cached podcast tabs and asynchronous feed updates
  • 7d8ea1f feat: connect selected playback, queue editing, and progress to the library UI
  • e4d4c25 feat: edit live queues by identity and toggle selected playback atomically
  • fcabfdd feat: export foreground MPRIS actions, properties, and signals
  • 5955ebf feat: expose 15-second Player seeks and native macOS skip commands
  • a0bf65f feat: expose bounded private running-instance controls
  • 93aad43 feat: expose discovery labels, contextual hints, and mode filter reset
  • 5cc487f feat: expose explicit Index scope with RSS identity reuse and documented access terms
  • 682d8fe feat: expose source-labelled search chart and read-only RSS entry points
  • d18badd feat: expose stable episode and mpv playlist entry lookups
  • 7231c13 feat: hold exclusive TUI profile ownership with flock
  • 375b0aa feat: initialize private SQLite storage with transactional migrations
  • ecde20a feat: integrate asynchronous artwork with bounded Kitty and ASCII detail columns
  • c160e0a feat: isolate bounded no-key podcast show search with quota and cache controls
  • 4465b71 feat: launch the TUI under exclusive foreground profile ownership
  • 2bc8642 feat: load Apple top podcast charts through a bounded batch lookup
  • 6aad73f feat: load TOML defaults and resolve private profile paths
  • f3d4828 feat: load bounded artwork with episode/show fallback and a byte-capped LRU
  • 1db9b1e feat: map playback snapshots to a limited MPRIS property model
  • fd9a69b feat: normalize RSS, RDF, and Atom podcast metadata
  • 5890307 feat: own foreground playback services and share keyboard actions
  • a7e8cc6 feat: own mpv through an inherited private socketpair
  • 28a413f feat: persist atomic latest-episode arrival receipts and queue appends
  • 554213d feat: persist current-first playback stack transitions atomically
  • 377d260 feat: persist feed metadata and stable episode identities
  • 621e209 feat: play and enqueue discovery episodes without subscription
  • cbcfb63 feat: preserve a moving playback clock across queue-only publications
  • c8b5ee7 feat: preserve playback selection and confirmation dialogs across UI updates
  • 14bd036 feat: preview feeds read-only and subscribe without refetching
  • 7785919 feat: prototype public macOS MediaPlayer bridge with shared actor lifecycle
  • 7e6d495 feat: reconcile subscribed arrivals on startup subscription and refresh
  • b0a5fac feat: refresh cached feeds with bounded conditional HTTP requests
  • def0440 feat: render bounded real-time Player progress with remaining time
  • c07f5a6 feat: resolve website RSS alternates with shared feed transport bounds
  • 7159a9c feat: save playback checkpoints and ordered queue atomically
  • 41a3795 feat: schedule cancellable foreground feed refresh cycles
  • c4760e7 feat: scroll focused Details with vim-style navigation
  • b71e959 feat: search cached subscribed episode titles and descriptions
  • 9e25eeb feat: seek through the actor with pause-safe checkpoints and stale-position guards
  • d8102a3 feat: serialize playback, resume checkpoints, and explicit queue advancement
  • 2ae3a10 feat: show playable stack rows with show and resume details
  • 1f8507f fix(details): retain pinned title in warning-constrained layouts
  • b8c41c3 fix(ui): keep current audio visible when history is marked complete
  • aa05a0d fix(ui): keep player identity adjacent and tighten episode markers
  • a4fc63d fix(ui): place Queue above Now playing in wide layouts
  • 5c316bf fix(ui): refresh queue markers from current audio and play replies
  • 2794645 fix(ui): separate current transport from episode selection
  • a3f6437 fix: checkpoint and reap mpv before canceling its process lifetime
  • 70eb9fb fix: clean up macOS handlers automatically on cancellation and framework failure
  • b333f43 fix: close mpv on playback failures even after request cancellation
  • 68589d6 fix: count coverage blocks once across package test runs
  • e4d616d fix: discard pinned episode details when returning to list navigation
  • 1e01c13 fix: do not retain a failed player factory result
  • 101f3b5 fix: enumerate first-party packages for coverage instrumentation
  • f9c571d fix: keep empty refresh status accurate
  • 864d3f8 fix: keep provider-independent preview and navigation labels
  • 26e355c fix: refresh Next capabilities from live queue availability
  • 1d81dc4 fix: reject invalid negative SQLite schema versions
  • 7c4f631 fix: reserve fixed details and player halves with independent transport controls
  • 54e921e fix: retain provider identity in compact loading states
  • 439fa1c fix: show loading empty and failed searches inside compact result panes
  • 21e8f78 fix: use valid observed media duration for runtime progress bounds
  • 93bc849 perf: reuse cached library rows while navigating and typing
  • b368baf refactor(app): de-duplicate episode item presentation across library and preview
  • d0043cb refactor(ui): consolidate duration formatting and fix details hour bug
  • 334b885 refactor(ui): extract two-column table row formatting helper
  • a017a66 refactor(ui): unify modal dialog rendering and consolidate text input editing
  • 3858512 refactor: place shared search icon on filter help without coupling discovery entries
  • b0d0dab refactor: share HTTP feed URL validation and relative resolution
  • fdb9e60 refactor: share bounded feed fetching with add and preview workflows
  • e73d7fc refactor: share stored episode identity with preview selection resolution
  • d0a93d8 test(app): cover browse-pause and offline restart lifecycle
  • e2bbe39 test(details): protect action targeting and preview lifecycle
  • bfc38a0 test(details): verify consistent sources and stable inspection
  • 17f476c test(library): cover destination scope and offline continuation
  • 36de07a test(playback): cover newest priority and atomic two-release arrivals
  • 1f0a724 test(player): cover compact layout and inspection lifecycle
  • 1dccf2b test(queue): exercise delete and undo through offline lifecycle
  • c982c49 test(queue): protect undo across live edits and advancement
  • 861a060 test(queue): verify pending-only editing and restart lifecycle
  • 11422df test(ui): cover browsing navigation and viewport paging
  • 84a30db test(ui): cover section navigation and compact paging