viettranx
1ac08155b0
feat(trace): reliable stop/abort with ctx-aware streams and 2-phase router
Makes the Stop button on the traces page actually stop running traces.
Seven-phase implementation across provider HTTP, agent router, trace
persistence, WS events, tool exec, i18n, and integration tests.
- Provider HTTP+SSE ctx-aware: close socket on cancel via CtxBody wrapper
- Router 2-phase abort: CAS state machine, 3s grace, force-mark fallback
- Trace retry: 3 inline retries + 10-max retry queue, stale recovery 10min
- trace.status WS event: real-time UI updates (invalidates query on receive)
- Tool exec: process-group kill (SIGTERM→3s→SIGKILL), Rod page ctx watch
- i18n: 6 abort toast variants in en/vi/zh
- Integration: 9 scenarios, -race clean
Fixes tenant-ctx loss in forceMarkTraceAborted and retry worker broadcast
(caught by code-reviewer: C1/C2). Stale threshold intentionally 10min
because start_time-based; last_span_at migration is a follow-up.
2026-04-14 18:28:31 +07:00
..
2026-04-12 07:17:48 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-11 21:29:32 +07:00
2026-04-09 21:15:19 +07:00
2026-04-11 21:29:32 +07:00
2026-04-09 21:15:19 +07:00
2026-04-11 21:29:32 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-11 21:29:32 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-07 12:16:45 +07:00
2026-04-14 18:28:31 +07:00
2026-04-14 18:28:31 +07:00
2026-04-09 21:15:19 +07:00
2026-03-27 09:35:57 +07:00
2026-03-27 09:35:57 +07:00
2026-03-27 09:35:57 +07:00
2026-03-27 10:19:16 +07:00
2026-03-07 02:06:39 +07:00
2026-04-05 21:32:59 +07:00
2026-03-07 02:06:39 +07:00
2026-03-10 00:09:15 +07:00
2026-04-12 19:03:47 +07:00
2026-04-12 19:03:47 +07:00
2026-03-10 00:09:15 +07:00
2026-04-11 21:39:47 +07:00
2026-04-12 19:03:47 +07:00
2026-03-07 02:06:39 +07:00
2026-04-12 19:03:47 +07:00
2026-03-31 17:56:24 +07:00
2026-04-02 08:47:26 +07:00
2026-04-02 08:47:26 +07:00
2026-04-02 08:47:26 +07:00
2026-04-14 18:28:31 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-16 22:54:10 +07:00
2026-04-09 21:15:19 +07:00
2026-04-14 18:28:31 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-14 18:28:31 +07:00
2026-04-14 18:28:31 +07:00
2026-04-09 21:15:19 +07:00
2026-03-20 00:14:33 +07:00
2026-04-09 21:15:19 +07:00
2026-04-04 21:17:47 +07:00
2026-04-09 21:15:19 +07:00
2026-04-04 21:17:47 +07:00
2026-03-31 14:33:33 +07:00
2026-04-03 15:31:46 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-31 07:56:01 +07:00
2026-03-31 07:56:01 +07:00
2026-04-10 13:32:02 +07:00
2026-04-10 13:32:02 +07:00
2026-04-10 13:32:02 +07:00
2026-03-27 10:19:16 +07:00
2026-03-29 22:33:17 +07:00
2026-02-27 09:53:45 +07:00
2026-04-01 22:00:05 +07:00
2026-04-01 22:00:05 +07:00
2026-04-09 21:15:19 +07:00
2026-03-31 23:15:59 +07:00
2026-04-09 21:15:19 +07:00
2026-03-31 23:38:48 +07:00
2026-04-01 22:00:05 +07:00
2026-04-09 21:15:19 +07:00
2026-04-14 18:28:31 +07:00
2026-04-09 21:15:19 +07:00
2026-04-14 18:28:31 +07:00
2026-04-10 13:32:02 +07:00