feat: livrable ticket #91 — notification fin BackgroundTask enrichie
- Backend: enrichissement HeadlessRendezvous avec requester/target/conversationId - Frontend: toast 'Requester -> Target completed/...' explicite - Clic ouvrant viewer de conversation pour visualiser l'échange
This commit is contained in:
@ -231,6 +231,12 @@ pub struct AgentBackgroundTaskState {
|
||||
pub stdout_tail: Option<String>,
|
||||
/// Bounded stderr tail.
|
||||
pub stderr_tail: Option<String>,
|
||||
/// Agent that requested a headless rendezvous, when this task is one.
|
||||
pub requester_agent_id: Option<AgentId>,
|
||||
/// Target agent for a headless rendezvous, when this task is one.
|
||||
pub target_agent_id: Option<AgentId>,
|
||||
/// Conversation opened by a headless rendezvous, when this task is one.
|
||||
pub conversation_id: Option<domain::ConversationId>,
|
||||
/// Creation timestamp, epoch milliseconds.
|
||||
pub created_at_ms: u64,
|
||||
/// Last update timestamp, epoch milliseconds.
|
||||
@ -592,6 +598,8 @@ impl GetProjectWorkState {
|
||||
impl From<BackgroundTask> for AgentBackgroundTaskState {
|
||||
fn from(task: BackgroundTask) -> Self {
|
||||
let (exit_code, summary, stdout_tail, stderr_tail) = flatten_background_result(&task);
|
||||
let (requester_agent_id, target_agent_id, conversation_id) =
|
||||
flatten_background_rendezvous_context(&task.kind);
|
||||
Self {
|
||||
task_id: task.id,
|
||||
kind: BackgroundTaskKindLabel::from(&task.kind),
|
||||
@ -600,12 +608,37 @@ impl From<BackgroundTask> for AgentBackgroundTaskState {
|
||||
summary,
|
||||
stdout_tail,
|
||||
stderr_tail,
|
||||
requester_agent_id,
|
||||
target_agent_id,
|
||||
conversation_id,
|
||||
created_at_ms: task.created_at_ms,
|
||||
updated_at_ms: task.updated_at_ms,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn flatten_background_rendezvous_context(
|
||||
kind: &BackgroundTaskKind,
|
||||
) -> (
|
||||
Option<AgentId>,
|
||||
Option<AgentId>,
|
||||
Option<domain::ConversationId>,
|
||||
) {
|
||||
match kind {
|
||||
BackgroundTaskKind::HeadlessRendezvous {
|
||||
requester_agent_id,
|
||||
target_agent_id,
|
||||
conversation_id,
|
||||
..
|
||||
} => (
|
||||
*requester_agent_id,
|
||||
Some(*target_agent_id),
|
||||
Some(*conversation_id),
|
||||
),
|
||||
_ => (None, None, None),
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&BackgroundTaskKind> for BackgroundTaskKindLabel {
|
||||
fn from(kind: &BackgroundTaskKind) -> Self {
|
||||
match kind {
|
||||
|
||||
Reference in New Issue
Block a user