From 849341f3935b4fd5e79fbe7e0671a2d9793282e3 Mon Sep 17 00:00:00 2001 From: Ezra Yellin Date: Thu, 27 Aug 2026 03:58:48 +0000 Subject: [PATCH] Add conversation_link pass-through field to Holmes chat params extra=allow already forwarded unknown fields to Holmes; declaring the field documents the contract: the URL of the surface a chat originated from, which Holmes renders into its system prompt so PRs/issues it creates link back. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01E7e2epGfemL5yPs3cA6nhN --- src/robusta/core/model/base_params.py | 4 ++++ src/robusta/core/reporting/holmes.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/robusta/core/model/base_params.py b/src/robusta/core/model/base_params.py index 927519fc1..ad5c23b6e 100644 --- a/src/robusta/core/model/base_params.py +++ b/src/robusta/core/model/base_params.py @@ -213,6 +213,10 @@ class HolmesChatParams(HolmesParams): source_ref: Optional[str] = None conversation_id: Optional[str] = None conversation_source: Optional[str] = None + # URL of the surface the chat originated from (Slack thread permalink, + # Teams message link, platform chat/workflow-run URL). Holmes renders it + # into the system prompt so PRs/issues it creates link back to it. + conversation_link: Optional[str] = None is_internal: Optional[bool] = None meta: Optional[Dict[str, Any]] = None diff --git a/src/robusta/core/reporting/holmes.py b/src/robusta/core/reporting/holmes.py index 9dee8303a..8012ba0c0 100644 --- a/src/robusta/core/reporting/holmes.py +++ b/src/robusta/core/reporting/holmes.py @@ -57,6 +57,10 @@ class HolmesChatRequest(BaseModel): source_ref: Optional[str] = None conversation_id: Optional[str] = None conversation_source: Optional[str] = None + # URL of the surface the chat originated from (Slack thread permalink, + # Teams message link, platform chat/workflow-run URL). Holmes renders it + # into the system prompt so PRs/issues it creates link back to it. + conversation_link: Optional[str] = None is_internal: Optional[bool] = None meta: Optional[Dict[str, Any]] = None