refactor(#2808): the wire state enum is the scheduler's own
`hive_host_sock::jobs::State` was a hand-maintained copy of `hive_jobq::State` — five variants spelled the same in both, kept in sync by whoever remembered. Adding `Skipped` last week meant adding it twice. The wire crate now re-exports the scheduler's enum and `to_wire_state` is gone. Two states that were hidden now reach clients. `to_wire_state` renamed `Pending` to `Queued` and folded `Finishing` into `Running`, so the dashboard could not distinguish a node waiting on its dependencies from one whose own work is done while its sub-nodes still run. Both are now visible, and consumers say which they mean. Every consumer had to move with it, and only the Rust ones said so: the exhaustive matches in `hivectl` and `DagView::rollup_state` failed to compile, while the dashboard's fourteen string comparisons would have gone quietly wrong — a `finishing` node no longer counting as running, a `pending` node no longer as queued. The frontend also builds CSS class names out of the state string (`rqe-` + state, `rqe-node-` + state) and keys its glyph map on it, all lowercase. Those go through a `stateSlug` helper now; comparisons use the wire spelling, presentation lowercases. Without that split every queue entry and node chip would have silently lost its styling. Dropping the `State as JobState` alias in hive-c0re falls out of this: the alias only existed to tell two `State` types apart, and there is one now.
This commit is contained in:
parent
6fd91ccf6a
commit
b9aab7e923
8 changed files with 72 additions and 93 deletions
|
|
@ -286,8 +286,10 @@ fn node_line(
|
|||
|
||||
fn state_glyph(state: hive_host_sock::jobs::State) -> &'static str {
|
||||
match state {
|
||||
hive_host_sock::jobs::State::Queued => "⏸",
|
||||
hive_host_sock::jobs::State::Running => "▶",
|
||||
hive_host_sock::jobs::State::Pending => "⏸",
|
||||
// `Finishing` is own-work-done with sub-nodes still going — in flight,
|
||||
// so it reads the same as running.
|
||||
hive_host_sock::jobs::State::Running | hive_host_sock::jobs::State::Finishing => "▶",
|
||||
hive_host_sock::jobs::State::Done => "✔",
|
||||
hive_host_sock::jobs::State::Failed => "✖",
|
||||
hive_host_sock::jobs::State::Cancelled => "⊘",
|
||||
|
|
@ -362,7 +364,7 @@ mod tests {
|
|||
node(0, "alice", "prebuild", State::Done),
|
||||
node(1, "alice", "stop_for_update", State::Done),
|
||||
node(2, "alice", "swap", State::Running),
|
||||
node(3, "alice", "reconcile", State::Queued),
|
||||
node(3, "alice", "reconcile", State::Pending),
|
||||
],
|
||||
};
|
||||
let line = render_dag_line(&dag);
|
||||
|
|
|
|||
Loading…
Reference in a new issue