SIGN IN SIGN UP

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