railiance-cluster/workplans/RAIL-BS-WP-0014-state-hub-surge-headroom.md
codex b36ac28b49
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Publish pending unscheduled pods in cluster observations.
RAIL-BS-WP-0014: residual millicores count scheduled pods only.
state_hub_preflight_observation matches the STATE-WP-0091 fixture shape.

Assistant: grok
Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267
2026-09-14 10:34:27 +02:00

1.5 KiB

id type title domain repo status owner topic_slug origin origin_ref created updated related state_hub_workstream_id
RAIL-BS-WP-0014 workplan Keep node remaining CPU honest for State Hub surge and pending demand financials railiance-cluster finished codex railiance residual STATE-WP-0091 2026-09-14 2026-09-14
RCLUSTER-WP-0014
STATE-WP-0091
CUST-WP-0071
d89863aa-dc89-5a9d-be00-4f558a16d70b

Residual from STATE-WP-0091. State Hub now refuses promotion when remaining CPU cannot cover its 100m API surge, and when unrelated pending pods would eat the 5m sliver above 105m. Cluster observation must keep publishing allocatable, allocated, and pending-unrelated demand. 105m remaining is not capacity admission for factory or other zero-request workloads.

Include pending pods in capacity observations

id: RAIL-BS-WP-0014-T01
status: done
priority: high
state_hub_task_id: "d90c384e-8a99-550f-b8b8-6314c073f2dc"

Extend tools/observe_cluster_resources.py / make cluster-observe so the published observation names pending unscheduled pods and their requests. State Hub's preflight already consumes that shape. Do not treat residual millicores as a scheduling guarantee.

Done 2026-09-14. build_observation names pending unscheduled pods, uses effective pod requests (init vs containers), and emits state_hub_preflight_observation in the STATE-WP-0091 fixture shape. Residual CPU counts scheduled pods only. not_a_scheduling_guarantee is explicit. Unit test covers a 50m pending pod that does not inflate remaining.