fix(harness): 不将用户中断会话降级为会话压缩失败 (#2659)
## 关联问题 #2658 - Fixes: `CompactionMiddleware` 将中断错误纳入 fallback,导致重复执行下游 reasoning ## AgentScope-Java Version `2.0.3-SNAPSHOT`。 ## 背景 `CompactionMiddleware` 原本使用一个覆盖整个处理链的 `onErrorResume`。这使得压缩失败和下游 reasoning 失败共享同一降级逻辑。 用户中断时,`InterruptedException` 被错误记录为 `Compaction failed`,然后 fallback 再次执行 `next.apply(input)`。该第二次 reasoning 已越过 `ReActAgent` 本轮入口的中断检查,可能额外发起模型请求,并使取消终态等待模型首个 chunk。 ## 变更内容 1. 将 `onErrorResume` 收窄到 `compactIfNeeded(...)`: - 普通压缩异常降级为 `Optional.empty()`,随后仅调用一次 `next.apply(originalInput)`。 - `InterruptedException` 及其 cause 链中的包装异常直接 `Mono.error(...)` 透传。 2. 将 `next.apply(...)` 置于压缩 fallback 作用域之外: - 下游 reasoning 的中断和其他异常不再被误判为压缩失败; - 下游不会被 fallback 再次调用。 --------- Co-authored-by: jujn <2087687391@qq.com>
C
CyberXavier committed
e728e7bc2706f2cf2317556d4a2efe5efd44ab86
Parent: 2e891c1
Committed by GitHub <noreply@github.com>
on 8/12/2026, 9:19:47 AM