huskies: merge 988

This commit is contained in:
dave
2026-05-13 17:24:18 +00:00
parent a078d3df7c
commit caed894db9
15 changed files with 169 additions and 81 deletions
@@ -75,7 +75,10 @@ mod tests {
let item = crate::pipeline_state::read_typed(story_id)
.expect("read_typed should succeed")
.expect("item should be present");
assert!(item.is_frozen(), "stage should be frozen after MCP freeze");
assert!(
matches!(item.stage, crate::pipeline_state::Stage::Frozen { .. }),
"stage should be frozen after MCP freeze"
);
}
#[test]
@@ -106,7 +109,7 @@ mod tests {
.expect("read_typed should succeed")
.expect("item should be present");
assert!(
!item.is_frozen(),
!matches!(item.stage, crate::pipeline_state::Stage::Frozen { .. }),
"stage should not be frozen after MCP unfreeze"
);
}
+23 -5
View File
@@ -115,7 +115,7 @@ pub fn load_pipeline_state(ctx: &AppContext) -> Result<PipelineState, String> {
// come from typed CRDT registers. merge_failure detail lives on the
// MergeJob CRDT entry (same as status_tools.rs).
let view = crate::crdt_state::read_item(sid);
let review_hold = if item.stage.is_review_hold() {
let review_hold = if matches!(item.stage, Stage::ReviewHold { .. }) {
Some(true)
} else {
None
@@ -137,12 +137,21 @@ pub fn load_pipeline_state(ctx: &AppContext) -> Result<PipelineState, String> {
} else {
None
},
blocked: if item.stage.is_blocked() {
blocked: if matches!(
item.stage,
Stage::Blocked { .. }
| Stage::MergeFailure { .. }
| Stage::MergeFailureFinal { .. }
| Stage::Archived {
reason: crate::pipeline_state::ArchiveReason::Blocked { .. },
..
}
) {
Some(true)
} else {
None
},
frozen: if item.stage.is_frozen() {
frozen: if matches!(item.stage, Stage::Frozen { .. }) {
Some(true)
} else {
None
@@ -262,12 +271,21 @@ pub fn load_upcoming_stories(_ctx: &AppContext) -> Result<Vec<UpcomingStory>, St
} else {
None
},
blocked: if item.stage.is_blocked() {
blocked: if matches!(
item.stage,
Stage::Blocked { .. }
| Stage::MergeFailure { .. }
| Stage::MergeFailureFinal { .. }
| Stage::Archived {
reason: crate::pipeline_state::ArchiveReason::Blocked { .. },
..
}
) {
Some(true)
} else {
None
},
frozen: if item.stage.is_frozen() {
frozen: if matches!(item.stage, Stage::Frozen { .. }) {
Some(true)
} else {
None