ticket117: synchronie métier idea_ask_agent + corrélation task ↔ rendezvous

This commit is contained in:
2026-07-31 15:04:54 +02:00
parent 045e0984cc
commit 10c0bef5e5
10 changed files with 435 additions and 40 deletions

View File

@ -1,8 +1,9 @@
//! Pure invariants for first-class background tasks.
use domain::{
BackgroundTask, BackgroundTaskError, BackgroundTaskKind, BackgroundTaskResult,
BackgroundTaskState, BackgroundTaskWakePolicy,
BackgroundTask, BackgroundTaskError, BackgroundTaskKind, BackgroundTaskRendezvousLink,
BackgroundTaskResult, BackgroundTaskState, BackgroundTaskWakePolicy, ConversationId,
RendezvousId, TicketId,
};
use uuid::Uuid;
@ -43,6 +44,23 @@ fn success_result(at: u64) -> BackgroundTaskResult {
}
}
#[test]
fn rendezvous_link_roundtrips_on_background_task() {
let link = BackgroundTaskRendezvousLink {
rendezvous_id: RendezvousId::from_uuid(Uuid::from_u128(9)),
ticket_id: TicketId::from_uuid(Uuid::from_u128(10)),
requester_agent_id: Some(agent_id(4)),
target_agent_id: agent_id(3),
conversation_id: ConversationId::from_uuid(Uuid::from_u128(11)),
};
let task = command_task().with_rendezvous(link.clone());
let json = serde_json::to_string(&task).unwrap();
let decoded: BackgroundTask = serde_json::from_str(&json).unwrap();
assert_eq!(decoded.rendezvous, Some(link));
}
fn failure_result(at: u64) -> BackgroundTaskResult {
BackgroundTaskResult::Failure {
finished_at_ms: at,