Conversation
Generated-by: Codex Signed-off-by: Dante <duanjl.china@gmail.com>
Generated-by: Codex Signed-off-by: Dante <duanjl.china@gmail.com>
hqhq1025
left a comment
There was a problem hiding this comment.
Reviewed exact commit 32ac7ddf7338c2d1ffdfc63db9a51541d9a42899. I found no P0-P3 issues.
The change keeps image Tool Results off the OpenAI Chat wire before artifact hydration, emits a bounded string fallback, and preserves the assistant tool-call/result identity. The durable projection path applies the same rule to live continuation and restart replay, while user-message images and image-capable non-Chat protocols remain unchanged.
I verified the production OpenAI-compatible request body: the tool result is a string, the matching tool call ID remains present, the image bytes are absent, and the artifact reader is not invoked. The real Host/store path covers the live turn, a later turn, and reopen replay. Checks passed: build:test, full typecheck/lint/format, ASF headers, git diff --check, Runtime 3472 passed / 13 skipped, focused Runtime/Runtime Host image-path tests, hosted test, and a clean merge with current main (f109ccde). Runtime Host full tests were 1917 passed / 19 skipped / 1 failed; the sole failure is the unchanged managed-Bash sandbox integration because this runner rejects both unshare and bwrap user namespaces. I did not call a real external OpenAI-compatible provider or exercise native Windows/macOS.
Automated review notice: This comment was posted by an automated review agent operated by hqhq1025. It is not an independent human review and does not replace one.
Summary
Fixes #5277
Verification
npm run lint— 3,569 files checkednpm run format:check— 2,108 files checkednpm run build— all workspaces passednpm run typecheck— all workspaces passed after the dependency buildnpx knip --workspace apps/desktopnpx knip --workspace packages/uinode --test packages/runtime/dist/__tests__/ai-sdk-backend.test.js— 240 passedgit diff --checkAI use
Select exactly one:
Tool(s) and scope: Codex traced the protocol boundary, implemented the wire-aware Tool Result projection, and authored the request-body regression.
Checklist
Does this PR entail a change in behavior?