Skip to content

cpulse v0.4.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 21:21

v0.4.0

cpulse is now a startup debugger, not just a state viewer. It names the root cause, runs health probes inside containers, draws a scaled startup timeline, and presents everything in a lazydocker-style shell.

Added

  • cpulse doctor — headless diagnosis that prints root cause + findings and exits 1 on any critical finding. Filter with --project NAME.
  • Doctor engine — twelve rules covering blocked-by-unhealthy, failed/unhealthy services, init failures, missing healthchecks, restart loops, OOM kills, slow startup, and common healthcheck/network misconfigurations.
  • Root-cause analysis — walks unsatisfied depends_on chains to the broken endpoint and surfaces the critical path plus a useful log line per culprit.
  • Health probes — Health tab (4) inspects the compose healthcheck; Enter runs it inside the container (binary check, one-shot run, port listening, URL host analysis).
  • Startup timeline — project Timeline tab (2 / t) with a scaled Gantt of display-state transitions (staggered bars, labeled axis).
  • Graph tab — roomy pstree with edge conditions (needs postgres:healthy ✕).
  • CPU/MEM stats — live columns in the service list and sparklines on the Stats tab (2s ticker; 500ms Docker poll unchanged).
  • degraded state when a running container has restarted 3+ times.
  • Waiting-since hints — blocked services show how long they've been waiting (≥5s).

Changed

  • Lazydocker-style UI — left column (project + nested dependency tree), right main panel with context-sensitive tabs:
    • Service: Logs · Stats · Deps · Health (14)
    • Project: Doctor · Timeline · Graph (13)
  • Actions menu moved from a to x (restart, stop, start, rebuild, cascade, probe, exec).
  • f filter now cycles all → failed → waiting; b retired.
  • d / t jump to Doctor / Timeline; Enter zooms (or jumps / runs probe); Esc always goes back and never quits.
  • Deps tab now includes impact: direct dependents, transitive dependents, and suggested restart order.
  • README updated for the doctor CLI and new keybindings.

Fixed

  • GoReleaser Homebrew formula path pointed at the tap's Formula/ directory.

Breaking / keybinding changes from v0.3.0

  • ax for the actions menu
  • b (blocked-only filter) removed; use f to cycle into waiting
  • Inspector Overview tab replaced by Stats / Health / project Doctor tabs

Changelog

  • 34591eb feat: startup debugger with doctor, probes, timeline, and improved UI
  • a1f6d60 fix: point GoReleaser homebrew formula at the tap's Formula/ directory