chore(deps): upgrade openai-go/v3 to v3.28.0, drop SasSwart fork#222
chore(deps): upgrade openai-go/v3 to v3.28.0, drop SasSwart fork#222
Conversation
The SasSwart fork replace (from openai/openai-go#602) is no longer needed — upstream v3.28.0 includes those changes. The Arguments field on ResponseOutputItemUnion changed from string to ResponseOutputItemUnionArguments (a union type). Updated the one callsite and test literals accordingly.
|
Closing — the SasSwart fork has unmerged perf changes (ShouldSerializeBody, appendCompact skip) that aren't in upstream v3.28.0 yet. PR #602 is still open. Will fix at the fantasy dep level instead. |
Updates the charm.land/fantasy replace to the rebased cj/go1.25 branch which includes: - chore: downgrade to Go 1.25 - feat: anthropic computer use Also removes the SasSwart openai-go/v3 replace directive and bumps aibridge to a matching commit (coder/aibridge#222) that works with upstream openai-go/v3 v3.28.0. The SasSwart fork's deferred body serialization was causing stream:true to be dropped from requests when used alongside the updated fantasy (which moved from openai-go/v2 to v3).
Why drop the SasSwart forkThe SasSwart fork defers request body serialization until after request options are applied (to let Upstream flow (works):
Fork flow (broken):
This wasn't previously triggered because The fork's perf optimizations ( |
Correction to my earlier commentThe fork isn't generically broken. The issue is specifically that
Aibridge doesn't hit this because it uses So aibridge is safe with the fork because it already manually controls serialization. The issue only surfaces when code (like fantasy's openai provider) calls |
The SasSwart fork of openai-go/v3 adds performance optimizations (deferred body serialization,
appendCompactskip) from openai/openai-go#602, which has not been merged upstream yet.However, the fork's deferred body serialization causes
stream: trueto be dropped from request bodies, breaking streaming requests when consumed alongside newer dependencies (e.g. fantasy) that use openai-go/v3 instead of v2.The
Argumentsfield onResponseOutputItemUnionchanged fromstring(in the fork) toResponseOutputItemUnionArguments(upstream union type). Updated the one callsite and test literals accordingly.