feat: logs tab overhaul — severity tags, filtering, recovery durations #35

Merged
lerko merged 1 commits from feat/logs-overhaul into main 2026-05-28 00:35:24 +00:00
Owner

Summary

Logs tab was sparse and hard to scan. Now has proper visual structure.

Before

[18:38:21] Alert send failed (Discord Homelab): alert webhook returned HTTP 400
[18:38:18] Alert send failed (Discord Homelab): alert webhook returned HTTP 400

After

  18:38:21   DOWN   Monitor 'Immich' confirmed DOWN: connection refused
  18:38:25    UP    Monitor 'Immich' recovered (was down 14m)
  18:38:30   WARN   Monitor 'Backup' failed check 1/3
  18:39:00   SYS    Engine RESUMED (Active)

Changes

Logs tab (tab_logs.go):

  • 5 severity levels: DOWN (red), UP (green), WARN (amber), SYS (cyan), info (gray)
  • Severity rendered as inline tag badges, not whole-line coloring
  • Column-aligned: [timestamp] [tag] [message]
  • f key toggles filter: All vs Important (hides retry noise like "failed check 1/3")
  • Header shows count, filter state, hidden count

Engine (monitor.go):

  • Recovery messages include downtime duration: "recovered (was down 14m)"
  • UP→LATE transition logged: "heartbeat overdue"
  • Push recovery includes duration

Files (3)

  • internal/monitor/monitor.go — recovery duration, LATE log, fmtDurationShort helper
  • internal/tui/tab_logs.go — full rewrite with severity classification + rendering
  • internal/tui/tui.go — logFilterImportant field, f key handler, keybinding display
## Summary Logs tab was sparse and hard to scan. Now has proper visual structure. ### Before ``` [18:38:21] Alert send failed (Discord Homelab): alert webhook returned HTTP 400 [18:38:18] Alert send failed (Discord Homelab): alert webhook returned HTTP 400 ``` ### After ``` 18:38:21 DOWN Monitor 'Immich' confirmed DOWN: connection refused 18:38:25 UP Monitor 'Immich' recovered (was down 14m) 18:38:30 WARN Monitor 'Backup' failed check 1/3 18:39:00 SYS Engine RESUMED (Active) ``` ### Changes **Logs tab (`tab_logs.go`):** - 5 severity levels: DOWN (red), UP (green), WARN (amber), SYS (cyan), info (gray) - Severity rendered as inline tag badges, not whole-line coloring - Column-aligned: `[timestamp] [tag] [message]` - `f` key toggles filter: All vs Important (hides retry noise like "failed check 1/3") - Header shows count, filter state, hidden count **Engine (`monitor.go`):** - Recovery messages include downtime duration: "recovered (was down 14m)" - UP→LATE transition logged: "heartbeat overdue" - Push recovery includes duration ### Files (3) - `internal/monitor/monitor.go` — recovery duration, LATE log, fmtDurationShort helper - `internal/tui/tab_logs.go` — full rewrite with severity classification + rendering - `internal/tui/tui.go` — logFilterImportant field, `f` key handler, keybinding display
lerko added 1 commit 2026-05-28 00:15:00 +00:00
feat: logs tab overhaul — severity tags, filtering, recovery durations
CI / test (pull_request) Successful in 2m36s
CI / lint (pull_request) Successful in 1m1s
CI / vulncheck (pull_request) Successful in 51s
b14d5e19db
Logs tab visual overhaul:
- Severity-classified entries: DOWN (red), UP (green), WARN (amber),
  SYS (cyan), info (gray) — rendered as inline tags, not whole-line color
- Column-aligned format: [timestamp] [severity tag] [message]
- Filter toggle (f key): All vs Important only (hides retry noise)
- Header shows entry count, filter state, hidden count

Engine log improvements:
- Recovery messages include downtime duration ("was down 14m")
- LATE transition logged ("heartbeat overdue")
- Push monitor recovery includes downtime duration
lerko merged commit f17f06a1c6 into main 2026-05-28 00:35:24 +00:00
lerko deleted branch feat/logs-overhaul 2026-05-28 00:35:24 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lerkolabs/uptop#35