Backlog ​
Open work on Headroom, highest priority first. 🔲 is ready to pick up, 🚫 is blocked, and 💤 is deferred until the trigger in its note fires. Each title opens the full item. Items live as files in docs/queue/ and are deleted when the work ships.
| ID | Item | St | Sz | Notes |
|---|---|---|---|---|
| Q74 | Stop release candidates moving latest and the Latest release | 🔲 | S | docs/development/releasing.md offers a vX.Y.Z-rc.1 tag as a rehearsal, but release.yml treats every v* tag as final. |
| Q79 | Refuse a release tag on code no release candidate ran | 🔲 | S | Step 3 of docs/development/releasing.md tags the release "on the same commit unless the validation … |
| Q58 | Measure controller memory, then strip pod fields from the cache | 🔲 | M | The controller caches full Pod objects for every pod in the cluster, where the design calls for stripping them. |
| Q69 | Settle how an empty pod-level resources block behaves on 1.35 and 1.36 | 🔲 | S | On Kubernetes 1.35 and 1.36.1, a pod with an empty resources: {} is classed BestEffort whatever its containers request, so Headroom … |
| Q22 | Promote HeadroomConfig API to v1beta1 | 🔲 | L | Event: the spec goes a full release cycle with no field changes and Q21 (Helm) has shipped — or Demand: an external consumer needs … |
| Q23 | Promote HeadroomConfig API to v1 (GA) | 💤 | L | Event: v1beta1 (Q22) soaks ≥2 releases with no incompatible change required, and Decision: Karl commits to GA backward-compat … |
| Q61 | Add the kubectl headroom explain plugin | 💤 | M | Demand: an operator or tenant asks for per-pod arithmetic that the status annotation and dashboard do not answer. |
| Q62 | Ship a PrometheusRule with the recommended alerts | 💤 | S | Demand: an operator asks for packaged alerts. |
| Q64 | Fix tenants.html scrolling sideways on phones | 🔲 | S | The landing page website/landing/tenants.html is 443px wide at both a 320px and a 390px viewport, so it scrolls sideways on a phone. |
| Q65 | Fix docs navbar overflowing tablets from 768 to 943px | 🔲 | S | Every docs page is 944px wide at any viewport from 768px to 943px, so it scrolls sideways on a tablet and a narrow desktop window. |
| Q68 | Manage pods with pod-level resources where the resize is allowed | 💤 | M | Demand: someone runs pods with pod-level resources on a version whose InPlacePodLevelResourcesVerticalScaling gate is on and wants … |
| Q70 | Let a fractional LimitRange ratio cap reach the tight split | 🔲 | S | Under a fractional per-container maxLimitRequestRatio, a very small request holds a pod's cap at its total request, even though a higher … |
| Q77 | Keep the landing announcement banner readable on phones | 🔲 | S | The announcement banner on the landing page never wraps: .announce sets white-space: nowrap, overflow: hidden and `text-overflow … |
| Q71 | Share one client budget across REST clients, or state it per client | 🔲 | S | cmd/main.go sets QPS and Burst on the rest config, and each REST client builds its own token bucket from them, so QPS 50 does not … |
| Q72 | Give pods skipped for a VPA a signal that outlives the event | 🔲 | S | The VPAManagesLimit warning is the only sign that a VPA is keeping Headroom off a pod. |
| Q75 | Clear the website dev-dependency Dependabot alerts | 🔲 | S | On 2026-11-06, gh api repos/karlkfi/kube-headroom/dependabot/alerts listed 12 open alerts, all development scope in … |
| Q76 | Stop e2e metric scrapes depending on a Docker Hub pull per pod | 🔲 | S | The e2e suite reads metrics by creating a pod from curlimages/curl:latest, as in … |
| Q80 | Cut e2e wall time back toward 10 minutes | 🔲 | S | The E2E Tests workflow on main took 13 min 40 s at 5b80a64 and at 7939147, up from about 10 min at aa95c0a and c8f64a7. |
| Q78 | Bring the contributor docs up to date with the repo | 🔲 | S | The v0.2.0 site review found contributor docs describing an earlier repo. |