huskies: merge 1086 story Pipeline+Status split — Step C: migrate auto-assign, subscribers, and lifecycle transitions to read Pipeline + Status
This commit is contained in:
@@ -29,13 +29,20 @@ use std::time::Duration;
|
||||
///
|
||||
/// Replaces the periodic `sweep_done_to_archived` call from the tick loop.
|
||||
pub(crate) fn spawn_done_to_archived_subscriber(done_retention: Duration) {
|
||||
use crate::pipeline_state::{PipelineEvent, Stage, apply_transition, subscribe_transitions};
|
||||
use crate::pipeline_state::{
|
||||
PipelineEvent, Stage, Status, apply_transition, subscribe_transitions,
|
||||
};
|
||||
|
||||
let mut rx = subscribe_transitions();
|
||||
tokio::spawn(async move {
|
||||
loop {
|
||||
match rx.recv().await {
|
||||
Ok(fired) => {
|
||||
// Story 1086: gate on the typed `Status::Done` projection;
|
||||
// the variant pattern is still required to read `merged_at`.
|
||||
if fired.after.status() != Status::Done {
|
||||
continue;
|
||||
}
|
||||
if let Stage::Done { merged_at, .. } = fired.after {
|
||||
let story_id = fired.story_id.0.clone();
|
||||
let retention = done_retention;
|
||||
|
||||
Reference in New Issue
Block a user