
2026年7〜9月のクラスメソッドグループ社員による OSS コントリビュートについてご紹介します
こんにちは。サービス開発部の武田です。
四半期ごとの恒例となりました、クラスメソッドグループ社員によるOSSコントリビューション紹介です。今回は2026年7〜9月に社内から報告のあった実績を紹介します。
参考までに、前回の紹介記事はこちらです。
OSSコントリビューション実績一覧
今四半期は8名から37件の報告がありました。issueとPRを1件にまとめて報告しているものもあるので、issueやPRの数とは一致しません。
TypeScript Deep Dive日本語版の古くなった記述を報告
金谷さんによるコントリビューションです。
TypeScript Deep Dive 日本語版の「Bind is Bad」のページは、bindを呼ぶと元の関数の型安全性が失われると説明しています。TypeScript 3.2でstrictBindCallApplyが導入されてからは、strict: trueならbind/call/applyにも正しく型がつきます。ページの記述が現在の挙動と食い違っていることをissueで報告しています。
pnpm 11でメタデータ解決時のメモリ使用量が増えた問題を報告・修正
こちらも金谷さんです。
pnpm 11では、依存関係の解決時にpnpm 10より約47%多くメモリを使うようになっていて、3GBのCIランナーではプロセスがOOM killされていました。金谷さんはissueで計測結果を示したうえで修正のPRを出し、マージされています。メモリの上限が決まっているCI環境でpnpmを使っている方には、ありがたい修正です。
tirithが日本語の句点の直後のASCII文字を誤検知する問題を報告
金谷さんの3件目です。
tirithは、ホモグラフURLやパイプでのシェル実行などを実行前に検知するターミナル向けのセキュリティツールです。「。」の直後にASCIIの単語が続くと、紛らわしい文字列の検出ルール(confusable_text)が誤って反応していました。
修正のPRも出していますが、メンテナー側の修正と重複したため、PRはクローズされています。修正はv0.4.0でリリースされ、issueにはメンテナーからお礼のコメントも付いています。
NVIDIA NeMo Switchyardに不具合の報告や機能の提案
ここからは森茂さんによるコントリビューションです。今四半期はもっとも多い15件の報告がありました。
中心になっているのはNVIDIA NeMo Switchyardです。OpenAIやAnthropicのAPI互換を保ったまま、リクエストを複数のモデルやプロバイダーに振り分けるLLMルーターで、15件のうち11件がこのプロジェクトです。
マージされたのは2件です。1件目は、v2 profileの種類名でハイフンとアンダースコアの両方を受け付ける修正(#22)です。先にドキュメントで補うPR(#19)を出し、メンテナーの提案を受けてコード側の修正に切り替えています。もう1件は、プロキシを通すとJSONのキーがアルファベット順に並び替えられ、構造化出力の結果が変わる問題の修正(#438、#439)です。
報告をきっかけにメンテナーが修正したものもあります。ストリーミング応答のトークン使用量が/v1/routing/statsに0として記録される問題(#18)は、森茂さんの修正PR(#21)とは別のメンテナーのPRで修正されました。判定用モデルの障害やタイムアウト時に、リクエストを止めず判定なしでルーティングを続ける(fail open)設定の提案(#850)も、10月にメンテナーのPRで実装されています。
9月に出した次の3件は、執筆時点ではレビュー中です。判定用モデルに画像がそのまま渡り、テキスト専用モデルだと判定に失敗する問題の修正(#598、#847)と、判定結果がunmatchedのときのしきい値ステップの設定(#845、#846)があります。もう1つは、user_turnルートで直近のユーザー発話をタスクとして判定する機能(#848、#849)です。
このほか、Fireworks上のDeepSeek V4へのリクエストがステータスコード400で拒否される問題を報告しています(#121)。修正PR(#122、#123)はマージされずにクローズされました。同じモデルIDを持つ別のターゲットにextra_bodyが適用されてしまう不具合の報告(#354)と、レガシーなPythonルーティングの削除後の移行方法についての質問(#335)もあります。
Switchyardの使い方は森茂さんの次の記事で紹介されています。
Qwen-MM-PluginsをOpenAI互換サーバーで動くように修正
森茂さんによるQwen-MM-Pluginsへの修正が2件です。Qwen-MM-Pluginsは、エージェントに画像や音声を扱うツールを追加するプラグイン集です。
1件目は、vLLMなどOpenAI仕様準拠のサーバーで使うと、音声系のツールがエラーになる問題です。音声データを生のbase64で送るオプションを追加しています。
2件目は、groundingツールが、Fireworksのようにリクエストボディを厳密に検証するエンドポイントで拒否される問題です。
どちらもissueを起票したうえでPRを出し、マージされています。プラグインを使ったときの様子は次の記事にまとまっています。
Kumo-TSとpulsarの不具合を修正
森茂さんの残り2件です。
時系列分析パッケージのKumo-TSでは、DARRモードで入力とコンテキストに同じ数値列が異なる順序で入っていると、チャンネルがずれたまま混ざる問題を報告し、修正がマージされました。エラーにならずに結果だけがずれるので、気付きにくい不具合です。
巨大なMoEモデルをSSDからストリーミングして推論するpulsarでは、Kimi K3の量子化モデルが読み込めない問題を修正しています。修正PRはマージ済みです。
DGX Spark 1台でKimi K3を動かした記事も公開されています。
FlociのS3でCORSとHTTP/2に関する不具合を報告
渡部さんによるFlociへのコントリビューションです。FlociはオープンソースのAWSエミュレータです。
1件目は、環境変数EXTRA_CORS_ALLOWED_ORIGINSで指定したCORS設定がS3に反映されず、プリフライトが403になる不具合です。v2.1.0で修正されました。
2件目は、HTTP/2でアクセスすると仮想ホスト形式のURLがパス形式と解釈され、404になる不具合です。こちらはv1.6.0で直っています。
ブラウザから直接S3を呼ぶ構成で出やすい問題です。
aws-samplesのVLAシミュレータが動かない問題を報告・修正
菅野さんによる、aws-samplesのロボット基盤モデル用シミュレーション環境へのコントリビューションです。コントリビュート時のリポジトリ名はsample-vla-simulator-on-awsで、10月にsample-rfm-simulation-on-awsへ改名されています。
READMEどおりにデプロイしても、GR00TとOpenVLA-OFTの評価が完走しない状態でした。mujocoなど依存ライブラリのバージョンの不整合が原因です。issueで原因と修正を報告し、修正のPRもマージされています。
原因を特定するまでの経緯は次の記事にまとまっています。
Backlog CLIのbeeで環境変数BACKLOG_PROJECTが読まれない問題を修正
酒井さんによる、BacklogのCLIであるbeeへのコントリビューションです。
document create、wiki create、document viewの3つのコマンドが、ヘルプで案内している環境変数BACKLOG_PROJECTを読んでいませんでした。そのため非対話の実行では、プロジェクトの指定がないとしてエラーになります。issueを起票したうえで修正し、ヘルプで環境変数が二重に表示される問題も合わせて直しています。CIなど非対話の環境からbeeを使っている方には、うれしい修正ですね。
pdfcpuやtakumiなどPDF関連のライブラリに報告・修正
ここからは持田さんによるコントリビューションです。PDFを扱うライブラリへの報告と修正がまとまっています。
Go製のPDFツールであるpdfcpuには2件のissueを出しています。1件目は、書き込み時に作成日時などのメタデータを上書きせずに残す設定の提案で、PreserveInfoDictとして実装されました。
2件目は、緩和された検証モードでもPDF 1.3のFreeText注釈が弾かれる問題の報告で、提案どおりに修正されました。2件とも、v0.16.0のリリースノートに載っています。
JSXやHTMLからPDFを生成するtakumiでは、タグ付きPDFの出力時にpanicするバグを報告しています。再現条件の切り分けと回避策も添えていて、メンテナーのPRで修正されました。
Rust製のPDF解析ライブラリpdf-inspectorには、バイナリCMapの読み込みを直すPRを出しています。同梱のCMapがすべて読み込みに失敗していたもので、ToUnicodeを持たないCIDフォントのPDFからも文字を復元できるようにする修正です。
PDFとは別に、先ほども登場したbeeで、HTTPS_PROXYなどにSOCKS5/SOCKS4のプロキシを指定できるようにするissueとPRも出しています。
pdf-inspectorとbeeのPRは、執筆時点ではまだマージされていません。
住宅ローンのダッシュボードとPDFをHTMLに組み立て直すブラウザ拡張を公開
持田さんは自作のツールも2つ公開しています。
mortgage-forecastは、変動金利の住宅ローンの返済推移と金利シナリオを、ローカルやセルフホスト環境で確認するためのダッシュボードです。
accessible-pdf-viewは、ブラウザで開いているPDFを、見出しやリスト、表の構造を持ったHTMLに組み立て直すブラウザ拡張です。スクリーンリーダーで読める形にすることが目的で、処理はブラウザの中で完結します。ChromeとFirefoxに対応しています。
Claude SDK for TypeScriptでClaude Platform on AWSのClientを渡せない問題を報告
岩田さんによるClaude SDK for TypeScriptへのコントリビューションです。
EnvironmentWorkerのインスタンスを生成できない問題をissueで報告しています。Claude Platform on AWS向けの@anthropic-ai/aws-sdkのClientを渡すと発生します。Claude Platform on AWSはSigV4で認証するので、EnvironmentWorkerが前提にしているauthTokenがありません。回避策もissueに書かれています。
この問題に遭遇したときの検証は、次の記事で紹介されています。
Flociに不具合の報告とドキュメント修正
最後は私によるFlociへのコントリビューションです。
7月末には、エミュレータが対応していない操作を成功として返してしまう問題を2件報告しました。CloudWatch Logs Insightsでは、未対応の構文を含むクエリがエラーにならず、意図と違う結果を返していました。Cloud Control APIのListResourcesでは、未対応のリソースタイプに対して空のリストを返していて、「リソースがない」との区別がつきませんでした。
Logs Insightsの対応構文はドキュメントに書かれていなかったので、合わせて追記しています。その後v2.1.0で未対応のクエリは失敗するように変わったので、9月末にドキュメントもそれに合わせて直しました。
8月には、AppSyncのApiKeyの構造がAWSの仕様と異なり、AWS CLIやSDKからの認証に失敗する問題を修正しました。
9月末には、Flociのローカル認証局で発行した証明書が、Python 3.13の厳密な検証で失敗する問題を報告しました。
さいごに
今回は以上です。
37件のうち22件を森茂さんと持田さんの2名が占め、Flociとbeeにはそれぞれ2名が関わりました。コントリビュートの形もさまざまで、tirithやSwitchyardのように、issueでの報告をきっかけにメンテナーが修正したものもあります。
DevelopersIOの検証記事と合わせて報告されたプロジェクトも5つあります。Switchyard、Qwen-MM-Plugins、pulsar、VLAシミュレータ、Claude SDK for TypeScriptです。コントリビュートに至った経緯を記事で追えるので、合わせてご覧ください。
次回の紹介記事もお楽しみに。







