youngkermit8-coder opened a new pull request, #1518: URL: https://github.com/apache/rocketmq-dashboard/pull/1518
## What is the purpose of the change Closes #1517. `ClaudeCodeAgentProvider.stream()` previously consumed stdout synchronously to EOF before starting its timed `waitFor`. A silent or hung CLI could therefore block forever without reaching the advertised timeout. Because stderr was not drained concurrently, sufficiently large diagnostics could also fill the pipe buffer and deadlock the child process. This is the remaining Claude streaming portion of the broader problem previously described in closed Issue #959. The non-streaming `complete()` path was hardened in #1056, while `stream()` retained the unsafe ordering. ## Brief changelog - Drain Claude stdout and stderr concurrently on JDK 21 virtual threads. - Start the process timeout immediately after launch. - Destroy timed-out CLI processes and retain the structured 504 gateway error. - Bound post-exit stream draining so output-reader failures cannot wait indefinitely. - Add deterministic tests for a stderr payload larger than the pipe buffer and for a silent process exceeding a one-second test timeout. ## Verification Validated in an isolated worktree on top of #1502 (`c00a5ef`): - `ClaudeCodeAgentProviderTest`: 2 tests passed. - Checkstyle: 0 violations. - Final main and test sources compiled successfully. - Spring Boot JAR packaging passed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
