Agent leser spec-node via discusses-edge for kontekstuell feedback

This commit is contained in:
vegard 2026-03-18 01:40:12 +00:00
parent 88f51dc487
commit 71f7264100

View file

@ -143,6 +143,17 @@ pub async fn handle_agent_respond(
_ => "",
};
// Sjekk om denne chatten diskuterer en spec-node (discusses-edge)
let spec_context: String = match sqlx::query_scalar::<_, Option<String>>(
"SELECT n.content FROM nodes n JOIN edges e ON e.source_id = $1 AND e.target_id = n.id WHERE e.edge_type = 'discusses' LIMIT 1",
).bind(communication_id).fetch_optional(db).await {
Ok(Some(Some(content))) if !content.is_empty() => {
let truncated = if content.len() > 4000 { &content[..4000] } else { &content };
format!("\n--- Gjeldende spesifikasjon ---\n{truncated}\n--- Slutt spesifikasjon ---\n\nDu har tilgang til spesifikasjonen over. Gi konkret feedback: hva er implementert, hva er planlagt, hva er teknisk vanskelig. Vær ærlig om begrensninger.\n")
}
_ => String::new(),
};
let prompt = format!(
r#"Du er Claude, en AI-assistent integrert i Synops-plattformen.
Du deltar i samtalen "{comm_title}" med {participant_names}.
@ -150,7 +161,7 @@ Svar på norsk med mindre brukeren skriver på engelsk.
{perm_desc}
Svar konsist. Bruk vanlig tekst uten markdown-overskrifter.
Svar KUN med meldingsteksten.
{spec_context}
--- Samtalehistorikk ---
{conversation}--- Svar ---"#
);