@google/genai 1.50.1 renamed one method in a patch release. ai.webhooks.retrieve became ai.webhooks.get, and the old name was not kept: 1.50.0 declares retrieve, 1.50.1 declares get. The return type narrowed at the same time, from a WebhookRetrieveResponse wrapper to the Webhook itself.
What changed
One method on one resource, renamed to match how the rest of the client reads a single item. Arguments are unchanged. What comes back is one hop shorter: the webhook rather than a response wrapping it.
It earns a page because it is a break in a patch release. A range of ^1.50.0 picks it up on the next install, with no deliberate upgrade.
Before and after
The old name on a client held in a variable:
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env['GEMINI_API_KEY'] ?? '' });
export async function webhook(id: string) { const response = await ai.webhooks.retrieve(id); return response;}After npx emendant fix:
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env['GEMINI_API_KEY'] ?? '' });
export async function webhook(id: string) { const response = await ai.webhooks.get(id); return response;}Migration guidance and its limits
Apply the patch. It is a deterministic rename, proved against your own typecheck and tests before it is offered.
The return type is the part it does not do. Code that read a field off the old wrapper now reads it off the Webhook, and your typecheck will point at it; Emendant does not edit those reads.
The call is attributed through the GoogleGenAI binding. A client passed in as an untyped parameter, or reached through a wrapper the file does not construct, is not reported. A site the tool cannot prove is one it does not name.
What Emendant detects, fixes and verifies
1 change in @google/genai 1.50.1. 1 patched by a transform, 0 patched only with a model provider you name, 0 report only. Every patch is proved in a copy of your repository before it is offered, and its header names the checks that passed. This table is generated from the feed entry, so it cannot claim more than the entry does.
| Change | Severity | Detects | Fix | Verified by |
|---|---|---|---|---|
webhooks.retrieve became webhooks.getgoogle-genai-npm-1.50.1-webhooks-retrieve-renamed | Breaking |
| Patch, written by the rename-property transform | Your typecheck and tests |
emendant explain <change-id> prints any row's entry, guidance and sources at the terminal.
Coverage
- Snapshot
2026-08-28.1, sequence 11, signed 28 August 2026- Minimum CLI
emendant@0.1.0- Feed entry
feed/npm/@google/genai/1.50.1.json
emendant feed status shows the snapshot your machine holds, and emendant feed update fetches the latest.
Primary sources
Every claim above was checked against these, each pinned to the release rather than to a default branch.
Scan your repository
Runs locally, reads your lockfile and source, sends nothing anywhere.
npx emendant scanThen npx emendant fix writes the patches the table says exist. The getting started guide covers the flags and the patch grades.