fix: skip Responses item id replay without store#89128
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 2, 2026, 1:22 AM ET / 05:22 UTC. Summary PR surface: Source +3, Tests +137. Total +140 across 4 files. Reproducibility: yes. Current main has a clear source path where Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the focused replay-policy guard with the added regression tests once normal required checks and maintainer review are satisfied. Do we have a high-confidence way to reproduce the issue? Yes. Current main has a clear source path where Is this the best way to solve the issue? Yes. The patch fixes the replay decision at the policy boundary used by both the wrapper and transport builder, while tests preserve store-enabled OpenAI replay behavior. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 6883351085c3. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +3, Tests +137. Total +140 across 4 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Added real backend proof from a custom Responses-compatible route. Redacted proof summary:
The PR body now includes the proof details and retained local audit artifact paths. @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Opened and linked tracking issue: #89330 |
|
Thanks @snowzlm. This fix is now already present on current That landed commit covers the same non-persistent Responses replay gate and includes the wrapper/transport regressions plus live OpenAI Responses |
Summary
What problem does this PR solve?
store=falseorstoreis stripped because the custom provider declarescompat.supportsStore=false).404 Item with id ... not foundandItems are not persisted when store is set to false.Why does this matter now?
Something went wrong while processing your requestfailures.What is the intended outcome?
What is intentionally out of scope?
startup: falseassertion failure currently red in upstream CI.infra-file-safetyandstartup-health-runtime.What does success look like?
store=false/supportsStore=falseResponses requests.What should reviewers focus on?
replayResponsesItemIdsgating insrc/llm/providers/stream-wrappers/openai.ts.src/agents/openai-transport-stream.ts.Linked context
Which issue does this close?
Closes #
Which issues, PRs, or discussions are related?
Related #
Was this requested by a maintainer or owner?
Real behavior proof (required for external PRs)
404 Item with id ... not found,Items are not persisted when store is set to false) and embedded reply failure.aitokenapi/gpt-5.5atcatcats.net.buildOpenAIResponsesParams(...)in the patched source tree.pnpm exec tsx projects/openclaw-upstream-fix/reports/pr-89128-real-proof/capture-real-backend-proof.tsstore field present: falsereasoning item id present: falseassistant message id present: falsefunction_call id present: falsefunction_call call_id: call_abcreasoning encrypted_content present: falseHTTP status: 200response status: completedprevious_response_id: nulloutput_count: 1{"status":"completed","previous_response_id":null,...}projects/openclaw-upstream-fix/reports/pr-89128-real-proof/real-backend-proof.mdprojects/openclaw-upstream-fix/reports/pr-89128-real-proof/real-backend-proof.jsonprojects/openclaw-upstream-fix/reports/pr-89128-real-proof/real-backend-proof-terminal.txtTests and validation
Which commands did you run?
pnpm test src/agents/openai-transport-stream.test.ts src/agents/embedded-agent-runner-extraparams.test.tsgh workflow run ci.yml --repo snowzlm/openclaw --ref fix/responses-store-false-replay -f target_ref=fix/responses-store-false-replay -f include_android=falseWhat regression coverage was added or updated?
replayResponsesItemIds=falsewhen a custom Responses provider stripsstoresupport.What failed before this fix, if known?
If no test was added, why not?
Risk checklist
Did user-visible behavior change? (
Yes/No)Did config, environment, or migration behavior change? (
Yes/No)Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)What is the highest-risk area?
How is that risk mitigated?
explicitStore === falseorshouldStripStore === true.Current review state
What is the next action?
What is still waiting on author, maintainer, CI, or external proof?
Which bot or reviewer comments were addressed?
check-test-typesregression from this branch by relaxing the test model typing in follow-up commit84a9cce5c7.Issue
Fixes #89330