| 4335 | free(summary); |
| 4336 | free(action); |
| 4337 | free(result); |
| 4338 | free(tools_json); |
| 4339 | free(status_str); |
| 4340 | server_image_inputs_free(&content_images); |
| 4341 | server_image_inputs_free(&output_images); |
| 4342 | goto fail; |
| 4343 | } |
| 4344 | (*p)++; |
| 4345 | |
| 4346 | const char *t = type ? type : "message"; |
| 4347 | /* Replayed items must be in a terminal "completed" state. in_progress, |
| 4348 | * incomplete, and failed all represent partial model state the client |
| 4349 | * never confirmed — feeding them back as history would let DS4 continue |
| 4350 | * from a tool action that never finished. Reject explicitly. */ |
| 4351 | if (status_str && status_str[0] && |
no test coverage detected