huskies: merge 1052
This commit is contained in:
@@ -116,7 +116,9 @@ pub fn load_pipeline_state(ctx: &AppContext) -> Result<PipelineState, String> {
|
||||
|
||||
// Story 945: review_hold is `Stage::ReviewHold`; qa_mode and epic_id
|
||||
// come from typed CRDT registers. merge_failure detail lives on the
|
||||
// MergeJob CRDT entry (same as status_tools.rs).
|
||||
// MergeJob CRDT entry, but only surfaces for items currently in a
|
||||
// failure stage — Done/terminal items must never inherit stale errors
|
||||
// from a previously-failed merge attempt (story 1052).
|
||||
let view = crate::crdt_state::read_item(sid);
|
||||
let review_hold = if matches!(item.stage, Stage::ReviewHold { .. }) {
|
||||
Some(true)
|
||||
@@ -125,7 +127,14 @@ pub fn load_pipeline_state(ctx: &AppContext) -> Result<PipelineState, String> {
|
||||
};
|
||||
let qa = view.as_ref().and_then(|v| v.qa_mode());
|
||||
let epic_id = view.as_ref().and_then(|v| v.epic());
|
||||
let merge_failure = crate::crdt_state::read_merge_job(sid).and_then(|j| j.error);
|
||||
let merge_failure = if matches!(
|
||||
item.stage,
|
||||
Stage::MergeFailure { .. } | Stage::MergeFailureFinal { .. }
|
||||
) {
|
||||
crate::crdt_state::read_merge_job(sid).and_then(|j| j.error)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let story = UpcomingStory {
|
||||
story_id: sid.clone(),
|
||||
|
||||
Reference in New Issue
Block a user