Skip to content

v2.51.0

Latest

Choose a tag to compare

@satoh-y-0323 satoh-y-0323 released this 18 Jul 07:55

⚠️ 破壊的変更(要移行確認)

配布 settings.json の hook / statusLine 起動子が python から c3 run 前提に変わります。

  • 利用先は c3 update を実行すると settings.json が新形式に更新されます(c3 は pip インストール済みなら PATH 解決可能)
  • settings.json を直接カスタムしている場合c3 update --dry-run で差分を確認し、カスタムを settings.local.json へ移してから update してください
  • 旧(python 語彙)のままでも従来どおり動く環境では即時の実害はありませんが、c3 doctor が WARN で移行を案内します

追加

  • c3 run サブコマンド新設(python 呼び出し口): c3 run <script> [args...] / c3 run -c <code> / c3 run -m <module> の 3 形式。c3 をインストールした Python インタープリタと同一プロセス(runpy)で実行するため、素の macOS 12.3+ や python エイリアスの無い Linux で無印 python 起動子が解決できず全 hook が沈黙する問題(v2.50.0 の MCP バグと同型)を構造的に解消。-- を含む全トークン無加工転送・CPython と同じ cwd インポート挙動・実行後の sys.argv/sys.path 復元
  • c3 doctor の hook 起動子検証: 無印 python 形式は WARN(移行案内)・c3 解決不能 / --version プローブ失敗は FAIL(全 hook 沈黙の帰結と、壊れた c3 に依存しない復旧手段を案内)
  • 無印 python 起動子の lint テスト: 配布物への素の python 起動形混入を検出(行頭・パイプ・&&;・バッククォート・$(・単独 & 後方)

変更

  • 配布 settings.json の hook / statusLine 起動子を c3 run 語彙へ全面置換(${CLAUDE_PROJECT_DIR} 展開経路は不変)
  • parallel-agents skill の checkpoint 記録手順を注入耐性の高い方式へ刷新(自由記述の bash 直接埋め込み→固定パス + Write 直書き方式。E レビュー 6 周回で heredoc 終端衝突・クォート脱出クラスまで段階的に排除)
  • .claude/docs/config-policy.md 落とし穴6 の誤記載 2 件を是正
  • 配布 skill/docs 内の実行例を c3 run 語彙へ更新

修正

  • c3 doctor の settings.json 検査の例外処理を分岐: json.JSONDecodeError(設定ミス)= ERR(exit 1)OSError/RecursionError/MemoryError/UnicodeDecodeError(環境要因)= WARN。不正 UTF-8 の settings.json で未捕捉クラッシュしていた問題も解消

検証

  • フルスイート 2004 件全緑・CR∥SR レビュー 6 周回で High/Medium 0 収束
  • macOS 実機(GitHub Actions macos-latest)スモーク 3 ケース全緑: wheel インストール + c3 run -c / 配布 hook の起動 / statusLine 文字列の POSIX sh 実行(stdin JSON・ハングなし)
  • 旧 settings.json からの c3 update 移行経路を実機確認(更新後は配布物とバイト一致)

後方互換

  • c3 run 追加による既存サブコマンドへの影響なし。c3 update の枠組み・レポート/state の場所は不変