From 7fb23e5404190be591b6087ac97a5725cf0630d6 Mon Sep 17 00:00:00 2001 From: mateaix <57164338+mateaix@users.noreply.github.com> Date: Sun, 26 Jul 2026 10:40:17 +0800 Subject: [PATCH] fix(team): fresh event-stream subscriptions deliver live events only, no stale replay --- .../main/java/vip/mate/team/controller/TeamController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mateclaw-server/src/main/java/vip/mate/team/controller/TeamController.java b/mateclaw-server/src/main/java/vip/mate/team/controller/TeamController.java index 521dd171..5bc0aded 100644 --- a/mateclaw-server/src/main/java/vip/mate/team/controller/TeamController.java +++ b/mateclaw-server/src/main/java/vip/mate/team/controller/TeamController.java @@ -255,7 +255,11 @@ public class TeamController { public SseEmitter events(@PathVariable Long id, @RequestHeader(value = "Last-Event-ID", required = false) Long lastEventId) { SseEmitter emitter = new SseEmitter(0L); - eventChannel.attach(id, emitter, lastEventId == null ? 0L : lastEventId); + // A fresh subscription is an activity ticker, not a transcript: skip + // the ring-buffer replay (stale events would render as breaking news) + // and deliver live events only. A reconnect carrying Last-Event-ID + // keeps the resume-from-where-I-left semantics. + eventChannel.attach(id, emitter, lastEventId == null ? Long.MAX_VALUE : lastEventId); return emitter; }