Skip to content

feat(ui): operator triage board + richer pods columns - #24

Merged
ErfanY merged 1 commit into
mainfrom
feat/triage-board
Jun 25, 2026
Merged

feat(ui): operator triage board + richer pods columns#24
ErfanY merged 1 commit into
mainfrom
feat/triage-board

Conversation

@ErfanY

@ErfanY ErfanY commented Jun 25, 2026

Copy link
Copy Markdown
Owner

Summary

The operator daily-driver view: :triage [namespace|all] (alias :issues) — a live, worst-first board of only the pods that need attention.

[TRIAGE] default · 3 critical · 3 warning | j/k move · esc close
[XX]  default  api-7d9-x   CrashLoopBackOff   12  no   0s
[XX]  default  worker-aa   OOMKilled           4  no   0s
[!!]  default  init-bb     Pending             0  no   0s
[!!]  default  slow-dd     NotReady            0  no   0s
  • Critical [XX]: CrashLoop/OOM/ImagePull/Error/Evicted/Failed
  • Warning [!!]: Pending, NotReady (Running but failing readiness — JVM slow-start), restart-hot (≥3)
  • Healthy pods omitted; title summarizes counts; capped at 500 worst-first; rebuilt live each frame.

Pods table columns

Added RST · CPU · %CPU/R · %CPU/L · MEM · %MEM/R · %MEM/L · IP · NODE. RST (restarts) colors yellow ≥3, red ≥10. Metric headers are the explicit %CPU/R-style form.

Model / fixes

  • Extracted gains restarts, ready, pod_ip (the crashloop/readiness/IP signals the status string and prior columns lacked).
  • Fixed classify_status_severity to flag *BackOff/ImagePullBackOff as critical (was silently Ok) — also corrects table coloring.

Testing

  • make validate green (106 tests + release build)
  • tests: restart/readiness/IP extraction; triage selection + ordering + counts; pods table renders the new columns

🤖 Generated with Claude Code

Triage board (`:triage`/`:issues [namespace|all]`): a live, worst-first board of
only the pods needing an operator's attention — CrashLoopBackOff/OOMKilled/
ImagePullBackOff/Error (critical), Pending/NotReady/restart-hot ≥3 (warning).
Healthy pods are omitted; the title summarizes `N critical · M warning`; capped
at 500 rows worst-first. Rebuilt from store state each frame; navigate j/k+g/G,
esc closes. This is the daily-driver "is anything wrong, and where" view.

Pods table gained the columns operators expect:
RST · CPU · %CPU/R · %CPU/L · MEM · %MEM/R · %MEM/L · IP · NODE. RST (container
restarts) colors yellow at ≥3, red at ≥10. Metric headers are the explicit
%CPU/R-style form.

Model: add `restarts`, `ready`, and `pod_ip` to the lean `Extracted` (the
crashloop/readiness/IP signals the status string and prior columns lacked).
Also fixed `classify_status_severity` to flag `*BackOff`/`ImagePullBackOff` as
critical (was silently Ok) — corrects table coloring too.

Tests: restart/readiness/IP extraction; triage selection + worst-first ordering
+ counts; pods table renders RST/IP/NODE and the percentage columns.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ErfanY
ErfanY merged commit dadb18d into main Jun 25, 2026
1 check passed
@ErfanY
ErfanY deleted the feat/triage-board branch June 25, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant