mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-24 20:52:51 +00:00
3149ec61d8
The Workload Controllers table hides its Detail column below a 76rem container, and that column was the only place a Job's completion time and a CronJob's last success or last run were shown. The row expansion rendered only the generic Observed state, Last seen, Identity and Aliases, so a phone or a half-width pane had no way to read when a job finished. At 390px the 15 percent Kind track also clipped "DaemonSet", "StatefulSet" and "CronJob", and the Target track clipped "1 completions". The drawer's Kubernetes model now builds a per-kind controller section (Job, CronJob, DaemonSet, StatefulSet, ReplicaSet) that the always-visible summary tables render in the same slot as the Docker container section, so the facts are one tap away in every width and on the Infrastructure drawer too. Job rows lead with Started, Completed and Duration; CronJob rows with Schedule, Last run and Last success; each timestamp is the absolute time with its age in parentheses and wraps in a phone-width cell. Target, the counts, the StatefulSet service name, Namespace and Cluster follow, which also shows the service name the Detail column truncates at 1440px. The phone projection keeps Controller, Kind, Ready and Issues and demotes Target with platform-table-phone-hidden, widening Kind to 25 percent so every kind label fits whole. The Target count now pluralizes through getPlatformResourceCountNoun, so a single completion reads "1 completion" in the row as it does in the expansion. Verified with a Playwright clip sweep at 1440, 1280, 900 and 390px against a private mock-mode stack; the receipt records the measurements. Contract-Neutral: Kubernetes controller facts move into the existing drawer summary slot and the phone row uses the existing platform-table-phone-hidden marker; owning unified-resources clause updated; no frontend-primitives clause, primitive, or API change