Show the error reason after the generic failure message

When an agent turn fails, users only saw "요청을 완료하지 못했습니다. 다시
시도해 주세요." with no clue why. Capture the failure reason (explicit
error field, or provider-error text like "API Error: 529 Overloaded"
classified by detectClaudeProviderFailureMessage) in the turn controller
and append it to the failure message ("...\n\n오류 내용: <reason>",
secret-redacted + length-capped). Update the paired-room loop filter to
startsWith so a failure-with-reason is still recognized and not
re-injected into prompt history. Unit-tested.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Codex
2026-08-24 17:10:18 +09:00
parent b9d4144b7e
commit b3c5a4b41b
5 changed files with 127 additions and 3 deletions

View File

@@ -5575,7 +5575,7 @@ describe('createMessageRuntime', () => {
expect(channel.editMessage).toHaveBeenCalledWith(
chatJid,
'progress-1',
'요청을 완료하지 못했습니다. 다시 시도해 주세요.',
'요청을 완료하지 못했습니다. 다시 시도해 주세요.\n\n오류 내용: temporary failure',
);
expect(lastAgentTimestamps[chatJid]).toBe('1');
expect(saveState).toHaveBeenCalled();