[#1] Rendre l’ingestion de tickets atomique pour éliminer les doublons #1

Closed
opened 2026-04-16 12:12:36 +00:00 by thibaud-lclr · 0 comments
thibaud-lclr commented 2026-04-16 12:12:36 +00:00 (Migrated from gitea.lclr.dev)

Summary

L’insertion des tickets repose sur un schéma read-then-write sans contrainte d’unicité DB. En cas de courses entre polling manuel et planifié, des doublons fonctionnels peuvent être créés.

Metadata

  • kind: improvement
  • priority: P0
  • horizon: now
  • effort: M
  • impact: High
  • confidence: High

Evidence

  • src-tauri/src/models/ticket.rs:52-71 effectue d’abord exists() puis INSERT.
  • src-tauri/migrations/001_init.sql:28-41 ne définit pas de contrainte UNIQUE (tracker_id, artifact_id).
  • src-tauri/src/services/poller.rs:167-183 appelle insert_if_new() dans la boucle planifiée.

Files

  • src-tauri/src/models/ticket.rs
  • src-tauri/migrations/001_init.sql
  • src-tauri/src/services/poller.rs
  • src-tauri/src/commands/poller.rs

First slice

Ajouter un index UNIQUE (tracker_id, artifact_id), migrer insert_if_new vers INSERT OR IGNORE, puis adapter le retour pour détecter proprement l’insertion effective.

## Summary L’insertion des tickets repose sur un schéma read-then-write sans contrainte d’unicité DB. En cas de courses entre polling manuel et planifié, des doublons fonctionnels peuvent être créés. ## Metadata - kind: `improvement` - priority: `P0` - horizon: `now` - effort: `M` - impact: `High` - confidence: `High` ## Evidence - src-tauri/src/models/ticket.rs:52-71 effectue d’abord exists() puis INSERT. - src-tauri/migrations/001_init.sql:28-41 ne définit pas de contrainte UNIQUE (tracker_id, artifact_id). - src-tauri/src/services/poller.rs:167-183 appelle insert_if_new() dans la boucle planifiée. ## Files - src-tauri/src/models/ticket.rs - src-tauri/migrations/001_init.sql - src-tauri/src/services/poller.rs - src-tauri/src/commands/poller.rs ## First slice Ajouter un index UNIQUE (tracker_id, artifact_id), migrer insert_if_new vers INSERT OR IGNORE, puis adapter le retour pour détecter proprement l’insertion effective.
Sign in to join this conversation.
No description provided.