Contribution · Spring AI · Observability
Spring AI — streaming observation stop order 회귀 테스트
스트리밍 응답에서 observation의 stop order가 잘못된 순서로 호출되는 이슈(#5971)에 대해 실패하는 회귀 테스트를 먼저 PR로 제출했습니다. 기존 ChatModel mock 패턴을 그대로 따라 main 기준 HEAD에서 실패하는지 로컬에서 확인.
문제 — GH-5971
Spring AI의 스트리밍 응답 경로에서 Observation의 start/stop 순서가 어긋나는 케이스가 보고됐습니다. 이슈의 일부는 직관적인 단언(역순 호출 시 stop이 잘못된 순서)으로 재현할 수 있고, 나머지 절반은 tool-call 경로에서 Schedulers.boundedElastic() 경계를 넘으며 Reactor context로부터 parent observation을 못 받는 더 어려운 분기.
이 PR이 다루는 범위
이슈의 직관적인 절반에 대한 실패하는 회귀 테스트만 먼저 보냈습니다. 기존 파일에 자리 잡은 ChatModel mock 패턴을 그대로 따랐고, 머지 후 fix가 들어오면 동일 테스트가 통과하는 형태가 되도록 작성. tool-call 경로의 두 번째 절반(ToolCallingAdvisor#handleToolCallRecursion 안의 boundedElastic 경계 + ToolCallReactiveContextHolder)은 별도 PR/@Disabled 테스트로 분리 가능하다고 PR 본문에 명시.