• v0.26.0 9f44513f31

    v0.26.0
    All checks were successful
    / release (push) Successful in 50s
    / build-test (push) Successful in 6m49s
    Stable

    eofredj released this 2026-07-09 18:03:33 +02:00 | 450 commits to main since this release

    ✨ Features

    • feat(02-01): rewrite renderContainerDetail with bar+sparkline Metrics section
    • feat(02-01): add color parameter and noColor ASCII fallback to Bar and Sparkline

    🐛 Bug Fixes

    • fix(02-01): update all Bar/Sparkline callers to new 4-parameter signatures

    📚 Documentation

    • docs(02): plan metrics pane phase with UI-SPEC and research
    • docs: restore planning structure from commit 601684a

    🔧 Other Changes

    • chore(version): Release v0.26.0
    • test(02-02): add behavior tests for metrics rendering

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.26.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.25.1...v0.26.0

    🔨 Build Metadata

    • Git Commit: 9f44513
    • Build Date: 2026-07-09 16:06:06 UTC

    🔐 Checksums

    c662ee329787afb7b12509ee25701e204b6bcaf1ccfba9cc2a9eda59d8feb7cb  pods-ctl
    
    Downloads
  • v0.25.1 c6b817c6c2

    v0.25.1
    All checks were successful
    / build-test (push) Successful in 8m33s
    / release (push) Successful in 38s
    Stable

    eofredj released this 2026-07-07 08:31:21 +02:00 | 457 commits to main since this release

    📚 Documentation

    • docs: update continue-here — 4 of 7 packages wired
    • docs: update continue-here with phase 2 progress

    🔧 Other Changes

    • chore(version): Release v0.25.1
    • test(01): persist human verification items as UAT
    • verify(phase-01): add goal-backward verification report
    • refactor(tui): split update.go — extract non-key message handlers
    • refactor(tui): split panes.go (1218 lines) into per-pane files
    • refactor(tui): wire state.Store — embed *tree.State in Model
    • refactor(tui): wire layout.AdaptiveLayout into computeLayout
    • refactor(tui): wire overlay package — Stack.Update/Render for all overlays
    • refactor(tui): wire overlay package — Stack for overlay tracking
    • refactor(tui): wire input package — FocusManager for focus cycling
    • refactor(tui): wire widgets package — replace rendering helpers
    • refactor(tui): wire stream package — replace streamBuffer with stream.Buffer
    • refactor(tui): wire theme package into TUI
    • wip: tui-refactor phase 2-5 packages extracted (not yet wired)
    • wip: tui-refactor paused at 1/6 (tree package extracted)

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.25.1/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.25.0...v0.25.1

    🔨 Build Metadata

    • Git Commit: c6b817c
    • Build Date: 2026-07-07 06:40:25 UTC

    🔐 Checksums

    cb5fdabea21b05b8bdd08fcbac4f75e57a4b292b10d13b12a2d613f3d91dbfac  pods-ctl
    
    Downloads
  • v0.25.0 075722bdda

    v0.25.0
    All checks were successful
    / build-test (push) Successful in 7m3s
    / release (push) Successful in 9s
    Stable

    eofredj released this 2026-07-04 01:22:14 +02:00 | 474 commits to main since this release

    ✨ Features

    • feat(tui): log export, clipboard copy, simultaneous logs+events
    • feat(tui): layout improvements — proportions, adaptive columns, narrow mode
    • feat(tui): visual polish — pane separators, colored sparklines, smooth bars

    🔧 Other Changes

    • chore(version): Release v0.25.0
    • perf(tui): cache diffPane queries, fix double-render, ring buffer, batch events
    • refactor(tui): split browse.go (5000 lines) into focused files

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.25.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.24.1...v0.25.0

    🔨 Build Metadata

    • Git Commit: 075722b
    • Build Date: 2026-07-03 23:29:28 UTC

    🔐 Checksums

    52f2dc9e2c346acb776f9a1d74689c1d5ddb36a8228c72f0224ac784b169fd5e  pods-ctl
    
    Downloads
  • v0.24.1 293a80a32f

    v0.24.1
    All checks were successful
    / build-test (push) Successful in 7m15s
    / release (push) Successful in 53s
    Stable

    eofredj released this 2026-07-03 22:53:51 +02:00 | 480 commits to main since this release

    🐛 Bug Fixes

    • fix(cmd): make --user and --dry-run consistent across all commands

    🔧 Other Changes

    • chore(version): Release v0.24.1

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.24.1/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.24.0...v0.24.1

    🔨 Build Metadata

    • Git Commit: 293a80a
    • Build Date: 2026-07-03 21:02:01 UTC

    🔐 Checksums

    9e017841190f78cdabb17e31a6793bdeaccf466137d00d018861046591b19a0b  pods-ctl
    
    Downloads
  • v0.24.0 1da18040cb

    v0.24.0
    All checks were successful
    / release (push) Successful in 39s
    / build-test (push) Successful in 6m45s
    Stable

    eofredj released this 2026-07-03 22:10:17 +02:00 | 482 commits to main since this release

    ✨ Features

    • feat(logging): migrate diagnostics to log/slog with --verbose and --log-format flags
    • feat(errors): add sentinel errors for systemd, podman, and operators

    🐛 Bug Fixes

    • fix(cmd): make --compact/--watch persistent and validate per-command
    • fix(health): align table columns using ANSI-aware padding
    • fix(health): hide healthcheck details unless drift is present
    • fix(recover): auto-start missing pod and surface classification errors
    • fix(systemd): synchronize Client caches for concurrent use
    • fix(systemd): connect to user bus without mutating process environment
    • fix(cmd): honor --timeout flag across lifecycle and diagnostic commands
    • fix(cmd): honor --follow and --timestamps in logs command
    • fix(cmd): handle batch operator errors in prune/reload/update
    • fix(tui): resolve data race in loadData

    🔧 Other Changes

    • chore(version): Release v0.24.0
    • refactor(cmd): create internal/wire facade and remove low-level imports from cmd
    • refactor(config): move command-local flags out of Config
    • test(systemd): tag integration tests with //go:build integration
    • style: gofmt modified operator and cmd files
    • chore(cmd): remove dead helpers after batch operator migration
    • refactor(operator): migrate remaining commands to batch.Operator
    • refactor(registry): introduce Service facade and migrate maintenance commands
    • refactor(model): move healthcheck DTOs to internal/model
    • test: backfill tests for registry, output, cmd runners, and systemd

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.24.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.23.0...v0.24.0

    🔨 Build Metadata

    • Git Commit: 1da1804
    • Build Date: 2026-07-03 20:17:39 UTC

    🔐 Checksums

    c952876cb5d65bfc4d9f52159587129e1f6fbaa37b6b628425f874d5d21a8f16  pods-ctl
    
    Downloads
  • v0.23.0 0c200a4696

    v0.23.0
    All checks were successful
    / release (push) Successful in 10s
    / build-test (push) Successful in 4m20s
    Stable

    eofredj released this 2026-07-03 09:33:41 +02:00 | 504 commits to main since this release

    ✨ Features

    • feat(cmd/recover): migrate to operator-based recovery
    • feat(operator): add RefreshDependencies and RefreshImageCache to batch operator
    • feat(operator): add service resolution, status, healthcheck, recovery, and list methods

    🐛 Bug Fixes

    • fix(cmd/update): add timeouts to podman socket start and auto-update
    • fix(cmd/discover): add timeout context to systemd reload path
    • fix(cmd/reload): add timeout context to daemon-reload
    • fix(cmd): add timeout to ensurePodmanSocket helper

    🔧 Other Changes

    • chore(version): Release v0.23.0
    • refactor(cmd): remove duplicated helpers now provided by operators
    • refactor(tui): use operator methods for loading, exec, and auto-update
    • refactor(cmd/prune): use ensurePodmanSocket helper with timeout
    • refactor(cmd/upgrade): use batch operator for image cache refresh
    • refactor(cmd/refresh-deps): move cache refresh logic to batch operator
    • refactor(cmd/health): use operator for status and healthcheck assembly
    • refactor(cmd/status): use operator for healthcheck drift
    • refactor(systemd): add context.Context and default timeouts to all systemd operations

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.23.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.22.0...v0.23.0

    🔨 Build Metadata

    • Git Commit: 0c200a4
    • Build Date: 2026-07-03 07:35:35 UTC

    🔐 Checksums

    86fda76f5e3ddb86501babacad44e4e488bf2555bab4f187f925eae1d68a9ed3  pods-ctl
    
    Downloads
  • v0.22.0 906663e488

    v0.22.0
    All checks were successful
    / build-test (push) Successful in 6m32s
    / release (push) Successful in 33s
    Stable

    eofredj released this 2026-07-03 01:16:20 +02:00 | 520 commits to main since this release

    ✨ Features

    • feat(operator/pod): add ContainerLogsStream and Events methods
    • feat(operator/batch): add batch operator and container-level lifecycle methods
    • feat(operator): wire internal/operator/pod into AppContext
    • feat(operator): add user+pod scoped pod operator package

    🐛 Bug Fixes

    • fix(podman): decode container stats NDJSON response
    • fix(tui): correct diff pane rendering and image drift detection
    • fix(operator/pod): ensure ContainerStats never returns nil
    • fix(operator/pod): address code review quality issues
    • fix(operator): align Operator interface with runtime.* value types

    🔧 Other Changes

    • chore(version): Release v0.22.0
    • test(podman): add ContainerStats NDJSON decoding tests
    • refactor(tui): migrate loadContainersCmd to pod.Operator
    • chore(tui): remove duplicate newOperator, reuse existing newPodOperator
    • refactor(tui): migrate logs, events, and inspect panes to pod.Operator
    • refactor(cmd): migrate logs and events commands to pod.Operator
    • test(operator/batch): update fake pod operator for new interface methods
    • chore(cmd): remove unused getPodStatus and countPodContainers helpers
    • refactor(cmd): migrate list command to pod.Operator
    • refactor(cmd): migrate stats command to pod.Operator
    • refactor(tui): migrate pod stats loading to pod.Operator
    • refactor(tui): migrate bulk actions and diff to pod.Operator, remove unused helpers
    • refactor(tui): migrate container upgrade action to pod.Operator
    • refactor(tui): migrate container start/stop/restart to pod.Operator
    • refactor(cmd): migrate upgrade command to pod.Operator
    • refactor(cmd): migrate health command podman reads to pod.Operator
    • refactor(cmd): migrate status command to pod.Operator
    • chore(cmd): remove unused executor.go and update architecture docs
    • test(operator/pod): add container-level lifecycle tests
    • refactor(cmd): migrate start/stop/restart to batch operator

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.22.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.21.0...v0.22.0

    🔨 Build Metadata

    • Git Commit: 906663e
    • Build Date: 2026-07-02 23:23:19 UTC

    🔐 Checksums

    b774f4e19494b85a31c0a1a9f27eb7d63721331837d6d5335f3bd39f5f693f2c  pods-ctl
    
    Downloads
  • v0.21.0 d6d2bb995f

    v0.21.0
    All checks were successful
    / release (push) Successful in 10s
    / build-test (push) Successful in 3m40s
    Stable

    eofredj released this 2026-06-29 08:52:18 +02:00 | 551 commits to main since this release

    ✨ Features

    • feat(podman): add fine-grained role interfaces
    • feat(systemd): add fine-grained role interfaces

    📚 Documentation

    • docs(plan): add role interfaces implementation plan
    • docs: add role interfaces note to architecture overview

    🔧 Other Changes

    • chore(version): Release v0.21.0
    • refactor(events): narrow to podman.EventStreamer role interface
    • test(podman): verify role interfaces can be faked independently
    • chore(podman): add compile-time assertions for role interfaces
    • refactor(podman): compose PodmanClient from role interfaces
    • test(systemd): verify role interfaces can be faked independently
    • chore(systemd): add compile-time assertions for role interfaces
    • refactor(systemd): compose SystemdClient from role interfaces
    • chore: ignore .worktrees directory

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.21.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.20.0...v0.21.0

    🔨 Build Metadata

    • Git Commit: d6d2bb9
    • Build Date: 2026-06-29 06:54:40 UTC

    🔐 Checksums

    ff2947d7f981c4360b6407bac664f2f6b45cc400e43a12c7e97ec1aa26886b6e  pods-ctl
    
    Downloads
  • v0.20.0 5129c3b316

    v0.20.0
    All checks were successful
    / build-test (push) Successful in 6m37s
    / release (push) Successful in 32s
    Stable

    eofredj released this 2026-06-28 22:57:40 +02:00 | 564 commits to main since this release

    ✨ Features

    • feat(tui): render healthcheck config and drift in browse
    • feat(cmd): expose per-container healthchecks in status command
    • feat(cmd): expose declared and running healthchecks with drift in health command
    • feat(cmd): add healthcheck rendering and JSON helpers
    • feat(config): add BaseDir setting, --base-dir flag, and declared healthcheck lookup helper
    • feat(healthcheck): add shared drift comparison package
    • feat(db): add container_healthchecks table, Store methods, and EnsureHealthcheckUpToDate helper
    • feat(registry): parse and persist healthcheck directives from .container files
    • feat(podman): add typed HealthcheckConfig and DeclaredHealthcheck

    📚 Documentation

    • docs(changelog): add unreleased healthcheck feature entry
    • docs: update user-facing docs for healthcheck config drift and --base-dir
    • docs(plan): add TUI opportunistic fallback and baseDir field
    • docs(plan): fix safety and clarity gaps from third review
    • docs(plan): fix compile-level gaps from second review
    • docs(plan): fix implementation gaps from review
    • docs(plan): add healthcheck config implementation plan
    • docs(spec): minor clarifications from advisory review
    • docs(spec): clarify drift comparison, absent values, and shared package
    • docs(spec): address review feedback on drift and directive mapping
    • docs(spec): add healthcheck config surface design

    🔧 Other Changes

    • chore(version): Release v0.20.0
    • style: apply gofmt to unformatted source files

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.20.0/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.19.1...v0.20.0

    🔨 Build Metadata

    • Git Commit: 5129c3b
    • Build Date: 2026-06-28 21:04:41 UTC

    🔐 Checksums

    0bc6df5bff4e0001c1485d8093858f79107163dbdd1edc62c357b6ff1119a731  pods-ctl
    
    Downloads
  • v0.19.1 84411fdbc8

    v0.19.1
    All checks were successful
    / release (push) Successful in 22s
    / build-test (push) Successful in 5m6s
    Stable

    eofredj released this 2026-06-28 18:06:18 +02:00 | 586 commits to main since this release

    🐛 Bug Fixes

    • fix(cmd): detect missing registry before db.Open auto-creates it

    🔧 Other Changes

    • chore(version): Release v0.19.1

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.19.1/pods-ctl-linux-amd64"
    
    # Verify checksum
    sha256sum -c pods-ctl-linux-amd64.sha256
    
    # Make executable and move to PATH
    chmod +x pods-ctl-linux-amd64
    mv pods-ctl-linux-amd64 /usr/local/bin/pods-ctl
    

    📋 Full Changelog

    Compare v0.19.0...v0.19.1

    🔨 Build Metadata

    • Git Commit: 84411fd
    • Build Date: 2026-06-28 16:08:18 UTC

    🔐 Checksums

    c46a7782470c05c0af3f7b9d9f4f2c6e10457ff3817b485d9e1a7d93341630b3  pods-ctl
    
    Downloads