Claude Code 2.1.318の変更点と無人運用の確認点
「Claude Code がまた上がった。cron や launchd で回している claude -p に関係する変更はあるのか」「変更履歴が長すぎて、どこを読めばいいか分からない」——無人で Claude Code を動かしていると、版が上がるたびにこの確認が要ります。
結論から言うと、Claude Code 2.1.318(2026年11月4日公開)と、その前日の 2.1.317 には、無人で回している人が上げる前に見るべき変更が7つあります。中心は3つで、ログインの期限切れを10日前から stderr で知らせるようになったこと、ディスクの満杯で記録を失ったときに exit 0 ではなく exit 1 で終わるようになったこと、Web やシェルのツールがアカウントのメールアドレスを外に送る前に確認を求めるようになったことです。
株式会社Fyveは、常時起動の Mac mini で claude -p の定期実行を毎日十数本回しています。自動更新は止めていて、版は手で上げています。この記事は、2つの版の変更履歴(一次情報)を読み、私たちが次に上げる前に何を確かめるかを整理したものです。まだ手元で試していない項目は、試していないと書きます。
Claude Code 2.1.318・2.1.317 はいつ出たか
まず、版と公開日を確認します。GitHub の anthropics/claude-code のリリースと CHANGELOG.md、npm の配布タグを2026年11月4日に確認しました。
版 | 公開日(日本時間) | 主な中身 |
|---|---|---|
2.1.317 | 2026年11月3日 | 項目の大半は不具合の修正。 |
2.1.318 | 2026年11月4日 | ログインの期限の表示と予告、 |
npm の配布タグは、11月4日の時点で latest と next が 2.1.318、stable が 2.1.311(2026年10月27日公開)でした。この記事の変更は、stable にはまだ入っていません。無人の環境を stable に合わせている人は、ここで挙げる修正が届くのはもう少し先です。
手元の版と配布タグは、次の2行で確かめられます。
claude --version
npm view @anthropic-ai/claude-code dist-tags私たちの無人ジョブの Mac mini は、11月4日の時点で 2.1.296 です。自動更新を止めているのは、CLI の更新の副作用で、使うモデルや挙動が予告なく変わるのを避けるためです。
無人で回す人が見る7つの変更
2つの版を合わせると、変更履歴の項目は150を超えます。VS Code、Windows、Claude apps gateway、クラウドのセッション向けの項目も多いので、claude -p を cron や launchd で回す人に関係するものだけを抜き出しました。
# | 版 | 変更 | 無人で回す人が確かめること |
|---|---|---|---|
1 | 2.1.318 | ログインの期限を表示し、10日前から stderr で予告する | stderr を捨てていないか。ログの見張りに予告の文字を足すか |
2 | 2.1.317 | ディスクの満杯で記録を失ったら exit 1 | 終了コードを見て通知しているか |
3 | 2.1.318 | 失敗を成功と報告していた不具合を2つ修正 | カスタムのスラッシュコマンドを |
4 | 2.1.317 | メールアドレスを外に送る前に確認を求める | 無人の実行で止まらないか(変更履歴には書かれていない) |
5 | 2.1.318 |
| 起動の失敗を拾えるか |
6 | 2.1.317 | Read の「前回から変わっていない」の省略をやめた/Grep・Glob の途中結果の扱いを修正 | 同じファイルを何度も読むジョブのトークン量 |
7 | 2.1.317 | 別のモデルのサブエージェントは、そのモデルの effort を使う | サブエージェントの effort を意図どおりに指定しているか |

順に見ていきます。
1. ログインの期限切れを10日前から予告する(2.1.318)
無人で回す人にとって、2つの版でいちばん効く変更です。2.1.318 では、claude.ai のログインに関して次の4つが入りました。
claude auth statusに、保存したログインが切れる日(loginExpiresAt)が出るclaude -pの JSON の結果に、credential_expires_atが入るclaude -pのテキスト出力で、ログインが切れる10日前から stderr に1行の警告が出る- 期限が来て失敗したときに、期限切れだとはっきり言い、
claude -pではclaude auth loginとclaude setup-tokenを案内する
私たちの環境では、これまでログインが切れる日を前もって知る方法を持っておらず、切れてから「Not logged in」や認証の失敗のエラーで気づいていました。
私たちはこれで実際に困りました。2026年8月、入れ子で呼んでいた claude -p(記事の監査を担当する別のプロセス)の認証が切れたのに、ジョブ全体の終了コードは0のままで、8日間・25回分の実行が誰にも気づかれずに失敗し続けました。その後、AI の自己申告ではなくシェルが実行ログを固定の文字列で調べ、「Failed to authenticate」「Not logged in」などが出ていたら Slack に通知する見張りを入れています。経緯と見張りの作り方は、こちらの記事に書きました。
2.1.318 の予告は、この見張りを「切れてから」ではなく「切れる前」に鳴らせる材料になります。確かめることは2つです。
- stderr を捨てていないか。予告は stderr に出ます。cron で
2>/dev/nullにしていると、予告ごと消えます。私たちのジョブは stdout と stderr を同じログファイルにまとめているので、そのまま拾えます - 予告の文字をどう拾うか。変更履歴には「10日前から1行の警告」とだけあり、文言は書かれていません。推測で文字列を決め打ちしないほうが安全です。予告は期限の10日前からしか出ないので、上げた後はまず
claude auth statusで期限の日付を控え、予告が出始めたらログで実際の文言を確かめてから見張りに足します
JSON で結果を受けているジョブなら、credential_expires_at のほうが扱いやすいはずです。日付として読めるので、「残り14日を切ったら通知」のように自分で閾値を決められます。
あわせて 2.1.318 では、同じアカウント・同じ組織で、同じホームディレクトリを使う別の端末やホストがログインし直したときに、実行中のジョブが「Not logged in」で落ちる不具合も直りました。同じ Mac で、手元の作業用のセッションと無人のジョブを同じホームで動かしている人に関係します。
2. ディスクの満杯で記録を失ったら exit 1 で終わる(2.1.317)
2.1.317 では、ディスクの満杯や容量の上限で、会話の記録(transcript)や ~/.claude.json の書き込みに失敗したとき、claude -p が exit 0 で終わっていた不具合が直りました。今後はエラーを出し、テキストと JSON の出力では exit 1 で終わります。
変更履歴には「NFS のエクスポートが満杯の場合は拾えないことがある」という但し書きも付いています。ネットワーク上のホームディレクトリで動かしている人は、終了コードだけに頼れません。
10月30日の 2.1.314 で、起動そのものに失敗したときに exit 0 で何も出さずに終わる不具合が直ったばかりです。2つを合わせると、「動いたように見えて実は失敗していた」の抜け道が、版ごとに1つずつ塞がれている流れが見えます。裏を返せば、2.1.313 以前の版にはどちらの修正も入っておらず、2.1.314〜2.1.316 には今回の修正が入っていません。
私たちの Mac mini は 2.1.296 なので、この2つの修正の外にいます。ディスクの空きは別の仕組みで見ていますが、上げるまでは「終了コードが0でも記録が残っていない場合がある」前提で運用します。
3. 失敗を成功と報告していた不具合の修正(2.1.318)
2.1.318 には、claude -p で失敗が見えなくなる不具合の修正がほかにも2つあります。
- カスタムのスラッシュコマンドが失敗したとき、または Claude からしか呼べないコマンドだったときに、
claude -pと SDK のセッションで何も出さずに終わっていた - mod が
turn.stepをフックしている状態で、API のエラーで返答が途中で切れたのに、claude -pと Agent SDK のセッションが成功と報告していた
1つ目は、claude -p "/自作のコマンド" のようにカスタムコマンドを無人で呼んでいる人に関係します。何も出ずに終わっていたなら、出力が空かどうかの確認を見張りに入れていない限り、気づけなかったはずです。
2つ目は mod(Claude Code の画面や挙動を変える拡張)を使っている人に限られます。無人のジョブで mod を使っていなければ、関係しません。
私たちのジョブは、カスタムコマンドではなく「スキルの説明書を読んで実行して」という文章で頼む形にしているので、1つ目には当たりません。ただ、出力の最後の1行を記録して、空なら「報告なし」と残す作りにしてあります。終了コードとは別に、出力が空でないかを見る仕組みは、どの版でも持っておく価値があります。
4. メールアドレスを外に送る前に確認を求める(2.1.317)
2.1.317 で、Web やシェルのツールがアカウントのメールアドレスをネットワークに送ろうとしたとき、その前に確認を求める仕組みが入りました。AI がフォームに自分のメールアドレスを入れて送ったり、curl の引数に入れたりするのを止める狙いだと読めます。
無人の実行で気になるのは、確認に答える人がいない点です。変更履歴には、claude -p でこの確認が出たときにどう振る舞うか(拒否して先へ進むのか、止まるのか、許可のルールで飛ばせるのか)が書かれていません。私たちもまだ試していないので、断定はしません。
確かめ方として、私たちは次の順で進める予定です。
- 本番とは別のフォルダで、新しい版の
claude -pを1回だけ動かす - アカウントのメールアドレスを含む
curlを、わざと実行させてみる - 終了コード、出力、かかった時間を記録する(止まって待ち続けるなら、時間で分かります)
無人のジョブで、正当な理由でアカウントのメールアドレスを外に送る作りはあまり無いはずです。とはいえ、たとえば通知の宛先として自分のアドレスをスクリプトに渡しているジョブは当たる可能性があります。上げる前に、ジョブの指示文や設定にアドレスが入っていないかを検索しておくと安心です。
5. 壊れた ~/.claude.json を黙って初期値にしない(2.1.318)
~/.claude.json は、MCP サーバーの設定や信頼したフォルダなどを持つ設定ファイルです。2.1.318 では、このファイルの扱いが大きく見直されました。無人の実行に関係するのは次の4つです。
- 中身が正しい JSON でないとき、無人の起動がそれを初期値で上書きしていた。今後は起動を失敗させ、戻し方を表示し、ファイルには触らない
- 中身が空でバックアップも無いときは、壊れていると報告せず、ファイルが無いときと同じように起動する
- 無人の実行(
claude -p・SDK)が、中身に変化が無くても毎回このファイルを書き直していたのをやめた - 古い記録の掃除で、
claude -pしか動かさないホームから最後の正常なバックアップを消していた。今後は消す前に新しいバックアップを取る
1つ目は、ありがたい反面、挙動が変わる点に注意が要ります。これまでは、壊れたファイルを初期値で上書きして「動いてしまう」ので、MCP サーバーが読み込まれないまま実行が進む形の失敗でした。これからは起動の時点で止まります。終了コードで拾える失敗に変わったので、見張りが終了コードを見ていれば気づけます。
3つ目と4つ目は、毎日何本も claude -p を回す環境ほど効きます。毎回の書き直しは、そのたびにファイルを壊す機会でもあったからです。
6. Read の省略をやめた・Grep と Glob の途中結果(2.1.317)
2.1.317 では、Read ツールの「前回読んでから変わっていない」という省略が無くなりました。同じファイルを読み直すと、中身がそのまま返ります。
これは正しさの面では改善です。省略の判断が外れると、AI が古い中身のまま作業を続けるおそれがありました。一方で、同じ大きなファイルを何度も読むジョブでは、読むたびに中身が入る分だけトークンが増えます。
私たちの SEO 記事のジョブは、4,000行を超える在庫の台帳を、選ぶとき・書き込むときと何度も参照します。上げた後の数日は、1回あたりのトークン量に変化が出ないかを見るつもりです。読み直しが多いジョブでは、ファイル全体ではなく必要な範囲だけを読む指示にしておくと、増え方を抑えられます。
同じ版で、Grep と Glob が時間切れで途中までの結果しか返さなかったときに、Claude がそれを全部の結果だと扱っていた不具合も直りました。大きなリポジトリで「該当なし」と判断して先へ進むジョブには、地味に効く修正です。
7. 別のモデルのサブエージェントは、そのモデルの effort を使う(2.1.317)
2.1.317 から、本体の会話と違うモデルで動くサブエージェントやチームメイトは、セッションの effort ではなく、そのモデルに保存した effort(無ければそのモデルの既定値)を使います。
その前の 2.1.316 では、サブエージェントの effort を既定で決める環境変数 CLAUDE_CODE_SUBAGENT_EFFORT も入っています。本体を Opus の高い effort で動かし、サブエージェントを Sonnet で回すような組み方をしている人は、上げた後にサブエージェント側の effort が変わる可能性があります。変えたくないなら、サブエージェントの定義で effort を明示しておくのが確実です。

無人運用でも関係する、そのほかの変更
7つほど大きくはないものの、無人で回す人が知っておくとよい項目を挙げます。
版 | 変更 | 関係する人 |
|---|---|---|
2.1.317 |
| クラウドの予約タスクを使う人 |
2.1.317 | Agent SDK のフックに | SDK で安全確認のフックを書いている人 |
2.1.317 | クラウド・セルフホストのランナーの中で呼んだ | セルフホストのランナーで入れ子の |
2.1.317 |
| 実行の前に認証の状態を確かめている人 |
2.1.318 | モデルを切り替えた直後に送ったメッセージが、Stop の後も動き続けていたのを修正(無人のセッション) | SDK で途中停止を使う人 |
2.1.318 |
| ジョブの中で MCP の設定を変える人 |
2.1.318 | アイドル時の圧縮が、要約ではない返答で会話を置き換えていたのを修正 | 長い無人セッションを動かす人 |
入れ子の claude -p については、修正の対象が「クラウドやセルフホストのランナーのセッションの中」と書かれている点に注意してください。私たちのように、手元の Mac で claude -p の中から別の claude -p を呼ぶ形が対象に入るかは、変更履歴からは読み取れません。私たちの環境では、入れ子の claude -p に親の認証が引き継がれなかったため、子を起動する前に認証の設定を読み直す作りにしています。版を上げた後も、この作りは変えずに様子を見ます。
クラウドの予約タスクについて補足すると、私たちは2026年10月26日に、クラウドの定期実行をすべて削除しました。今は定期実行を Mac mini の launchd だけで回しています。Mac mini で claude -p を定期実行する組み方は、こちらにまとめています。
無人の環境を上げる前の確かめ方
変更点が分かっても、無人の環境をそのまま最新に上げると、何かが変わったときに気づくのが翌朝になります。私たちが版を上げるときの手順を、今回の変更に合わせて書き出します。
- 上げる版を決める。latest か stable か、または特定の版に固定するか。私たちは自動更新を止めて特定の版に固定し、変更履歴を読んでから手で上げています
- 変更履歴から、自分の使い方に当たる項目を抜く。この記事の7項目のように、
claude -p・認証・設定ファイル・サブエージェント・自分が使う道具に絞ります - 本番とは別の場所で1回動かす。今回なら、メールアドレスの確認が無人でどう振る舞うかと、ログインの期限の予告の文言をここで確かめます
- 見張りを先に用意する。JSON で結果を受けているなら
credential_expires_atを読んで残りの日数で通知する処理を、版を上げる前に書いておきます。上げた後に書くと、最初の数回の結果を見逃します - 上げた後の最初の数回を見る。終了コード、出力の最後の行、かかった時間、トークン量を、上げる前と比べます

5の比較は、ふだんから記録を残していないとできません。私たちは、ジョブごとに終了コードと結果の1行を月ごとのログに追記し、最後に動いた時刻と終了コードを小さな JSON に書き出しています。上げた後に「前と比べて何が変わったか」を見るための材料は、版を上げる前から貯めておく必要があります。
launchd でジョブを組む基本は、こちらの記事に書きました。
よくある質問
Q1. 2.1.318 にはすぐ上げたほうがいいですか
対話で使っているだけなら、上げて困る変更は目立ちません。無人で回している場合は、上の手順の3と4を先に済ませることをおすすめします。特にメールアドレスの確認は、無人での振る舞いが変更履歴に書かれていないので、一度試してからのほうが安全です。急がないなら、stable に入るのを待つ選択もあります。
Q2. ログインの期限は、上げる前の版でも確かめられますか
loginExpiresAt と credential_expires_at は 2.1.318 で足されたものなので、それより前の版では出ません。上げる前の版では、これまでどおり、切れたときのエラーの文字をログから拾うしかありません。
Q3. 長期の認証トークンを使っていても、10日前の予告は出ますか
変更履歴の書き方は「保存した claude.ai のログインが切れる10日前から」です。claude setup-token で作ったトークンに同じ予告が出るかは書かれていません。期限切れのときの案内に claude setup-token の名前が出るようになったことから、切れたときの戻し方としては想定されていると読めますが、予告の対象かどうかは手元で確かめてください。
Q4. Read の省略が無くなって、料金は増えますか
同じファイルを読み直す回数が多いジョブほど、入力のトークンは増えます。どれだけ増えるかは、読み直しの回数とファイルの大きさしだいです。上げた後に、ジョブ1回あたりの使用量を前と比べてください。増え方が大きいなら、ファイルの必要な範囲だけを読ませる指示に変えるのが手早い対処です。
Q5. stable と latest、無人の環境はどちらに合わせるべきですか
決まった答えはありません。stable は修正の届くのが遅いぶん、出たばかりの版の不具合を避けられます。今回のように、無人の失敗を見えるようにする修正が latest に先に入ることもあります。私たちはどちらにも自動で追いかけさせず、変更履歴を読んでから特定の版に手で上げる形にしています。
まとめ
Claude Code 2.1.318 と 2.1.317 は、項目の大半が不具合の修正です。そのうち claude -p を無人で回す人に効くのは、ログインの期限切れの予告、ディスクの満杯での exit 1、失敗を成功と報告していた不具合の修正、壊れた ~/.claude.json での起動の停止です。どれも「動いたように見えて実は失敗していた」を見える形にする方向の変更です。
一方で、メールアドレスを外に送る前の確認は、無人の実行での振る舞いが変更履歴に書かれていません。上げる前に本番とは別の場所で一度試し、ログインの期限の予告を拾う見張りを先に足してから上げる。この順番を守れば、版を上げたことで翌朝まで気づけない失敗は減らせます。
株式会社Fyveは、自社の無人ジョブで起きた失敗と、その後に入れた仕組みを、こうした記事で公開しています。この記事の内容は2026年11月4日時点の変更履歴にもとづくもので、私たちが新しい版を試した結果は、確かめ次第この記事に足します。
Claude Codeを「素のまま」使うな

設定で差がつく——CLAUDE.md・権限・スキルの実物を公開(全24ページ)
素のClaude Codeは"優秀な新入社員"。仕事を教えるほど、自分専用になります。覚えさせる4点セット——会社の説明書(CLAUDE.md)・権限の柵・手順書(スキル)・フォルダの地図——を、1人会社の実運用からコピペで使える型つきで公開します。
- そのまま書き換えて使えるCLAUDE.mdの型
- お金と送信をAIに触らせない「3段階の柵」
- 1回教えたら何度でも動く、手順書のコピペ雛形
- AIが迷子にならないフォルダ構造の3原則
メールアドレス登録で他にも様々な資料を閲覧できます








+10PDF 19点・合計499ページ + すぐ使えるzip素材 3点
どれも登録後の受け取りページから、まとめてダウンロードできます。
毎週配信の無料ニュースレター「AIネイティブ超研究」の購読特典です。メール登録後すぐ、受け取りページのご案内が届きます。そこにはこの資料に加えて、過去の特典もすべてまとめて置いてあります。あわせて、AI活用に関するお知らせやお役に立てそうなご案内をお送りすることがあります。解除はいつでも1クリック。
御社の業務に合わせたClaude Code導入支援
「AIツールを導入したが、現場で使われない」を終わらせる。
業務課題のヒアリングから設計、ハンズオン実践、運用定着まで一貫して支援します。