Gemini CLI v0.68 で rootless Podman のサンドボックスとパス境界の判定が直った

Gemini CLI 公開:

v0.68.0 は新機能 1 件と修正 28 件のリリースです。rootless Podman への --userns=keep-id、Windows でのルート判定、GlobTool のシンボリックリンク解決という、境界の判定に関わる修正を整理します。

検証日 2026年11月16日 検証バージョン Gemini CLI v0.68.0 仕様変更が早い分野です。最新の公式ドキュメントも併せてご確認ください。 記事の作り方と検証手順
目次
  1. rootless Podman に --userns=keep-id が渡る
  2. パスの境界判定の修正 2 件
  3. 拡張の検証コマンドとフックの SubagentStop
  4. そのほかの修正
  5. まとめ

Gemini CLI の v0.68.0 は、リリースノートに まとめの文章が無く PR の一覧だけが並ぶ回です。新機能は 1 件で、残りは修正です。

地味に見えますが、境界の判定に関わる修正が 3 件まとまっているのがこのリリースの性格です。どれも「公式ドキュメントが書いていた挙動が、実際には一部の環境で成立していなかった」種類のものです。

KEY POINT

この記事で分かること

  • rootless Podman で --userns=keep-id が渡る条件と、上書きの方法
  • Windows でのルート判定とシンボリックリンクの解決に入った修正
  • 追加された拡張の検証コマンドとフックの SubagentStop が、まだ公式ドキュメントに無いこと

rootless Podman に --userns=keep-id が渡る

修正は fix(sandbox): supply --userns=keep-id for rootless podman(#30118)です。この挙動は公式ドキュメントの「Linux UID/GID handling」の節に書かれています。

Gemini CLI automatically handles user permissions in container sandboxes on Linux. When the sandbox runs as your host UID/GID (the default on supported Linux distributions) and you use rootless Podman, Gemini CLI also passes --userns=keep-id. This keeps files that the sandbox creates in mounted directories owned by your host user. To use a different user namespace mode, add your own --userns option to SANDBOX_FLAGS.

つまり、サンドボックスがマウント先に作ったファイルの所有者がホストのユーザーのままになる、という約束です。rootless Podman で所有者が root に化けていた場合は、この修正が入るまで約束どおりに動いていなかったことになります。

バックエンドの選び方は 3 通りで、優先順も決まっています。

方法書き方
コマンドフラグ-s または --sandbox
環境変数`GEMINI_SANDBOX=true
設定ファイルsettings.json の tools の中に "sandbox": true
# rootless Podman でサンドボックスを有効にする
export GEMINI_SANDBOX=podman
gemini

# 別のユーザー名前空間モードを使う場合は自分で渡す
export SANDBOX_FLAGS="--userns=host"

SANDBOX_SET_UID_GID でマッピング自体を切り替えることもできます。true でホストの UID/GID を強制し、false で UID/GID のマッピングを無効にします。

パスの境界判定の修正 2 件

残りの 2 件は、どのパスが作業範囲の内側かを決める部分です。

  • fix(core): make isWithinRoot case-insensitive on Windows(#29999)— Windows でルート判定が大文字小文字を区別しないようになりました。C:\Project と c:\project が別物として扱われていた場合に効きます
  • fix(core): resolve symlinked paths canonically in GlobTool(#30042)— GlobTool でシンボリックリンクのパスを正規化して解決するようになりました

この 2 件の挙動は公式ドキュメントに書かれていない

作業範囲(workspace)という概念自体はドキュメントにあります。サンドボックスの節は「the sandbox only has access to the current project workspace」と書き、範囲外を触らせたいときは SANDBOX_MOUNTS を使うよう案内しています。

一方で、パス比較が Windows で大文字小文字を区別するのか、file 系のツールがシンボリックリンクをどう解決するのかは、公式ドキュメントでは確認できませんでした。 PR のタイトルから挙動は読み取れますが、仕様として保証された記述は見つかりません。範囲外を確実に遮断したい場合は、サンドボックスを有効にして SANDBOX_MOUNTS で明示的に渡す構成のほうが確実です。

git の除外設定に関する修正も 1 件あります。fix(core): honor .git/info/exclude and core.excludesFile in shadow repo(#30034)です。ただし .git/info/exclude と core.excludesFile を尊重するという記述は、公式ドキュメントでは確認できませんでした。 ドキュメントに載っている除外の設定は次の 3 つです。

設定内容
context.fileFiltering.respectGitIgnore.gitignore を尊重する(既定 true)
context.fileFiltering.respectGeminiIgnore.geminiignore を尊重する(既定 true)
context.fileFiltering.customIgnoreFilePaths追加の除外ファイルのパス。.geminiignore と .gitignore より優先される

追加の除外ファイルを確実に効かせたいなら、customIgnoreFilePaths に明示するのが documented な手段です。

拡張の検証コマンドとフックの SubagentStop

このリリースで唯一の新機能は feat(cli): add extension validation command and evaluation tests(#29980)です。ただし 2026 年 11 月 16 日時点の公式ドキュメントに、validate というサブコマンドの記載はありません。 ドキュメントに載っている gemini extensions のサブコマンドは次のとおりです。

install / uninstall / disable / enable / update / new / link / list / config

スラッシュコマンド側の /extensions も、config、disable、enable、explore、install、link、list、restart、uninstall、update の 10 個で、validate はありません。

フックにも 1 件あります。fix(hooks): support SubagentStop event mapping and merge hook definitions(#30111)です。こちらも注意が必要です。公式ドキュメントのフックイベント一覧に SubagentStop はありません。 載っているのは次の 11 個です。

SessionStart / SessionEnd / BeforeAgent / AfterAgent / BeforeModel / AfterModel
BeforeToolSelection / BeforeTool / AfterTool / PreCompress / Notification

SubagentStop は Claude Code 側のイベント名です。Gemini CLI には CLAUDE_PROJECT_DIR という互換用の環境変数があるため、Claude Code の設定を移すときのマッピングを指している可能性はありますが、そう書かれた公式の記述は見つかりませんでした。 フックの timeout がミリ秒である点(既定 60000)は Gemini CLI v0.67 で models コマンドが追加され Claude のフック移行の単位が直った で扱っています。

そのほかの修正

モデルの選択に関わるものが 3 件あります。

  • fix(core,cli): preserve selected model across transient fallback, cancel, and rewind(#30059)— 一時的なフォールバック、キャンセル、巻き戻しをまたいで選択中のモデルが保たれる
  • fix(core): preserve explicit gemini-2.5-flash model in dynamic model resolution(#30057)— 明示的に指定した gemini-2.5-flash が動的な解決で置き換わらない
  • fix(core): list Auto in /model when dynamicModelConfiguration is enabled and preview access is disabled(#29998)— 条件つきで /model に Auto が出るようになった

運用で気づきやすいのは fix(cli): surface 429 rate limit cool-down and countdown in loading indicator(#30012)です。レート制限に当たったとき、クールダウンとカウントダウンがローディング表示に出ます。無料枠の上限は Gemini CLI の無料枠の上限と有料プランとの違い にまとめてあります。

拡張の扱いでは、同時インストールを拡張ごとのロックで直列化する修正(#30039)と、拡張のリリースのダウンロード中にストリームが落ちた場合の処理(#30100)が入りました。MCP サーバーの設定は Gemini CLI に MCP サーバーを追加する方法 を参照してください。

まとめ

  • v0.68.0 はリリースノートにまとめの文章が無く、新機能 1 件・修正 28 件の構成
  • rootless Podman では --userns=keep-id が渡る。これはドキュメント化された挙動で、別のモードにするなら SANDBOX_FLAGS に --userns を自分で足す
  • Windows のルート判定と GlobTool のシンボリックリンク解決が直った。ただしどちらも仕様としての記述は公式ドキュメントに無い
  • 追加された拡張の検証コマンドと、フックの SubagentStop は、いずれも公式ドキュメントに記載がない

よくある質問

rootless Podman でサンドボックスが作ったファイルの所有者がおかしくなります。
公式ドキュメントによると、ホストの UID/GID で動いていて rootless Podman を使っている場合、Gemini CLI は --userns=keep-id を渡します。これでマウント先に作られたファイルがホストのユーザー所有のままになります。別のモードにしたいときは SANDBOX_FLAGS に自分で --userns を足します。
サンドボックスのバックエンドはどう選びますか?
優先順に、-s か --sandbox フラグ、環境変数 GEMINI_SANDBOX(true / docker / podman / sandbox-exec / runsc / lxc)、settings.json の tools.sandbox です。
v0.68.0 の新機能は何件ですか?
1 件です。拡張の検証コマンドの追加で、残り 28 件はすべて修正と整理です。ただしこのコマンドは、2026 年 11 月 16 日時点の公式ドキュメントのサブコマンド一覧には載っていません。

参考にした一次情報

この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。