huskies: merge 1051

This commit is contained in:
dave
2026-05-14 17:57:45 +00:00
parent 8f99fede34
commit 977b954e98
3 changed files with 161 additions and 0 deletions
+25
View File
@@ -76,6 +76,10 @@ pub enum PipelineEvent {
MergeAborted,
/// Story 974: user re-opens a Done story for a post-merge hotfix, sending it back to Coding.
HotfixRequested,
/// Story 1051: deterministic-merge pipeline started a retry on a story in
/// `Stage::MergeFailure`; transitions back to `Stage::Merge` so the UI
/// shows the active retry rather than the stale failure state.
MergeRetryStarted,
}
// ── Per-node execution events ───────────────────────────────────────────────
@@ -123,6 +127,7 @@ pub fn event_label(e: &PipelineEvent) -> &'static str {
PipelineEvent::ReQueuedForQa => "ReQueuedForQa",
PipelineEvent::MergeAborted => "MergeAborted",
PipelineEvent::HotfixRequested => "HotfixRequested",
PipelineEvent::MergeRetryStarted => "MergeRetryStarted",
}
}
@@ -365,6 +370,26 @@ pub fn transition(state: Stage, event: PipelineEvent) -> Result<Stage, Transitio
retries: 0,
}),
// ── MergeRetryStarted: MergeFailure → Merge (deterministic retry) ─
// When the deterministic-merge pipeline starts a retry on a MergeFailure
// story, transition back to Merge so the UI shows the active retry rather
// than the stale failure state (story 1051). Preserves feature_branch and
// commits_ahead so the retry continues with the same branch.
(
MergeFailure {
feature_branch,
commits_ahead,
..
},
MergeRetryStarted,
) => Ok(Merge {
feature_branch,
commits_ahead,
claim: None,
retries: 0,
server_start_time: None,
}),
// ── MergemasterAttempted: MergeFailure → MergeFailureFinal ─────
(MergeFailure { kind, .. }, MergemasterAttempted) => Ok(MergeFailureFinal { kind }),
(MergeFailureFinal { kind }, MergemasterAttempted) => Ok(MergeFailureFinal { kind }),