• v0.28.0 f6197d2f4e

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

    eofredj released this 2026-07-11 23:58:23 +02:00 | 226 commits to main since this release

    Features

    • feat(reload): start podman.socket for each user during reload
    • feat(operator): use PodName= from .pod files via context hint

    🐛 Bug Fixes

    • fix(operator): remove redundant text in ErrPodNotFound/ErrContainerNotFound messages

    🔧 Other Changes

    • chore(version): Release v0.28.0

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.28.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.27.1...v0.28.0

    🔨 Build Metadata

    • Git Commit: f6197d2
    • Build Date: 2026-07-11 22:03:04 UTC

    🔐 Checksums

    e096e6a6aaf7b2037a388eaaa9de88554df058cb9300355317f9ac6ef1204575  pods-ctl
    
    Downloads
  • v0.27.1 8f10e48a5b

    v0.27.1
    All checks were successful
    / release (push) Successful in 27s
    / build-test (push) Successful in 11m27s
    Stable

    eofredj released this 2026-07-11 21:44:46 +02:00 | 230 commits to main since this release

    🐛 Bug Fixes

    • fix(status): surface InspectPod error instead of showing false 'active'

    🔧 Other Changes

    • chore(version): Release v0.27.1

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.27.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.27.0...v0.27.1

    🔨 Build Metadata

    • Git Commit: 8f10e48
    • Build Date: 2026-07-11 19:52:08 UTC

    🔐 Checksums

    01db8a0952a074a74be52561dc0fbde76d39fe8183f0d6582d2f949df9e9dd97  pods-ctl
    
    Downloads
  • v0.27.0 9b0776b43e

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

    eofredj released this 2026-07-11 19:49:29 +02:00 | 232 commits to main since this release

    Features

    • feat(04-02): auto-refresh after successful actions (D-11)
    • feat(04-02): implement state-preserving refresh (D-08, D-10)
    • feat(04-01): fix confirmation dialog defaults
    • feat(04-01): implement stacked colored toast system
    • feat(05): phase complete - help overlay width fix + UAT tests
    • feat(05-02): fill footerSegments events pane gap
    • feat(05-02): rewrite helpEntries to derive from keymap metadata
    • feat(05-01): add keymap field to Model struct
    • feat(05-01): implement keymap metadata methods

    🐛 Bug Fixes

    • fix(health): show actual pod errors instead of misleading message
    • fix(refresh-deps): display per-pod errors on partial failure
    • fix(recover): context-aware hint for missing systemd services
    • fix(operator): distinguish ErrServiceNotFound from ErrPodNotFound
    • fix(05): revise plans based on checker feedback
    • fix(03): revise plans based on checker feedback

    📚 Documentation

    • docs(05-help-keybindings): create phase plan
    • docs(state): record phase 5 context session
    • docs(05): capture phase context
    • docs(04-pod-actions): create phase plan

    🔧 Other Changes

    • chore(version): Release v0.27.0
    • test(04-02): add failing tests for state-preserving refresh
    • test(04-01): add failing tests for confirmation default fixes
    • test(04-01): add failing tests for toast system evolution
    • test(05): UAT complete - all 3 tests pass after overlay width fix
    • test(05): complete UAT - 2 passed, 1 issue
    • test(05-02): add TestFooterSegments_FilterHints for acceptance criteria
    • test(05-02): update tests for context-aware help and Tab behavior
    • test(05-02): add failing tests for keymap-derived help overlay
    • test(05-01): expand keymap tests for comprehensive metadata coverage
    • test(05-01): add failing tests for keymap metadata methods

    📦 Installation

    # Download the binary
    curl -LO "https://git.desord.re/desordre/pods-ctl/releases/download/v0.27.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.26.0...v0.27.0

    🔨 Build Metadata

    • Git Commit: 9b0776b
    • Build Date: 2026-07-11 17:56:49 UTC

    🔐 Checksums

    3eaea768ec1256477bd48c8273f60633a01ea452931c4fd78002f0db5d22c579  pods-ctl
    
    Downloads
  • 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 | 262 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 | 269 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 | 286 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 | 292 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 | 294 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 | 316 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 | 332 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