huskies: merge 538_bug_done_archived_sweep_never_fires_because_stage_done_projection_uses_utc_now_instead_of_real_merged_at_timestamp
This commit is contained in:
@@ -244,6 +244,11 @@ pub fn write_item_with_content(
|
||||
write_content(story_id, content);
|
||||
|
||||
// Primary: CRDT ops.
|
||||
let merged_at_ts = if stage == "5_done" {
|
||||
Some(chrono::Utc::now().timestamp() as f64)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
crate::crdt_state::write_item(
|
||||
story_id,
|
||||
stage,
|
||||
@@ -254,6 +259,7 @@ pub fn write_item_with_content(
|
||||
depends_on.as_deref(),
|
||||
None,
|
||||
None,
|
||||
merged_at_ts,
|
||||
);
|
||||
|
||||
// Shadow: pipeline_items table (only when DB is initialised).
|
||||
@@ -312,6 +318,11 @@ pub fn move_item_stage(
|
||||
.unwrap_or((None, None, None, None, None));
|
||||
|
||||
// CRDT stage transition.
|
||||
let merged_at_ts = if new_stage == "5_done" {
|
||||
Some(chrono::Utc::now().timestamp() as f64)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
crate::crdt_state::write_item(
|
||||
story_id,
|
||||
new_stage,
|
||||
@@ -322,6 +333,7 @@ pub fn move_item_stage(
|
||||
depends_on.as_deref(),
|
||||
None,
|
||||
None,
|
||||
merged_at_ts,
|
||||
);
|
||||
|
||||
// Shadow table.
|
||||
@@ -453,6 +465,7 @@ pub async fn sync_crdt_stages_from_db(db_path: &Path) {
|
||||
depends_on.as_deref(),
|
||||
None,
|
||||
None,
|
||||
None, // merged_at unknown for migrated items; epoch fallback sweeps them
|
||||
);
|
||||
corrected += 1;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user