fix: treat empty baseUrl as non-direct for OpenAI Responses#16930
fix: treat empty baseUrl as non-direct for OpenAI Responses#16930weiguangli-io wants to merge 1 commit intoopenclaw:mainfrom
Conversation
|
Quick note on the current red check: The code/test checks are green on this branch, and this failure appears to be workflow permission-related rather than a functional regression. |
|
Pushed a small CI-only follow-up to address the red Root cause was not functional code regression: the workflow’s informational PR comment step fails with 403 on fork PRs ( Change made:
This keeps drift detection/reporting behavior while preventing false-red CI on forks. |
bfc1ccb to
f92900f
Compare
|
Quick check update on the current red CI:
This PR only changes:
Given the failure signatures and touched paths, this looks unrelated to the PR changes. Could a maintainer rerun the failed checks once? |
|
Quick follow-up data point: I ran the previously failing Mattermost test locally on this branch:
Result: pass ( So the current CI red status still looks consistent with a runner/environment instability in that large matrix run rather than a deterministic regression in this PR. |
7dfbfd2 to
f947032
Compare
|
Landed on Rewrite summary:
SHA notes:
Thanks @OiPunk. |
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu> (cherry picked from commit c38be8f)
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu> (cherry picked from commit c38be8f)
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu> (cherry picked from commit c38be8f)
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
…nclaw#16930, openclaw#22441, openclaw#25088) Landed from contributor PRs openclaw#16930, openclaw#22441, and openclaw#25088. Co-authored-by: liweiguang <codingpunk@gmail.com> Co-authored-by: EdwardWu7 <wuzhiyuan7@gmail.com> Co-authored-by: MoerAI <friendnt@g.skku.edu>
Summary
Fixes #16914.
isDirectOpenAIBaseUrl()currently treats empty/falsybaseUrlas direct OpenAI, which makes the Responses wrapper forcepayload.store = true.For models routed through non-direct providers with empty
baseUrlmetadata (including the reportedopenai-codex/gpt-5.3-codexpath), this is incorrect and triggers upstream errors.This PR changes empty
baseUrlhandling to returnfalse(not direct OpenAI).Changes
src/agents/pi-embedded-runner/extra-params.tsisDirectOpenAIBaseUrl("" | missing)now returnsfalse.src/agents/pi-embedded-runner-extraparams.e2e.test.tsbaseUrldoes not forcestore=true.Testing
pnpm exec vitest run --config vitest.e2e.config.ts src/agents/pi-embedded-runner-extraparams.e2e.test.tsAI-assisted
AI-assisted: yes. I manually reviewed and validated the final patch and tests.
Greptile Summary
Fixes a bug where
isDirectOpenAIBaseUrl()treated empty/falsybaseUrlas direct OpenAI, causing the Responses API wrapper to forcepayload.store = truefor models routed through non-direct providers (e.g.,openai-codex/gpt-5.3-codexpaths with emptybaseUrlmetadata). The fix changes the emptybaseUrlcase to returnfalse, so only explicitly recognized OpenAI URLs (api.openai.com,chatgpt.com) trigger thestore=trueoverride.src/agents/pi-embedded-runner/extra-params.ts: One-line change fromreturn truetoreturn falsein the early-return guard ofisDirectOpenAIBaseUrl. Models with explicit direct OpenAIbaseUrlvalues are unaffected.src/agents/pi-embedded-runner-extraparams.e2e.test.ts: Adds a regression test verifying that emptybaseUrldoes not forcestore=true..github/workflows/formal-conformance.yml: Addscontinue-on-error: trueto the PR comment step, preventing CI failure when the workflow lacks permissions to post comments (e.g., fork PRs).Confidence Score: 5/5
return true→return false) that corrects incorrect behavior for emptybaseUrlvalues. The function is only called from one place (shouldForceResponsesStore), the change is covered by a new regression test, and the existing test suite confirms that direct OpenAI URLs still correctly forcestore=true. The CI workflow change is similarly low-risk —continue-on-error: trueonly affects an informational comment step.Last reviewed commit: 04d8569
(2/5) Greptile learns from your feedback when you react with thumbs up/down!