## skyhook-io/radar — v1.13.1…v1.14.0

_73 commits._

### Features
- **feat(drain-plan): one deliberate choice for emptyDir data, not two** (77a4a2f)
- **feat(drain-plan): plan refresh, retry on failure, estimate caveat as tooltip** (6322c70)
- **Add automatically attributed historical workload metrics dashboards (#1734)** (71817cd)
- **feat(resources): import YAML files from a picker or drop target** (76e095c)
- **feat(rollouts): step timeline, ReplicaSet progression, AnalysisRun history** (499331e)
- **feat(rollouts): Experiment detail renderer** (8b2d4fb)
- **feat(rollouts): AnalysisTemplate + ClusterAnalysisTemplate detail renderer** (9718b22)
- **feat(rollouts): backend endpoint for full AnalysisRun history** (cc070ed)
- **feat(nodes): drain plan — classifier, read-only endpoint and plan dialog (#1584)** (fc87a49)
- **feat(sync): per-kind progressive readiness during initial sync (#1724)** (c160e5e)
- **Add Reflector support for ConfigMaps and Secrets (#1740)** (3d82b19)
- **Add LimitRange visibility and namespace links (#1696)** (7220584)

### Fixes
- **fix(desktop): don't crash when Prometheus discovery runs without a kubeconfig (#1787)** (0da1de7)
- **fix(drain): don't claim acceptance with nothing evicted; latch plan-unsupported** (32bdcb8)
- **fix(drain-plan): honest copy, and plan-less fallback for older backends** (c1aa6a3)
- **fix(drain): don't hold eviction slots across PDB backoff sleeps** (2592fea)
- **fix(drain-plan): focusable caveat trigger; drop stale ack at refresh time** (eb4dd40)
- **fix(server): size preview's envelope for worst-case JSON escaping** (ac988fe)
- **fix(resources): clear the loading status when an import supersedes another** (82837a3)
- **fix(server): bound preview's envelope and its YAML separately** (73474da)
- **fix(resources): stop a stale import landing on newer editor work** (233bedc)
- **fix(resources): detect file drags in Safari and report import progress** (4e14c65)
- **fix(server): bound the apply and preview request bodies** (60a5d80)
- **fix(rollouts): give a running step analysis the degraded tone** (0c88e53)
- **fix(rollouts): surface an Inconclusive Experiment** (bb942da)
- **fix(rollouts): put the live progression above the analysis history** (d739a9d)
- **fix(rollouts): guard the Experiment renderer against Katib's same-plural CRD; give it a real status/phase** (04f8a93)
- **fix(rollouts): correct Argo Rollouts analysis-template schema; fix blueGreen completion detection** (33b53cc)
- **fix(drain-plan): drop the plan mutation's toast metadata** (672f967)
- **fix(drain-plan): follow the Eviction API's budget rules; review follow-ups** (ee582af)
- **fix(ai): preserve target evidence for plural Hub run kinds (#1748)** (465c0df)
- **fix(argocd): give the reachability probe enough budget for .local DNS** (9802b44)
- **fix(helm): correct dependency validation, verify the resolved source, and make the refusals readable** (ac6c321)
- **fix(helm): preserve umbrella dependencies during values updates** (372fc63)
- **fix(gitops): surface why a Degraded Argo app is actually Degraded (#1624)** (04c0965)

### Backend
- **Cloud connect: when the in-app install is blocked, say what Radar tried, why it stopped, and what to do (#1772)** (a9c6f3d)
- **deps: Dependabot batch 2026-09-16 (React 19.3, x/net 0.59, typescript-eslint 8.70, +6) (#1786)** (4b9f2e2)
- **cloud: report the Helm release name on connect (#1783)** (605863b)
- **Say when the analysis history cannot be read** (6b51926)
- **Let a timeline carry its own analysis verdict** (d1e3db5)
- **Order same-second analysis runs the same way every time** (8e40be9)
- **Pin the Experiment plural collision** (abe49a9)
- **Cloud connect: carry the in-app outcome into the wizard link; name every outcome in plain words (#1770)** (8184b22)
- **Raise the Cloud funnel rollout to 100% (#1768)** (99a270f)
- **Require evidence before reporting unused ConfigMaps and Secrets (#1741)** (0fd4d04)
- **Keep a badge inside the cell it was given (#1763)** (f86fc80)
- **Authorize audit Secret and Crossplane subjects before evaluation (#1753)** (aea974b)
- **Environment-managed Argo CD card shows the live connection (#1761)** (3988827)
- **Argo CD Settings pane shows the live connection (#1760)** (0ddde4a)
- **Show Argo's own per-resource verdicts from argocd-server on Argo CD 3, with or without a token (#1751)** (79134f3)
- **Traffic flow policy panel: evaluate dropped flows with pkg/netpol (#1752)** (8a90118)
- **Require HPA coverage before treating the evidence as conclusive (#1755)** (6f8e047)
- **pkg/netpol: explain one policy's effect on one connection (#1747)** (6ae7fcf)
- **Gate before decoding, and drop change history from the test comment** (9f742a4)
- **Reject version and repository on the apply-values endpoint** (a2fe76e)
- **Say when rightsizing could not read a workload's pods (#1746)** (18d77ba)
- **Per-resource health with provenance when Argo CD doesn't persist it (#1743)** (9dffdfb)
- **Show what a NetworkPolicy actually does on its detail page and list column (#1745)** (741cfaa)
- **Stop the auth-redirect suite failing on machine load (#1739)** (63b6313)
- **Name the NetworkPolicy that denies Radar its Prometheus candidate (#1737)** (d2ebeb8)
- **Show Prometheus discovery progress, pre-warm on context switch, refuse headers without a URL (#1736)** (e914705)
- **Split the evidence test suite along the module's seams (#1738)** (11278fa)
- **Split investigationEvidence into a directory, one adapter per tool family (#1731)** (c1e9e27)
- **Recognize cert-manager Secrets in the unused-resource audit (#1710)** (8e532b9)
- **Scope the topology filter sidebar to the selected namespaces (#1686)** (a710e8c)

### Docs
- **docs(rollouts): document the new deployment-plugin views** (d67ab2e)
- **docs: give Reflector a section of its own (#1764)** (c7c1063)
- **docs: the dropped-flow policy panel, as it works now (#1762)** (8355864)
- **docs: Prometheus discovery status and NetworkPolicy attribution (#1759)** (998429d)
- **docs(helm): document that auth and cloud modes auto-enable rbac.secrets (#1693)** (3aee7f1)

### Chore
- **style(rollouts): gofmt analysisruns.go and correct the trigger label values** (d6b835f)
- **style(rollouts): use the shared Badge/health-tone system instead of ad-hoc classes and a parallel vocabulary** (add1678)
- **chore(web): remove dead components and re-export shims (#1729)** (0e3dc48)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/skyhook-io/radar?utm_source=github-action)._