chore(deps): pin AI client to Fleet canonical versions - #66
Merged
Conversation
Converge rolepatch onto the Fleet canonical model-calling standard (tooling/config/ai-client-standard.json, ratified 2026-08-29 by owner decision on sass-maker/saas-maker#61). rolepatch was the only project still declaring ranges instead of exact pins. ai ^6.0.97 -> 6.0.168 @ai-sdk/openai-compatible ^2.0.41 -> 2.0.41 (pin only, same version) @ai-sdk/react is not a dependency here, so the companion pin does not apply. Lockfile regenerated; the diff is confined to ai and its transitive deps. The SDK bump was clean — no source changes were needed. typecheck, biome check, the 442-test vitest suite, and next build all pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Converges rolepatch onto the Fleet canonical model-calling standard, ratified 2026-08-29 by owner decision on sass-maker/saas-maker#61. The standard lives at
tooling/config/ai-client-standard.jsoninsass-maker/saas-maker; this PR closes itsrolepatch-pin-convergencefollow-up, which was blocked on ratification. rolepatch was the fleet's onlydriftedproject — it declared ranges rather than exact pins.Version moves
ai^6.0.976.0.168@ai-sdk/openai-compatible^2.0.412.0.41@ai-sdk/openai-compatiblewas already at the canonical version — only the range caret is removed.aiis a real version move of 71 patch releases.@ai-sdk/reactis not a dependency of this repo, so the companion pin does not apply.pnpm-lock.yamlis regenerated. The lockfile diff is confined toaiand its transitive deps (@ai-sdk/gateway,@ai-sdk/provider-utils, and a droppedeventsource-parser); nothing else moved.Was the SDK bump clean?
Clean — no source changes were needed. The repo's use of the SDK is narrow:
generateObjectandgenerateTextfromai, pluscreateOpenAICompatibleand theLanguageModeltype. None of those signatures changed across 6.0.97 → 6.0.168, and every check passes on the bumped version.The same four commands were run on
mainbefore the change to establish a baseline; they were green there too, so nothing here is masking a pre-existing failure.One unrelated pre-existing peer warning shows during install (
landing-astro'sastro→tsconfck/zod-to-tswanttypescript@^5, resolve6.0.3). It predates this change and is untouched.Direct-provider call sites: none found — deliberately left alone
The fleet audit recorded rolepatch with 2 provider-host files. Both are false positives from the text scan. They are not call sites:
src/components/ai-settings.tsx:96—placeholder={placeholders.endpointUrl ?? 'https://api.openai.com/v1'}src/components/settings-form.tsx:43—endpointUrl: 'https://api.openai.com/v1', theplaceholdersprop passed into that same componentBoth are the greyed-out placeholder text of the "Endpoint URL" input in the bring-your-own-key Settings form. No request is ever made to that string — it is an example format shown in an empty text box that the user types their own provider URL into.
A repo-wide grep for every provider API host in the standard's
providerApiHostslist returns only those two lines, and a grep for every package inproviderSdkPackagesreturns nothing. There is no provider SDK and no direct provider call anywhere in rolepatch.The actual model-calling path is already compliant.
src/lib/ai-cloudflare.tsbuilds every model throughcreateOpenAICompatibleand defaults to the gateway:overridable by
AI_BASE_URL, with anx-gateway-project-id: resume-tailorheader. The only way a request leaves for a non-gateway host is if an end user pastes their own endpoint and key into Settings — a deliberate BYO-key product feature, not a hard-coded provider host.I left both placeholder strings as they are. Swapping them for the gateway URL would be a one-word string edit, but it is a product/UX decision, not a mechanical convergence: the field exists precisely so a user can point at their own provider, and showing the fleet gateway as the suggested value in a BYO-key box would be misleading. It also changes nothing about compliance, since neither line is a call site. Flagging it here so it can be scoped separately if the owner wants the copy changed.
Two smaller notes:
AI_BASE_URL, while the standard namesAI_GATEWAY_BASE_URLascanonical.baseUrlEnv. Renaming it touches deployment secrets, so it is out of scope for a mechanical pin PR — worth a separate follow-up.stale-next-standalone-copyfollow-up mentions a vendored.next/standalone/package.json. It is build output and is not tracked by git in this repo, so there is nothing to converge and nothing was hand-edited.Not done here
No deploy. This is dependency + lockfile only.
🤖 Generated with Claude Code