Skip to content

Commit d994c2a

Browse files
authored
Merge pull request #269 from Two-Weeks-Team/fix/267-evaluation-complete-event
fix(#267): emit evaluation_complete event in full_techniques mode
2 parents b838d39 + aa9a802 commit d994c2a

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

  • backend/app/graph/nodes/technique_categories

backend/app/graph/nodes/technique_categories/finalize.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
import logging
12
from datetime import datetime, timezone
23
from typing import Any, Dict, List, Optional
34
from langchain_core.runnables import RunnableConfig
45
from app.graph.state import EvaluationState
56
from app.criteria.bmad_items import list_items, get_category, get_category_max
67
from app.constants import get_quality_gate
78
from app.models.graph import ItemScore
9+
from app.services.event_channel import create_sommelier_event, get_event_channel
10+
11+
logger = logging.getLogger(__name__)
812

913

1014
async def finalize(
@@ -52,6 +56,35 @@ async def finalize(
5256

5357
quality_gate = get_quality_gate(normalized, coverage)
5458

59+
evaluation_id = state.get("evaluation_id", "")
60+
if evaluation_id:
61+
try:
62+
event_channel = get_event_channel()
63+
event_channel.emit_sync(
64+
evaluation_id,
65+
create_sommelier_event(
66+
evaluation_id=evaluation_id,
67+
sommelier="finalize",
68+
event_type="quality_gate_complete",
69+
progress_percent=95,
70+
message=f"Quality gate: {quality_gate}, score: {round(normalized, 2)}",
71+
),
72+
)
73+
event_channel.emit_sync(
74+
evaluation_id,
75+
create_sommelier_event(
76+
evaluation_id=evaluation_id,
77+
sommelier="system",
78+
event_type="evaluation_complete",
79+
progress_percent=100,
80+
message="Evaluation complete!",
81+
),
82+
)
83+
except Exception:
84+
logger.warning(
85+
"Failed to emit finalize events for %s", evaluation_id, exc_info=True
86+
)
87+
5588
return {
5689
"trace_metadata": {
5790
"finalize": {

0 commit comments

Comments
 (0)