huskies: merge 820
This commit is contained in:
@@ -57,6 +57,8 @@ pub struct PipelineState {
|
||||
pub qa: Vec<UpcomingStory>,
|
||||
pub merge: Vec<UpcomingStory>,
|
||||
pub done: Vec<UpcomingStory>,
|
||||
/// Story IDs that currently have a deterministic merge in progress.
|
||||
pub deterministic_merges_in_flight: Vec<String>,
|
||||
}
|
||||
|
||||
/// Load the full pipeline state (all 5 active stages).
|
||||
@@ -71,12 +73,19 @@ pub fn load_pipeline_state(ctx: &AppContext) -> Result<PipelineState, String> {
|
||||
|
||||
let typed_items = crate::pipeline_state::read_all_typed();
|
||||
|
||||
let deterministic_merges_in_flight = ctx
|
||||
.services
|
||||
.agents
|
||||
.list_running_merges()
|
||||
.unwrap_or_default();
|
||||
|
||||
let mut state = PipelineState {
|
||||
backlog: Vec::new(),
|
||||
current: Vec::new(),
|
||||
qa: Vec::new(),
|
||||
merge: Vec::new(),
|
||||
done: Vec::new(),
|
||||
deterministic_merges_in_flight,
|
||||
};
|
||||
|
||||
for item in typed_items {
|
||||
|
||||
@@ -53,6 +53,7 @@ pub fn pipeline_state_to_response(s: PipelineState) -> WsResponse {
|
||||
qa: s.qa,
|
||||
merge: s.merge,
|
||||
done: s.done,
|
||||
deterministic_merges_in_flight: s.deterministic_merges_in_flight,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,6 +239,7 @@ mod tests {
|
||||
blocked: None,
|
||||
depends_on: None,
|
||||
}],
|
||||
deterministic_merges_in_flight: vec![],
|
||||
};
|
||||
let resp = pipeline_state_to_response(state);
|
||||
let json = serde_json::to_value(&resp).unwrap();
|
||||
@@ -260,6 +262,7 @@ mod tests {
|
||||
qa: vec![],
|
||||
merge: vec![],
|
||||
done: vec![],
|
||||
deterministic_merges_in_flight: vec![],
|
||||
};
|
||||
let resp = pipeline_state_to_response(state);
|
||||
let json = serde_json::to_value(&resp).unwrap();
|
||||
@@ -294,6 +297,7 @@ mod tests {
|
||||
qa: vec![],
|
||||
merge: vec![],
|
||||
done: vec![],
|
||||
deterministic_merges_in_flight: vec![],
|
||||
};
|
||||
let resp: WsResponse = state.into();
|
||||
let json = serde_json::to_value(&resp).unwrap();
|
||||
|
||||
@@ -54,6 +54,8 @@ pub enum WsResponse {
|
||||
qa: Vec<UpcomingStory>,
|
||||
merge: Vec<UpcomingStory>,
|
||||
done: Vec<UpcomingStory>,
|
||||
/// Story IDs that currently have a deterministic merge in progress.
|
||||
deterministic_merges_in_flight: Vec<String>,
|
||||
},
|
||||
/// `.huskies/project.toml` was modified; the frontend should re-fetch the
|
||||
/// agent roster. Does NOT trigger a pipeline state refresh.
|
||||
@@ -215,6 +217,7 @@ mod tests {
|
||||
qa: vec![],
|
||||
merge: vec![],
|
||||
done: vec![],
|
||||
deterministic_merges_in_flight: vec![],
|
||||
};
|
||||
let json = serde_json::to_value(&resp).unwrap();
|
||||
assert_eq!(json["type"], "pipeline_state");
|
||||
|
||||
Reference in New Issue
Block a user