コンテンツにスキップ

v0.26.0

各バージョンはワークスペースの rootfs も含めて 1 つの GitHub Release になり、ネイティブパッケージは amd64 に加えて arm64 の Linux 向けにも出ます。Managed セッションの停止は 2 段になりました。1 回目は実行中のターンだけを止めてキューを残し、 2 回目でキューも捨てます。ミラーは claude が書いている途中の返答を表示します。AWS では「作り直し」と「ホームを掃除」が 成功と報告して何も消していませんでした。ecs-ec2 では動くようになり、ecs では断ります。ワークスペースやホストの AWS 認証情報を エージェントのセッションに渡さなくなりました。AWS とクラウド上の Docker の配備では運用者の作業があります。

Security: ワークスペースやホストの AWS 認証情報をエージェントのセッションに渡さなくなりました

Section titled “Security: ワークスペースやホストの AWS 認証情報をエージェントのセッションに渡さなくなりました”

このリリースより前は、エージェントのセッションやターミナルで AWS プロファイルを指定しないコマンドが、メンバーではなくワークスペース自身の AWS の ID で黙って動くことがありました。素の aws、SDK の既定の認証情報チェーン、Gradle/Maven のデプロイプラグインのようなビルドツールが該当します。その ID は、ECS ではワークスペースのタスクロール、ecs-ec2 ではインスタンスメタデータ(IMDS)経由の EC2 スロットのインスタンスプロファイル、インスタンスプロファイルを持つ Docker ホストではそのプロファイルでした。こうしたコマンドは今後「Unable to locate credentials」で失敗します。メンバーは af-aws-exec --profile <name> --account <id> -- <command> で自分として AWS コマンドを実行します。

変わったこと:

  • ECS/ecs-ec2: Agent は起動するすべてのもの(tmux のペインと MCP サーバーを含む)からコンテナの認証情報の変数を取り除き、AWS_EC2_METADATA_DISABLED=true を設定します。
  • Docker: Control Plane はワークスペースのコンテナを AWS_EC2_METADATA_DISABLED=true で起動します。
  • ecs-ec2 のスロット: スロットのユーザーデータに ECS_AWSVPC_BLOCK_IMDS=true。
  • ec2-single: テンプレートが IMDSv2 とホップ制限 1 を必須にします。
  • update.sh はスロットプールのスタック(40-ec2-pool)も再デプロイします。ecs-ec2 で見つけられないときは止まるので、—pool-stack で指定してください。

運用者が行う作業:

  1. いつもどおり更新します(ECS は update.sh、Docker は compose の pull/up とワークスペースのイメージ)。
  2. ecs-ec2: 更新前に起動したスロットは古いユーザーデータのままで IMDS に届き、ワークスペースの Stop → Start は同じスロットに戻ります。ingress スタックの Ec2SlotTerminateAfterSec を設定し(推奨 14400)、Control Plane のスイーパーで退役させてください。スイーパーは終了前にホームを外し、ホームを消すことはありません。その後、利用者にワークスペースを Start してもらうと新しいスロットが作られます。deploy/aws/ecs/README.md の「Moving retained slots onto new user data」を参照してください。 🔴 2026-10-03 訂正(#1473): スロットの入れ替え予約が入ったリリース以降は、この目的に Ec2SlotTerminateAfterSec を使わないでください。設定 → 管理 → スロットで古いスロットを予約し(「N 台すべてを入れ替え予約…」は起動テンプレートの $Latest より古いスロットだけを選びます)、利用者に停止 → 起動してもらいます。次の起動ごとにホームが新しいスロットへ移り、古いスロットは終了します。Ec2SlotTerminateAfterSec はその時間停止していたスロットをすべて恒久的に終了するので、次の起動が遅くなりスロットのキャッシュも失われます。すべての配備が望むわけではありません。この移行のためだけに設定したなら 0 に戻してください。
  3. Docker/compose: 動いているワークスペースは作られたときの環境のままで、docker compose up -d や Docker の再起動では変わりません。更新後に Console ですべてのワークスペースを Stop → Start し、AF_WS_WORKLOAD_AWS を変えたときも同じようにしてください。
  4. ec2-single: このリリースより前に作ったインスタンスには aws ec2 modify-instance-metadata-options --instance-id <id> --http-tokens required --http-put-response-hop-limit 1 --http-endpoint enabled を実行してください。スタックの更新で適用しないでください。Ubuntu の AMI パラメータが解決し直され、インスタンスが置き換わることがあります。
  5. クラウド上のその他の Docker ホスト: IMDSv2 とホップ制限 1 を必須にするか、ワークスペースのブリッジから 169.254.169.254 への通信を拒否する DOCKER-USER ルールを追加してください。compose に新しい権限は要りません。
  6. オプトインを切った状態でワークスペースのシェルから確認します: echo ${AWS_EC2_METADATA_DISABLED:-unset} が true を出す。プロファイルなしの aws sts get-caller-identity が「Unable to locate credentials」で失敗する。curl -s -o /dev/null -m 3 -w '%{http_code}' -X PUT -H 'X-aws-ec2-metadata-token-ttl-seconds: 60' http://169.254.169.254/latest/api/token が 200 を出さない。環境変数は表示しないでください。

オプトイン: Control Plane の AF_WS_WORKLOAD_AWS=1 は ECS のタスクロールをセッションに戻し、SDK のメタデータ参照の抑止をやめます。ネットワークの遮断は外さないので、Docker のワークスペースにホストのインスタンスプロファイルを渡すことはありません。ワークスペースには次の Start で効きます。

対象外: ネイティブのランタイムのワークスペースはメンバー自身のマシンで動き、そのマシンのインスタンスロールを持ったままです。プロセスが自分のプロセスツリーから ECS のコンテナ URI を意図して読むことはまだできます(Agent トークンと同じ、同一ユーザーの境界)。

  • arm64 の Linux 向けネイティブパッケージ。 install.sh と af update は動いているマシンに合うパッケージを選びます。 0.26.0 より前のバージョンには arm64 のパッケージはありません。 (#1345)
  • Managed セッションの 2 段停止。 1 回目の停止は実行中のターンだけを止め、キューに入った自分の追加入力やピアメッセージは 1 ターンずつ順に実行されます。もう一度停止するか「停止してキューも捨てる」を選ぶと、残っているキューを捨てます。捨てた分は 通知に並び、「戻す」で自分の入力を入力欄に戻せます。キューの吹き出しには「入力欄へ戻す」と「取り除く」があります。 ターミナル(CLI)のセッションは CLI 自身の Esc のままです。 (#1289, #1292, #1293, #1294, #1244, #1256)
  • ミラーが claude の返答を書いている途中から表示します。 既定では 1 文字ずつ送って表示します。設定の 「返答をストリーミング表示」でオフ/行ごと/文字送りを選べます。視差効果を減らす設定では、文字送りは行ごとと同じになります。 (#1250, #1274, #1396)
  • Console から Git Flow を初期化できます。 リポジトリの右クリックメニュー(と、origin に develop があるのに何も宣言が ない作業項目からの起動)が git-flow の設定を書き、origin にだけある main/develop のローカル追跡ブランチを作ります。 (#1126, #1329)
  • 起動中のまま進まないワークスペースは 30 分で止まり、どこで止まったかが通知で届きます。テナント管理者はメンバー一覧で 自動停止とその理由を見られます。上限は AF_WORKSPACE_START_DEADLINE(0 で無効)。 (#1240, #1298, #1384)
  • テナントのブランチ命名ルール。 テナント管理者がテナント設定 › ブランチ命名ルール で全メンバー向けの規則を決められます。 リポジトリや自分の規則が引き続き優先です。 (#1127, #1120)
  • 題名に英字以外を含む作業項目に英語のブランチ名スラッグ。 AI のブランチ名提案がオンのとき AI が書きます。決まった規則の名前を すぐに出し、スラッグができたら置き換えます。 (#1129)
  • エージェントがブランチ名を尋ねられます。 新しい af MCP ツール branch_name が Console と同じ規則を適用します。 (#1128)
  • Claude Code のプッシュ通知が通知センターに届きます。 (#1069)
  • 設定 › AWS プロファイル/SSM で、プロファイルとホストをその場で編集できます。 ホストが使っているプロファイルは削除できなく なりました。 (#1409, #1411)
  • 画像ギャラリーにタイルの大きさ(小・中・大)と画像の幅×高さ。生成したばかりの画像がギャラリーとミラーのライトボックスで 速く開きます。 (#961)
  • テナント管理者は自前の LLM/画像エンジンを許可したメンバーだけに使わせられます(テナント設定 › 運用 › 推論エンジンの利用者)。既定は「メンバー全員」のままです。 (#1215)
  • GitHub で squash/rebase マージされたブランチのワークツリーを作り直すと、マージされた PR の head を候補に出します。 使い回したブランチ名は最新のマージを選びます。 (#1043, #1397)
  • 概要カードがすべてのエージェント種別でコンテキストのゲージ・トークンの推移・回答したモデル・最後の行を表示します。 Claude だけではなくなりました。 (#1342, #1362)
  • スキルピッカーが他のエージェントの個人スキルも出します(例: Muse Code や Codex のセッションで claude のスキル)。 (#1351)
  • llama.cpp セッションが 設定 › エージェントへの指示 に並び、次のターンから効きます。 (#1202)
  • ECS: Persistence=retain では EFS を毎日バックアップします(既定 7 日保持)。実配備ではまだ走らせていません (#1235)。 (#1195)
  • ECS: standup.sh と update.sh が --comfy-digest を受け付け、コピーする ComfyUI イメージを固定できます。ECR に 入ったダイジェストは毎回表示します。 (#966, #1319)
  • Muse Code: 再開したセッションのミラーに Agent が止まっていた間に終わったターンが補われ、添付画像がサムネイルで出て、 ターン後も走っているコマンドが「バックグラウンドのコマンドを実行中」と出ます(Codex の Managed も同様)。 (#1197, #1350, #1358)
  • Codex セッションを Managed からターミナル(CLI)に切り替えるには、先にセッションを止める必要があります。 早すぎる 切り替えには待つよう案内します。解放の確認が遅いと切り替えが待たされることがまだあります (#1147)。 (#1148)
  • 取り消せない管理操作(ホームの掃除、破棄、メンバーの削除、テナントと IdP の削除、リポジトリの削除と名前変更など)は 実行前に監査ログへ記録し、記録できなければ断ります。 (#1266, #1334)
  • 内部リポジトリの名前変更と削除は作成者かテナント管理者だけができます。作成には push できるロールが要ります。 (#1200)
  • ワークツリーの同期チップと「親を Fast-Forward で取り込む」は、親ブランチの upstream(例: origin/develop)と比べます。 マージ済みの PR のワークツリーが遅れて見えることがなくなりました。 (#1415)
  • 作業項目のレールは長い一覧を畳んでも位置が飛ばず、項目の多いレールでは絞り込みが固定され、折りたたみボタンの キーボードフォーカスが外れません。 (#1348, #1360)
  • Muse Code 1.4 でモデルを指定せずに始めたセッションが、データを共有する contributor モデルで動いていました。 起動の ピッカーも「既定」しか出していませんでした。カタログを読めるようになり、読めないカタログは断ります。 (#1344)
  • AWS で「作り直し」と「ホームを掃除」が成功と報告して何も消していませんでした。 ecs-ec2 ではメンバー(削除は次の起動時) と管理者の両方で動きます。ecs ではホームに届くようになるまで断り、ボタンも出しません (#1260)。 (#1225, #1259)
  • Codex・OpenCode・Cursor のターミナルセッションが質問・許可・更新・ロックの画面を出しているときに送ったプロンプトが、 その画面に打ち込まれ、答えてしまうことがありました。今は断ります。 (#1227, #1263)
  • 「作業中」のまま残るセッション: Esc で止めた Codex ターミナルのターン、kill 後に起動し直した OpenCode ターミナル、 ランタイムを失った後に詰まる Managed のキュー(Muse Code・Copilot・Cursor・Kiro)。 (#1264, #1265, #1258)
  • Antigravity のセッションがターンの途中なのに「入力待ち」と表示されていました。 (#1424)
  • SSO の開始 URL が identitycenter.amazonaws.com/ssoins-… 形式のプロファイルで、Console からの AWS ログインが 「unexpected sign-in URL」で止まっていました。 (#1408)
  • 実行中の Managed セッションの下で作業コピーを削除したり、ブランチを切り替えたりできていました。 (#1169)
  • ブラウザペイン: 読み込み前に「準備完了」になる、中断されたナビゲーション(204、拒否したダウンロード)で生きている ページが「到達できない」になる、読み込み失敗でペインが固まる、ループバック外へのリンクを止めた通知が 2 回出る、を直しました。 (#1353, #1377, #1381, #1386, #1406)
  • AWS で、チャットの圧縮・計画の更新・質問・エディタの編集提案が、モデルの回答に 1 分以上かかるとゲートウェイエラーに なっていました。 (#1151)
  • 変更ファイルの帯がファイルを「コミット済み」と示さず、ソース管理がサブモジュールを一覧しませんでした。 (#1183)
  • ミラー: ピアメッセージと自分のプロンプトが 1 つの吹き出しにまとまる、マーカーのピルが隣のペインに塗る、スキルピッカーが 送信の最初のタップを飲む・外側のタップや Esc で閉じない・ダークモードで読みにくい、を直しました。 (#1369, #1286, #1217, #1220, #1226)
  • 差分表示が最後の行の後に番号付きの空行を描いていました。 (#1160)
  • ecs-ec2: 起動した後で起動ダイアログが「起動できません」と出ることがありました。 (#1271)
  • Qwen-Image-Edit のインペイント画像で「この設定を再利用」すると、画像全体の編集として実行し直していました。 (#955)
  • サブディレクトリで始めた llama.cpp セッションに、開けないスキルが出ていました。 (#1361)
  • 内部 git: PUBLIC_BASE_URL にポートがあるとクローンに失敗する、リポジトリの読み取りが途中で失敗すると LFS の GC が 使用中のオブジェクトを消しうる、削除・名前変更・アップロードの失敗後に LFS の使用量がずれる、を直しました。 (#1198, #1210, #1211, #1335)
  • ソースからビルドした Control Plane のイメージにユーザーガイドが入っていませんでした。 (#1176)
  • リリースの添付ファイル: 別の rootfs-<r> リリースはなくなり、rootfs は v<version> に添付されます。各リリースの SHA256SUMS はそのリリースの添付ファイルをちょうど列挙します。導入済みの環境と af update は何もしなくて大丈夫です。 rootfs-<r> リリースから取得するスクリプトやミラーだけが追従を要します。 (#1345)
  • AF_MASTER_KEY なしで人をサインインさせる配備は、起動時に警告をログに出し、super admin にバナーを出します。止まりはしません。 (#1080)
  • PUBLIC_BASE_URL がないと、内部 git のクローン・push・LFS は 503 を返すようになりました。 内部 git を使うなら設定してください。 (#1212)
  • AF_USAGE_SAMPLE_INTERVAL・AF_GIT_GC_INTERVAL・AF_SCHEDULER_INTERVAL・AF_CLOUD_COST_INTERVAL は 0 で本当に止まるようになりました。 (#1186)
  • 他メンバーのセッションを止める管理者用 MCP ツールは stop_user_session になりました。 旧名では一度も動いていませんでした。 (#1188)
  • セッションの AWS 認証情報: 上の Security の節を見てください。AWS やクラウド上の Docker ホストのすべての配備に作業があります。
  • ECS: CP のロールが SSM コマンドを送れるのも、その範囲を決めるタグを書けるのも、自分のスロットのインスタンスだけになりました。AF_ECS_EC2_POOL を上書きして いる場合はクラスター名と同じにしてください。retain のデータスタック名は 37 文字までです。稼働中の配備で EFS バックアップを 有効にする手順は ECS の runbook にあります。 (#1182, #1419, #1195)

エージェント CLI のピン: Claude Code 2.1.286・Codex 0.159.3・OpenCode 1.18.34・Copilot 1.0.90・Antigravity 1.2.14・ Kiro 2.26.1・Muse Code 1.4.1-R4503.1。Cursor は 0.25.0 から変わりません。 (#1164, #1270)