mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 08:21:26 +00:00
fix: add changelog and clean regression comment for tool-result guard (#25429) (thanks @mikaeldiakhate-cell)
This commit is contained in:
@@ -11,6 +11,7 @@ Docs: https://docs.openclaw.ai
|
|||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
|
- Sessions/Tool-result guard: avoid generating synthetic `toolResult` entries for assistant turns that ended with `stopReason: "aborted"` or `"error"`, preventing orphaned tool-use IDs from triggering downstream API validation errors. (#25429) Thanks @mikaeldiakhate-cell.
|
||||||
- Usage accounting: parse Moonshot/Kimi `cached_tokens` fields (including `prompt_tokens_details.cached_tokens`) into normalized cache-read usage metrics. (#25436) Thanks @Elarwei001.
|
- Usage accounting: parse Moonshot/Kimi `cached_tokens` fields (including `prompt_tokens_details.cached_tokens`) into normalized cache-read usage metrics. (#25436) Thanks @Elarwei001.
|
||||||
- Doctor/Sandbox: when sandbox mode is enabled but Docker is unavailable, surface a clear actionable warning (including failure impact and remediation) instead of a mild “skip checks” note. (#25438) Thanks @mcaxtr.
|
- Doctor/Sandbox: when sandbox mode is enabled but Docker is unavailable, surface a clear actionable warning (including failure impact and remediation) instead of a mild “skip checks” note. (#25438) Thanks @mcaxtr.
|
||||||
- Config/Meta: accept numeric `meta.lastTouchedAt` timestamps and coerce them to ISO strings, preserving compatibility with agent edits that write `Date.now()` values. (#25491) Thanks @mcaxtr.
|
- Config/Meta: accept numeric `meta.lastTouchedAt` timestamps and coerce them to ISO strings, preserving compatibility with agent edits that write `Date.now()` values. (#25491) Thanks @mcaxtr.
|
||||||
|
|||||||
@@ -358,11 +358,9 @@ describe("installSessionToolResultGuard", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Regression test for orphaned tool_result bug
|
|
||||||
// See: https://github.com/clawdbot/clawdbot/issues/XXXX
|
|
||||||
// When an assistant message with toolCalls is aborted, no synthetic toolResult
|
// When an assistant message with toolCalls is aborted, no synthetic toolResult
|
||||||
// should be created. Creating synthetic results for aborted/incomplete tool calls
|
// should be created. Creating synthetic results for aborted/incomplete tool calls
|
||||||
// causes API 400 errors: "unexpected tool_use_id found in tool_result blocks"
|
// causes API 400 errors: "unexpected tool_use_id found in tool_result blocks".
|
||||||
it("does NOT create synthetic toolResult for aborted assistant messages with toolCalls", () => {
|
it("does NOT create synthetic toolResult for aborted assistant messages with toolCalls", () => {
|
||||||
const sm = SessionManager.inMemory();
|
const sm = SessionManager.inMemory();
|
||||||
installSessionToolResultGuard(sm);
|
installSessionToolResultGuard(sm);
|
||||||
|
|||||||
Reference in New Issue
Block a user