Releases: linuxmatters/jive-encoder
Release list
Jivedrop 0.4.1
Changes since 0.4.0
- chore(justfile): add release tasks (b67796c)
- build(deps): bump nixpkgs from
331800dto9ae611a(db6f0aa) - deps(deps): bump the gomod group with 2 updates (58550d7)
- feat(ui): make encoder format selection format-aware in UI and CLI (5d5fa03)
- chore: update ffmpeg-statigo to v8.1.1.2 (56f2a00)
- feat(encoder): add multi-format support with mp3, aac, and opus presets (64558a0)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.4.0
Highlights ✨
- Encoding progress UI completely redesigned: media-player-style stats row, spring-animated progress bar, spinner with settling animation, and 60 FPS rendering - courtesy of the Charm v2 library upgrade.
- Ctrl+C during encoding now cancels the FFmpeg pipeline cleanly, preventing a CGO use-after-free crash; files completed before the interrupt are preserved.
- Duration is now rounded to the nearest second rather than truncated, so episode lengths shown in podcast clients are accurate.
- Hugo frontmatter date key is now accepted in lowercase, fixing silent metadata failures on episodes written with lowercase YAML keys.
- Episode number is validated at the CLI boundary in both Hugo and Standalone modes, catching bad values before encoding begins rather than midway through.
- Non-TTY output (piped or CI environments) now correctly reports the encode stage rather than misleadingly reporting completion.
- Progress bar and percentage stay on a single line, fixing a layout wrapping regression on narrow terminals.
Changes since 0.3.4
- chore: update .gif (360cda4)
- style(ui): replace Hz text with Unicode CJK square ligature ㎐ (cdff2ba)
- fix(encoder): accept lowercase date key in Hugo frontmatter (4784bfb)
- style(ui): replace kHz text with Unicode CJK square ligature ㎑ (58c2fce)
- fix(encoder): round duration to nearest second instead of truncating (6a39614)
- refactor: remove self-evident comments across cmd and internal packages (2883e28)
- refactor(encoder): replace nil sentinel with explicit partial return flag (57021fa)
- refactor(cli): eliminate code smells in mode detection and god function (6a8e7a4)
- refactor(encoder): clarify FFmpeg buffer-source feed flag divergence (afbe463)
- refactor(encoder): simplify duration formatting with direct integer arithmetic (20acf17)
- refactor: eliminate code duplication across encoder and workflows (9fbe422)
- refactor(ui): remove dead code from ProgressUpdate handler (79783b4)
- build(deps): bump nixpkgs from
64c08a7to331800d(fdeeb5f) - chore: update.gif (cc4619b)
- fix(ui): keep progress bar and percentage on one line (d211e07)
- fix(ui): keep encoded file when Ctrl+C lands after encode completes (fd73572)
- docs: update Charm v2 bling demo GIF and trim summary spacing (0d0977d)
- fix(encoder): cancel encode on Ctrl+C to prevent cgo use-after-free (94547c1)
- style(ui): redesign encode progress layout with media-player stats row (6b67113)
- fix(just): restore test file references (7143da8)
- fix(cli): report encode stage, not completion, in non-TTY output (d4125ee)
- docs: add Charm v2 animation bling demo GIF (74202a9)
- fix(ui): use frozen realtime stat in completion view (106fe13)
- perf(ui): increase animation framerate to 60 FPS and freeze realtime stat (e16470e)
- feat(ui): add Charm v2 animation bling - spring bar, spinner, settling (adef580)
- docs: note Charm v2 charm.land import paths in AGENTS.md (8280497)
- fix(ci): exempt x/sync and go-runewidth from licence check (e437af3)
- chore(deps): upgrade Charm libraries to v2 (7f0bace)
- docs: import AGENTS.md via @ directive in CLAUDE.md (2358384)
- docs: reconcile README and AGENTS.md with current code (35f53cd)
- style: fix gofumpt alignment in standalone_test (80483b3)
- refactor(id3): drop unused TagInfo.Description field (a6e436e)
- refactor(cli): remove unused SubtitleStyle and HeaderStyle (ef63fa2)
- refactor(cmd): drop unused PostEncode outputPath parameter (7d9e963)
- refactor(cmd): drop unused CLIOptions.AudioFile (f960afd)
- refactor(cli): promote warning style to named variable (d55f798)
- refactor(cmd): hoist audio-file check into run (9df0625)
- refactor(encoder): extract shared encoder drain loop (6b5e016)
- refactor(cmd): construct workflows with parsed CLI options (ef0e4c1)
- refactor(encoder): drop unused FileStats.DurationSecs (cba7e4e)
- test: use strings stdlib helpers in tests (5905a41)
- refactor(id3): simplify cover-art scaling switch (01033df)
- refactor(ui): remove unused Complete accessor (9edc934)
- refactor(cli): remove unused PrintCover (3e85540)
- refactor(id3): drop dead logFn parameter from ScaleCoverArt (d32a51b)
- refactor(cmd): extract printPodcastStats helper (e1ecd72)
- feat(encoder): validate episode number at the boundary (a83bcc9)
- refactor(cmd): thread CLI fields into encode pipeline helpers (c42f71f)
- refactor(encoder): extract shared filter-graph drain loop (f290038)
- refactor(encoder): use strings.CutPrefix for path prefix handling (de76115)
- chore(tailor): refit and alter (3200144)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.3.4
Changes since 0.3.3
- chore: cleanse comments across cmd and internal packages (38697e4)
- build(deps): upgrade golang.org/x/sys to v0.45.0 (5ef67e1)
- build(deps): bump go to 1.26.3 (3e0f284)
- chore(deps): upgrade ffmpeg-statigo to v8.1.1.1 (f6b4411)
- build(deps): bump the github-actions group across 1 directory with 2 updates (ad1a40e)
- build(deps): bump nixpkgs from
2991645to64c08a7(b34065e) - deps(deps): bump golang.org/x/image in the gomod group (2524a0f)
- build(deps): bump nixpkgs from
549bd84to2991645(8d334a3) - deps(deps): bump golang.org/x/image in the gomod group (d45e804)
- build(deps): bump the github-actions group across 1 directory with 4 updates (#23) (5ae50e4)
- build(deps): bump nixpkgs from
5b2c2d8to549bd84(f7910e9) - ci: add Dependabot Nix updates (a7bac6c)
- build(deps): bump the github-actions group across 1 directory with 2 updates (76e383a)
- deps(deps): bump the gomod group across 1 directory with 2 updates (9ca960c)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.3.3
Changes since 0.3.2
- deps(deps): bump golang.org/x/image in the gomod group (#19) (29455e0)
- fix(workflows): handle all os.Stat errors and suppress cover art logging (852cd7e)
- refactor(main): complete workflow abstraction and simplify run() (ab89a75)
- refactor(main): wire workflow interface into run() (a747064)
- refactor(main): extract workflow abstraction for mode-specific operations (07cfb80)
- refactor(id3): invert dependencies for cover art logging (0ba634d)
- refactor: eliminate dead code and redundant style declarations (cddf2f5)
- refactor: use Go stdlib functions for string and slice operations (598a68e)
- test(main): fix path-containment check to prevent sibling directory false positives (a604e43)
- fix(lint): resolve 22+ Go linter errors across codebase (f7fc8d2)
- ci(workflows): consolidate build and release into comprehensive builder workflow (fa731a9)
- ci(tailor): fit with tailor project templates (3af5056)
- ci(gix): use go-version-file to acquire the correct Go release (f6c1044)
- chore: update ffmpeg-statigo to v8.0.1.4 (4d12208)
- build(deps): bump golang.org/x/image from 0.36.0 to 0.37.0 (36b4803)
- build(deps): bump actions/upload-artifact from 6 to 7 (73aa950)
- build(deps): bump golang.org/x/image from 0.35.0 to 0.36.0 (1b16c2b)
- build(deps): bump github.com/charmbracelet/bubbles from 0.21.0 to 0.21.1 (f62ad07)
- build(deps): bump github.com/alecthomas/kong from 1.13.0 to 1.14.0 (fbb191e)
- build(deps): bump golang.org/x/image from 0.34.0 to 0.35.0 (9dd89ab)
- chore: update ffmpeg-statigo to v8.0.1.3 (5437776)
- build(deps): bump golang.org/x/image from 0.33.0 to 0.34.0 (1badcd5)
- build(deps): bump actions/upload-artifact from 5 to 6 (ef235a8)
- build: update nixpkgs to latest revision (933f852)
- docs: consolidate AI assistant instructions into AGENTS.md (48623da)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.3.2
Changes since 0.3.1
- perf(id3,cli): parallelise cover art processing with encoding (9a3782c)
- perf(id3): skip PNG re-encoding when image already in acceptable range (fd0ec61)
- perf(encoder): calculate duration from encoder state instead of re-opening MP3 (6e8e54c)
- chore(cli): remove unused gradient colour exports (9f3960d)
- refactor(encoder): consolidate channel mode formatting logic (6ddfcf6)
- feat(id3): parameterise cover art description with artist fallback (625874a)
- chore(cli,ui): remove unused functions and variables (15c07a2)
- refactor(cli): consolidate duplicate frontmatter update prompts (1fe512f)
- test(encoder): verify progress callback values are valid (64ebf89)
- test(encoder): add comprehensive Close() safety tests (47f5da9)
- test(id3): expand test coverage for ID3 tag writing (6613553)
- test(cli): add comprehensive tests for validateStandaloneMode() function (c6075ff)
- test(cli): add comprehensive tests for validateHugoMode() function (b3bacc9)
- test(cli): add comprehensive tests for detectMode() function (3a22163)
- test(encoder): add comprehensive tests for ResolveCoverArtPath() (c4116e1)
- test(id3): add comprehensive tests for cover art scaling (72ac054)
- test(encoder): add comprehensive tests for UpdateFrontmatter() (1fe132d)
- test(cli): add comprehensive tests for filename and path logic (a03ca32)
- refactor(ui,encoder): disambiguate duration formatting functions (dd0cf9c)
- refactor(cli): extract Hugo defaults to named constants (12a030b)
- refactor(id3): replace custom bytesBuffer with bytes.Buffer (4a5b184)
- refactor(encoder): extract shared frontmatter delimiter parsing (9681e3b)
- refactor(ui): consolidate duplicate colour palette definitions (3560373)
- docs: improve README formatting and add explanation section (025fc2b)
- chore: update flake.lock (801e3af)
- refactor(justfile): improve justfile organization and update ffmpeg-statigo handling (e64c6f5)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.3.1
Changes since 0.3.0
- deps: update ffmpeg-statigo to v8.0.1.0 (4702ae7)
- style(ui): update UI theme to disco ball color palette (19f05d2)
- docs: update project tagline with clearer description (a0d937b)
- refactor: move ffmpeg-statigo submodule from vendor/ to third_party/ (3da22c5)
- feat: add ffmpeg submodule update command and improve build tasks (a9968bb)
- ci: remove checksum generation from release workflow (e547bc5)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.3.0
Changes since 0.2.0
- fix(demo): swap file argument order in demo commands (7f130b8)
- refactor(ci): consolidate build workflows with unified matrix (3f93a6c)
- feat: migrate from ffmpeg-go to ffmpeg-statigo (9dc727d)
- build(deps): bump actions/checkout from 5 to 6 (c58ee46)
- build(deps): bump golang.org/x/image from 0.32.0 to 0.33.0 (9771184)
- build(deps): bump github.com/alecthomas/kong from 1.12.1 to 1.13.0 (b49097e)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.2.0
Changes since 0.1.0
- docs: update tagline and description to be more concise (84f7237)
- feat(workflow): add standalone mode with flag-based metadata (c1ca961)
- feat(docs): add standalone workflow support specification (c78e36b)
- docs: update README and documentation for clarity (dcd0f17)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.
Jivedrop 0.1.0
Initial Release
- fix(workflow): refactor GitHub release workflow for parallel builds (52576db)
- docs: add demo GIF to README and update workflow description (e6da927)
- feat: add mp3 encoding test and reorganize justfile tasks (4048123)
- fix(encoder): correct encoder parameter from lowpass to cutoff (043a769)
- test(encoder): implement comprehensive test coverage (bb37b71)
- feat(frontmatter): add functionality to update podcast duration and file size (eb71a0e)
- feat(encoder): add MP3 file stats extraction for podcast frontmatter (7114b89)
- feat(ui): implement bubbletea UI for encoding progress (0f0fbfc)
- feat(id3): implement cover art scaling for podcast artwork (feacd1a)
- feat(metadata): implement ID3 tag writing and episode metadata extraction (e227966)
- feat(encoder): implement MP3 encoding functionality (4d74b2e)
- fix(go): downgrade go version from 1.25.2 to 1.24.2 (304e606)
- feat(cli): implement main CLI entry point for jivedrop (8fd5c21)
- docs: refine ID3 tag date format and frontmatter requirements (2e91294)
- build(deps): bump softprops/action-gh-release from 1 to 2 (9dc42cb)
- docs: update onboarding command to use specification docs (7e4314b)
- feat: initial project structure and specification (d9c517d)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jivedrop-linux-amd64
sudo mv jivedrop-linux-amd64 /usr/local/bin/jivedrop
# macOS (Apple Silicon)
chmod +x jivedrop-darwin-arm64
sudo mv jivedrop-darwin-arm64 /usr/local/bin/jivedropChecksums
SHA256 checksums are provided below for verification.