openclaw/patches
Muhammed Mukhthar CM 1cfe409a09 fix: filter empty error messages to prevent session corruption
When 429/500 errors occur during tool execution, empty assistant messages
with stopReason='error' and content=[] get persisted to the session file.

These break the tool_use -> tool_result chain that Claude/Gemini require:
- Claude expects every tool_use block to have a matching tool_result
- Empty error messages inserted mid-sequence violate this invariant
- Results in: 'tool_use ids were found without tool_result blocks'

This patch filters out empty error messages when building session context,
allowing sessions to recover gracefully from transient API errors.

Evidence from production:
- 113 of 170 sessions had empty error messages
- Session 30764430 demonstrated recovery: 429 at 14:30:11 IST,
  resumed successfully at 14:30:22, completed at 14:30:34

Sorry Peter, one more patch! 🙈
2026-01-09 18:10:23 +01:00
..
@mariozechner__pi-agent-core.patch chore(deps): update dependencies 2026-01-08 04:55:14 +00:00
@mariozechner__pi-coding-agent.patch fix: filter empty error messages to prevent session corruption 2026-01-09 18:10:23 +01:00
playwright-core@1.57.0.patch fix(browser): patch playwright-core for Bun WebSocket compatibility 2026-01-06 19:27:09 +00:00
qrcode-terminal.patch fix: patch qrcode-terminal import for Node 22 2026-01-06 02:23:55 +01:00