先日、Gemini JS SDKのv0.23.0リリースノートをGitHubで見ていたら、地味に「あ、これ自分のコードに関係ある」というやつがいくつかあったので書いておく。
今回のリリースで個人的に一番刺さったのが、`groundingChuncks` → `groundingChunks` のtypo修正(PR #342)と、`groundingSupport` → `groundingSupports` の修正(PR #348)。どちらも型やフィールド名のスペルミスで、実際に補完に頼って書いていたら気づかずそのまま通っていた可能性がある。自分もコードの中でグラウンディング周りを触っていたので、念のためgrep確認したら `groundingChuncks` って書いているところが1箇所あった。ちゃんと直しておいた。こういうSDK側のtypoって、TypeScriptで型エラーにならないと本当に見つけにくい。
もう一つ気になったのが、チャット履歴まわりの修正(PR #362)。空のpartsを持つcontentをチャット履歴から除外するようになったらしい。マルチターンで会話を繋いでいるとき、空のメッセージがスルーされていた可能性がある。自分のプロダクトで使っているわけじゃないけど、個人開発で試していたチャットボットのコードは一応見直しておいた。
PR #357で、AbortErrorを表す新しいエラー型が追加された。これは地味にありがたい。今まで処理をキャンセルしたときのエラーハンドリングを `catch (e)` でまとめて受けていて、「これAbortなのかAPIエラーなのか」を判断するのがちょっと面倒だった。専用の型が出てくれると、`instanceof` で分岐できるから処理をきれいに書き直せる。
あと、キャッシュ作成時にTTLを指定しないケースでもsystem instructionsが正しくフォーマットされるようになった修正(PR #358)もある。自分はTTLあり前提で使っていたから直接は関係なかったけど、省略したときにバグるのは普通に踏みそうなパターンなので早めに直してよかったと思う。
v0.23.0全体を見ると、バグ修正とtypo修正が中心で、破壊的変更はなさそう。`npm audit fix` も走っている(PR #340)ので、dev dependenciesのセキュリティ警告も消えているはず。アップグレードの優先度は高め、という印象。
一点気になるのは、このリポジトリ自体が2025年12月にアーカイブされている点。今後のメンテは新しいリポジトリ側に移っているので、これから新規で使い始めるなら最新のSDKを使った方がいい。すでにこのバージョンを使っているなら、移行のタイミングを意識しながら使うことになる。
自分の場合、個人開発で試しているコードはひとまずv0.23.0に上げてtypo由来のバグを潰しつつ、新しいSDKへの移行は年内に一度まとめてやる方向で考えている。来週は実際にAbortErrorまわりのエラーハンドリングをリファクタするところから手をつけてみるつもりだ。
typoなのに本番に影響するやつ
今回のリリースで個人的に一番刺さったのが、`groundingChuncks` → `groundingChunks` のtypo修正(PR #342)と、`groundingSupport` → `groundingSupports` の修正(PR #348)。どちらも型やフィールド名のスペルミスで、実際に補完に頼って書いていたら気づかずそのまま通っていた可能性がある。自分もコードの中でグラウンディング周りを触っていたので、念のためgrep確認したら `groundingChuncks` って書いているところが1箇所あった。ちゃんと直しておいた。こういうSDK側のtypoって、TypeScriptで型エラーにならないと本当に見つけにくい。
もう一つ気になったのが、チャット履歴まわりの修正(PR #362)。空のpartsを持つcontentをチャット履歴から除外するようになったらしい。マルチターンで会話を繋いでいるとき、空のメッセージがスルーされていた可能性がある。自分のプロダクトで使っているわけじゃないけど、個人開発で試していたチャットボットのコードは一応見直しておいた。
AbortErrorが独立した型になった
PR #357で、AbortErrorを表す新しいエラー型が追加された。これは地味にありがたい。今まで処理をキャンセルしたときのエラーハンドリングを `catch (e)` でまとめて受けていて、「これAbortなのかAPIエラーなのか」を判断するのがちょっと面倒だった。専用の型が出てくれると、`instanceof` で分岐できるから処理をきれいに書き直せる。
あと、キャッシュ作成時にTTLを指定しないケースでもsystem instructionsが正しくフォーマットされるようになった修正(PR #358)もある。自分はTTLあり前提で使っていたから直接は関係なかったけど、省略したときにバグるのは普通に踏みそうなパターンなので早めに直してよかったと思う。
実務で使うかどうかの判断軸
v0.23.0全体を見ると、バグ修正とtypo修正が中心で、破壊的変更はなさそう。`npm audit fix` も走っている(PR #340)ので、dev dependenciesのセキュリティ警告も消えているはず。アップグレードの優先度は高め、という印象。
一点気になるのは、このリポジトリ自体が2025年12月にアーカイブされている点。今後のメンテは新しいリポジトリ側に移っているので、これから新規で使い始めるなら最新のSDKを使った方がいい。すでにこのバージョンを使っているなら、移行のタイミングを意識しながら使うことになる。
自分の場合、個人開発で試しているコードはひとまずv0.23.0に上げてtypo由来のバグを潰しつつ、新しいSDKへの移行は年内に一度まとめてやる方向で考えている。来週は実際にAbortErrorまわりのエラーハンドリングをリファクタするところから手をつけてみるつもりだ。