fix(ingestion): Move counter increments after transaction commit
Ingestion counters (discussions_upserted, notes_upserted, discussions_fetched, diffnotes_count) were incremented before tx.commit(), meaning a failed commit would report inflated metrics. Counters now increment only after successful commit so reported numbers accurately reflect persisted state. Also simplifies the stale-removal guard in issue discussions: the received_first_response flag was unnecessary since an empty seen_discussion_ids list is safe to pass to remove_stale -- if there were no discussions, stale removal correctly sweeps all previously-stored discussions. The two separate code paths (empty vs populated) are collapsed into a single branch. Derives Default on IngestResult to eliminate verbose zero-init. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ use crate::ingestion::{
|
||||
};
|
||||
|
||||
/// Result of ingest command for display.
|
||||
#[derive(Default)]
|
||||
pub struct IngestResult {
|
||||
pub resource_type: String,
|
||||
pub projects_synced: usize,
|
||||
@@ -130,24 +131,7 @@ pub async fn run_ingest(
|
||||
|
||||
let mut total = IngestResult {
|
||||
resource_type: resource_type.to_string(),
|
||||
projects_synced: 0,
|
||||
// Issue fields
|
||||
issues_fetched: 0,
|
||||
issues_upserted: 0,
|
||||
issues_synced_discussions: 0,
|
||||
issues_skipped_discussion_sync: 0,
|
||||
// MR fields
|
||||
mrs_fetched: 0,
|
||||
mrs_upserted: 0,
|
||||
mrs_synced_discussions: 0,
|
||||
mrs_skipped_discussion_sync: 0,
|
||||
assignees_linked: 0,
|
||||
reviewers_linked: 0,
|
||||
diffnotes_count: 0,
|
||||
// Shared fields
|
||||
labels_created: 0,
|
||||
discussions_fetched: 0,
|
||||
notes_upserted: 0,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let type_label = if resource_type == "issues" {
|
||||
|
||||
Reference in New Issue
Block a user