github caiolandgraf/grove v1.4.1
Grove v1.4.1 — Intelligent grove dev output & actionable startup hints

latest releases: v1.5.5, v1.5.4, v1.5.3...
one month ago

Grove v1.4.1

Release date: 2026-03-04


What's new

🖥️ Intelligent grove dev output formatting

grove dev now processes the running application's stdout/stderr and formats it intelligently instead of printing raw output to the terminal.

Structured JSON logs (slog / zap / zerolog)

Log lines emitted as JSON are automatically parsed and rendered as human-readable coloured output:

  08:38:28  INF  Booting application...
  08:38:28  INF  OpenTelemetry initialized  service=grove-app  endpoint=localhost:4318
  08:38:28  ERR  Failed to boot application  error=failed to connect to database: ...
  • Timestamp is trimmed to HH:MM:SS for readability
  • Level badges: INF (green) · WRN (yellow) · ERR (red) · DBG (gray)
  • Extra fields (e.g. service=, error=) are shown inline, dimmed
  • Works with any structured logger that emits level, msg and time fields — including Go's standard slog, zap and zerolog

Panic recovery block

Panics and their goroutine stack traces are captured and rendered as a styled block instead of raw text:

   PANIC 

  .env not found

  goroutine 1 [running]
  main.main()
    /Users/.../cmd/api/main.go:21 +0x410
  • PANIC badge in red
  • Panic message in bold red
  • Function names in gray
  • File/line references dimmed

💡 Actionable hints for common startup errors

When a known error pattern is detected in the application output, Grove prints a HINT block immediately below with the exact next step to take.

.env file not found

   HINT   Environment file not found.

    cp .env.example .env
    # then edit .env with your database credentials

Triggered by: panic: .env not found or any log entry containing .env not found.

Database connection refused

   HINT   Cannot connect to the database.

    # make sure your database is running:
    docker compose up -d
    # or check your DB_HOST / DB_PORT in .env

Triggered by: connection refused, dial error, failed to connect, or failed to initialize database in any log field.

Hints are shown once per rebuild — if the same error persists after the next file save, the hint appears again. No spam within the same run.


Bug fixes & polish

  • grove dev: application output is now indented consistently with the rest of Grove's terminal UI.
  • grove dev: panic state and hint tracking are reset on every rebuild so stale state never carries over between runs.

Upgrade

go install github.com/caiolandgraf/grove@latest
grove -v  # → v1.4.1

Breaking changes

None.


Full Changelog: v1.4.0...v1.4.1

Don't miss a new grove release

NewReleases is sending notifications on new releases.