@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.

ChangeSeverityDetectsFixVerified by
webhooks.retrieve became webhooks.get
google-genai-npm-1.50.1-webhooks-retrieve-renamed
Breaking
  • .webhooks.retrieve() on an instance constructed from @google/genai
Patch, written by the rename-property transformYour 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 scan

Then npx emendant fix writes the patches the table says exist. The getting started guide covers the flags and the patch grades.