From aa654c94257cb7824f729433d3d24def11b1329e Mon Sep 17 00:00:00 2001 From: dtarkent2-sys Date: Fri, 20 Feb 2026 11:53:03 +0000 Subject: [PATCH] Emit final agent_update events so all dots turn green at completion The final decision block set all agents to "completed" in buf but never emitted agent_update SSE events for them. This left Risk stage dots as cyan (active) and Decision dot as gray on the UI. Now emits agent_update for any agents not yet shown as completed before the decision event. Co-Authored-By: Claude Opus 4.6 --- app.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app.py b/app.py index 74505d88..5188c389 100644 --- a/app.py +++ b/app.py @@ -300,6 +300,19 @@ async def run_analysis(analysis_id: str, ticker: str, trade_date: str): for agent in buf.agent_status: buf.update_agent_status(agent, "completed") st = get_stats_dict(stats_handler, buf, start_time) + # Emit agent_update for any agents not yet shown as completed on the client + for agent, status in buf.agent_status.items(): + if prev_statuses.get(agent) != "completed": + prev_statuses[agent] = "completed" + evt = { + "type": "agent_update", + "agent": agent, + "stage": _agent_stage(agent), + "status": "completed", + "stats": st, + } + state["events"].append(evt) + await q.put(evt) evt = { "type": "decision", "stage": "decision",