fix(assets): update aigateway to 0.6.0 - #461
Merged
Merged
Conversation
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — the single-commit bump of the managed aigateway sidecar pin, verified against the published upstream release and the v0.5.0-rc2↔v0.6.0 source diff.
- Version pin
0.5.0-rc2→0.6.0— one constant atcatalog.ts:123that simultaneously moves the download URL, the store path (<root>/tool/aigateway/<version>/aigateway), and the GC's notion of the wanted version. - Five re-pinned artifacts — new SRI digest and byte size for each supported platform; no platform added or removed,
win32-arm64still correctly absent.
What I verified independently rather than taking on trust:
- Every digest and size matches the release exactly, cross-checked two ways: the Release API's
assets[].digest(sha256:<hex>re-encoded to base64) and the SRI column in the v0.6.0 release notes. The release is neither a draft nor a prerelease. - The URL template still resolves. The release publishes
aigateway-0.6.0-<triple>.tar.gz/.zip, which is exactly whataigatewayArtifact()builds atcatalog.ts:135. - The spawn contract is intact. Upstream
src/andproviders/aigw-openai-compat/are byte-identical between the two tags, soserve --host --port --config, the single stdout line thatLISTENING_REparses, stderr-only tracing, and the[upstream]TOML keysupstreamToTomlwrites all still hold. - The stated fix is real and reaches our path. The only upstream code that moved is
providers/aigw-anthropic/:Role::Systemis now accepted on deserialize andAnthropicRole::Systemmaps into the inbound native bridge, so an inline system message no longer 400s withunknown variant system. - Nothing else in the repo pins the old version, and no test asserts an aigateway version or digest.
ℹ️ Two pre-existing gaps in the sidecar config, surfaced by re-reading the 0.6.0 contract
Neither is introduced or amplified by this PR — both behave identically under the currently pinned 0.5.0-rc2 — so nothing here blocks the merge. Flagging them because this bump is the natural moment to decide whether they are worth tracking.
Technical details
# Sidecar config surfaces the daemon never writes
## Affected sites
- `apps/daemon/src/ai-gateway.ts:48` (`upstreamToToml`) — writes only `base_url`, `api_key`,
`wire`, and an optional `default_model`. It never writes `[upstream.models]`, so
`GET /v1/models` answers `{"data": [], "has_more": false, …}`: upstream
`advertised_models()` is literally `config.models.keys()` (`src/bridge.rs:143`). The upstream
`docs/gateway-sidecar.md` states Claude Code probes that route at startup and advises keeping
the map populated. The `/v1/messages` path itself is unaffected — with no map, `resolve_model`
falls back to `default_model`, or forwards the inbound Anthropic model name unchanged.
- `packages/host/engine/src/agent/translator.ts:15` and
`packages/foundation/providers/src/resolve.ts:141` — both comments say the sidecar implements
only `openai-chat`. The sidecar's `Wire` enum has carried `openai-responses` since at least
0.5.0-rc2 (it lives in the byte-identical `src/config.rs`), and `resolve.ts` consequently
marks an `openai-responses` account `unavailable` for claude-code even though the sidecar
could serve it.
## Open questions for the human
- Is an empty `/v1/models` response benign for the claude-code startup probe, or should
`upstreamToToml` emit an `[upstream.models]` entry for the account's model? I could not settle
this without driving a real claude-code session against the sidecar.
- Is leaving `openai-responses` unreachable for claude-code a deliberate scope decision, or
just a stale comment nobody revisited? If deliberate, the two comments are the thing to fix;
if not, that is its own issue rather than part of a version bump.Claude Opus | 𝕏
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Why
v0.6.0 accepts inline Anthropic system messages, fixing local requests that failed with HTTP 400
unknown variant system.Checks
pnpm check:cipnpm testSHA256SUMSaigateway 0.6.0