v2026.2.12

リリースサマリー

項目内容
リリース日2026年2月12日
主な新機能Plugin管理(uninstall)、ログのタイムゾーン表示、Discord role-based routing
重要な修正SSRF対策強化、Session管理ハードニング、多数のセキュリティ修正
対象チャンネルDiscord、Telegram、WhatsApp、Slack、Signal
破壊的変更⚠️ あり — 下記参照
推奨度⭐⭐⭐⭐⭐ セキュリティ強化のため全ユーザー推奨

アップデートすべき?

全ユーザーにアップデート推奨。 このリリースはSSRF対策やSession管理など多数のセキュリティ修正を含んでおり、外部からの攻撃リスクが軽減されます。

破壊的変更の影響

Hook payload sessionKey拒否がデフォルトに。 Webhook(POST /hooks/agent)を使っている場合、リクエスト内の sessionKey が無視されるようになりました。

  • Webhookを使っていない人 → 影響なし。何もしなくてOK
  • Webhookを使っている人 → 固定のsessionKeyで運用したい場合は hooks.defaultSessionKey を設定。従来通りリクエスト内のsessionKeyを使いたい場合は hooks.allowRequestSessionKey: true を明示的に設定

詳細

2026年2月12日にリリースされたv2026.2.12では、セキュリティ強化、plugin管理機能の追加、メッセージング機能の改善が行われました。

新機能

Plugin管理機能の追加

openclaw plugins uninstall コマンドが追加され、インストール済みのpluginを安全にアンインストールできるようになりました。

openclaw plugins uninstall <plugin-id>

💡 ポイント: --dry-runオプションで削除される内容を事前確認でき、--keep-filesオプションでファイルを残したままアンインストール可能です。

ログのタイムゾーン表示対応

openclaw logs --local-time オプションが追加され、ログのタイムスタンプをローカルタイムゾーンで表示できるようになりました。

Telegram blockquote対応

Telegramチャンネルで、blockquoteがネイティブの<blockquote>タグとしてレンダリングされるようになりました(従来は削除されていました)。

Discord role-based routing

Discordで、ユーザーのロールに基づいたallowlistやagent routingが可能になりました。これにより、特定のロールを持つユーザーのみがbotにアクセスできるよう制限したり、ロールごとに異なるagentにルーティングしたりできます。

セキュリティ強化

このリリースでは、複数の重要なセキュリティ修正が含まれています:

SSRF対策の強化

  • Gateway OpenResponses APIで、input_file/input_imageのURL入力に対してSSRF拒否ポリシーを実装
  • ホスト名allowlist(files.urlAllowlist / images.urlAllowlist)による制限
  • Browser/Web toolsのコンテンツをデフォルトで信頼されないものとして扱うように変更
  • Link処理でloopback/内部ホストパターンとプライベートIPv6アドレスをブロック

💡 ポイント: 外部URLから取得したコンテンツに含まれる指示がprompt injectionとして実行されるリスクが軽減されました。

Session管理の強化

  • Transcriptパス解決のハードニング
  • 安全でないsession ID/ファイルパスの拒否
  • Agent sessionsディレクトリ外へのアクセスを防止

その他のセキュリティ修正

  • Nostrプロファイル API経由の未認証リモート設定改ざんを修正
  • bundled soul-evil hookを削除
  • Sandbox skill同期先をskills/ルートに制限
  • Webhook/デバイストークン検証で定数時間比較を使用
  • Browser control HTTPルートで認証を必須化
  • WhatsApp credential filesのパーミッションを0o600に強制

Hook session routingの変更

Hookのsessionルーティングがセキュリティ監査項目に追加され、設定推奨値が明確化されました:

  • hooks.defaultSessionKeyの設定を推奨
  • hooks.allowedSessionKeyPrefixes: ["hook:"]との併用を推奨
  • セキュリティ監査でHTTP APIエンドポイントの明示的session-keyルーティングを警告

破壊的変更

Hook payload sessionKey拒否

POST /hooks/agentが、デフォルトでpayload内のsessionKeyオーバーライドを拒否するようになりました。

移行方法

  • 固定hookコンテキストを維持する場合: hooks.defaultSessionKeyを設定(hooks.allowedSessionKeyPrefixes: ["hook:"]との併用を推奨)
  • 従来の動作が必要な場合: hooks.allowRequestSessionKey: trueを明示的に設定

改善

Config管理の改善

  • maxTokensのような数値フィールドがconfig redaction処理で誤って削除される問題を修正
  • /configでの設定ラウンドトリップ検証エラーを解消
  • ${VAR}形式の環境変数参照を保持(openclaw config set/apply/patchでシークレットをディスクに保存しないように改善)
  • $schemaキーをconfig fileで受け入れ(JSON Schema editorツールとの互換性)

Gateway安全性の向上

  • WebSocketペイロード/バッファ制限を引き上げ(5,000,000バイトの画像添付に対応)
  • 再起動前にアクティブなturnをdrainしてメッセージ損失を防止
  • install時にauth tokenを自動生成(launchd再起動ループを防止)
  • undefined/nullトークンの設定を防止
  • Control UI assetがグローバルインストール時にも解決されるように改善

Cron機能の改善

複数のcron関連のバグ修正と信頼性向上:

  • One-shot atジョブがgateway再起動後に再実行されないように修正
  • nextRunAtMsが進んだ際のスキップ問題を修正
  • ジョブ実行中にonTimerが発火した際のタイマー再設定
  • 複数ジョブ同時トリガー時の重複実行を防止
  • スケジューラーエラーの分離(1つのジョブエラーが全体に波及しない)
  • 隔離ジョブでのmodel override保持

チャンネル別の改善

WhatsApp:

  • Markdown bold/strikethrough → WhatsApp formatting変換
  • Media単独送信対応
  • 音声メッセージのMIME typeデフォルト値設定

Telegram:

  • /compactコマンドをネイティブメニューに追加
  • Model picker editMessageTextでno-textメッセージを処理
  • REACTION_INVALIDを非致命的警告として扱う

Slack:

  • デフォルトreplyToModeを"off"から"all"に変更
  • チャンネルメッセージがbot mentionで始まる場合のcontrolコマンド検出
  • Thread返信メタデータをinboundメッセージfooterに含める

Discord:

  • DM reactionsを処理(以前は無視されていた)
  • Administrator権限をフル権限として扱う
  • ThreadでのreplyToModeを尊重
  • WebSocket接続用のgateway proxyサポート追加(channels.discord.proxy

Signal:

  • E.164検証を強制(誤入力を早期検出)
  • Mentionプレースホルダーを@uuid/@phoneとしてレンダリング

その他のバグ修正

  • 長時間実行チャンネルsessionでのhistoryLimit適用(context overflowを防止)
  • Subprocess cleanup時のfile descriptor leak修正
  • Cache TTLバイパスによる二重compactionを防止
  • Context表示で最後のAPI呼び出しのcache tokenを使用
  • Followup-runner sessionのtotalTokensをpost-compaction contextと整合
  • 以前に接続されていなかった9つのplugin lifecycle hookを接続
  • Tool実行パスからbefore_tool_callafter_tool_call hookをdispatch

詳細なchangelogは公式CHANGELOGリポジトリを参照してください。