Repository navigation
v0.44.0
[0.44.0] - 2026-10-03
Highlight: エージェントに読ませて導入まで案内させるセットアップガイド(
setup.md)を加え、LP と README を「エージェントに聞きながら始める」形に作り直した。そのガイドを Ubuntu の素の環境で Claude Code・Codex・Command Code の 3 エージェントに実際に読ませ、全 5 段を通した(#3059)。その過程で見つかった、ログインなしの旧サーバが公開トンネルに載る問題(#3087)やトンネル越しのログイン先が localhost になる問題(#3090)などを直した。あわせて、チャットの吹き出しで worktree 内の画像・動画を表示できるようにし(#3120 / #3121)、Command Code の計画レビュー画面を CLI とチャット面から操作できるようにした(#3125 / #3139)。
Added
-
feat(chat): Command Code の計画レビュー(REVIEW)でコメント・レビュー送信・承認・取り消しをチャット面から送れるようにする (#3139): REVIEW のときダイアログカードに
PlanReviewControls(コメント欄+「コメントを追加」「レビューを送信 (Ctrl+R)」「承認 (Ctrl+A)」「取り消し (Esc)」)を出し、POST /api/worktrees/[id]/prompt-responseのplanReviewAction(#3125)で送る。承認は計画を実行するので確認を挟み、#2762 の確認なしのctrl+aボタン(PlanApproveKeys)は置き換えた。API のplan_review_*拒否は訳文と API の文言を画面に出す。 -
feat(cli):
commandmate remote pairで、トンネルを張り直さずにペアリングのリンクと QR を出し直せるようにした (#3127): 未使用のペアリングコードがあるときだけ新しいコードを発行し、同じ公開 URL のリンクを QR と文字の両方で表示する(以前のリンクは無効になる。セッショントークンは表示しない)。使用済み・期限切れ・読めないときは何も出さずremote stop→remoteを案内する。remote statusにも次の手順を 1 行添える。 -
feat(chat): チャットの吹き出しで worktree 内の動画を埋め込む (#3121):
や[…](<パス>)が worktree 内の.mp4を指すとき<video controls preload="none">で表示し、ラベルは動画の下にファイルリンクとして残す。files API に?raw=1(動画と SVG を除く画像のみ。パス検査・大きさの上限・magic bytes の確認は既存と同じ、Range対応・ストリーム返却・nosniff/Content-Disposition: inline/Cache-Control: private)を追加し、base64 の JSON を経由しない。 -
feat(chat): チャットの吹き出しで worktree 内の画像を表示する (#3120): assistant の Markdown の
を、相対パス・worktree 内の絶対パス・file://なら files API 経由で縮小表示(幅 100%・高さ 320px まで、押すとファイルパネルで開く、画面に入ってから読み込む)し、worktree の外・http(s)://・未知のスキームは読み込まずに代替テキストとリンクにした。user の吹き出しは.commandmate/attachments/の添付だけを画像にする。画像の読み込みはMarkdownPreviewから切り出した共通のWorktreeImageで行い、CSP と files API の検査は変えていない。 -
docs(setup): エージェントに読ませるセットアップガイド
setup.mdを追加 (#3059):https://kewton.github.io/CommandMate/setup.mdとして配信し、commandmate docs --section setupでも同じ内容を出す。インストールと起動・スマホのペアリング・2 体目のエージェント・PM 役の Skill・検証ゲートの 5 段で、各段に確認・実行・人に確認すること・成功の確かめ方・失敗時の対処を置き、依存の導入・外部への公開・Auto Yes・マージは人の同意なしに行わないと明記した。website/llms.txtから指し、2 つの同一性は単体テストで固定した。 -
feat(website): Level 1 の図 B をスマホ幅の実 UI 録画に差し替え、Level 3 に PM → 開発リーダー → ワーカーの 3 層 run の実記録を追加 (#3058): 隔離環境で撮った 10 秒の
phone-team.mp4(540×540、206 KB、ポスター付き、既存デモと同じ遅延再生)を図 B の絵コンテ SVG の位置に置き、Level 3 に 2026-10-02 の記録(4 Issue、PM と開発リーダーは Claude Code、ワーカーは Command Code × 4、スマホ幅の Web UI からメッセージ 2 通+タップ 3 回、依頼から報告まで 9 分 48 秒、検証 4/4、PR は CI 緑でマージ、UAT 4/4 GO、公開リポジトリ commandmate-team-demo)を足した。出典は public-messaging.md §1 に追記した。 -
feat(agent-health): 日次メトリクスに性能(本番ログの遅延・ログ量・ERROR・サーバーの RSS/CPU)を足す (#3054):
scripts/agent-health/metrics.tsに分類performanceとapi-latency(直近 24 時間の[WARN]のtotalMsを<tag> <event>ごとに件数・p50・p95・最大・内訳の最大で集計)・log-volume(24 時間の行数)・error-rate([ERROR]行数)・server-process(server.pidの子の RSS/CPU を 5 秒おきに 6 回とGET /api/worktrees3 回の中央値)を足した。本番ログは main worktree のlogs/server.logとserver.log.<N>を各行の時刻で絞って読み、本番サーバーは止めない。前から閾値を超えているものもoutstandingに入れ、起票の順は security の新規 → 保守性の悪化 → performance の新規 → security の続き → performance の続き。Issue に載るのは<tag> <event>の名前と数値だけで、ログ行の JSON の値は写さない。 -
feat(agent-health): 選択画面(claude の
/model・/effort、codex の/model)の判定を毎日確かめるscreen-pickerチェックを追加 (#3053):screen-idleの直後に選択画面を開き、waiting・hasActivePrompt=false・reason がSELECTION_LIST_REASONSのいずれか・detectPromptのisPromptが画面ごとの期待(claude はfalse、#1495/codex の/modelはtrue、#2868)どおりであることを確かめて Esc だけで閉じる(モデル呼び出しなし。開いたことは判定の正規表現とは別の一覧・スライダー側の文字列で確かめ、1 つでも外れたら fail)。選択画面の定義はscripts/agent-health/tool-table.tsに置き、定義の無いツールは skip。前後で claude の~/.claude/settings.jsonのmodel/effortLevel、codex のconfig.tomlのmodel/model_reasoning_effortを比べ、変わっていたら書き戻さずに exit 2。 -
feat(agent-health): リリースの GO/要判断/NO-GO を判断する HTML レポートを出力 (#3046):
npx tsx scripts/agent-health/release-report.ts --date <YYYY-MM-DD>が依頼の記録(dispatch/<date>.json)・計測・orchestrate の run ファイル・develop の CI と PR を集め、ルールで決めた判定と理由・依頼した Issue の表・前回リリースからの断片・メトリクスの前日比/前回リリース比をworkspace/agent-health/<date>/release-readiness.htmlに書く。入力が無い日も「依頼なし」として出力する。 -
feat(agent-health): 日次チェック後に develop の Claude 3 へ /orchestrate を自動依頼 (#3045):
scripts/agent-health/dispatch.tsが作成者kewton・ラベルagent-health/metrics・未auto-dispatchedの open Issue をバグ全件・改善 2 件・合計 5 件まで選び、Claude 3 が入力待ちのときだけ/clearと依頼を送ってラベル・コメント・依頼の記録(runSuffixつき)を残す。依頼文docs/agent-health/dispatch-prompt.md(Scheduleagent-health-dispatch、08:30)、リリース判断レポートはrunSuffixでその run のファイルだけを読む。 -
feat(agent-health): セキュリティ・保守性メトリクスを日次計測し、新規・悪化だけを改善 Issue の候補にする (#3044):
scripts/agent-health/metrics.sh(daily.sh --sync-onlyで同期→metrics.ts)が npm audit・semgrep・gitleaks・行数・複雑度・重複・knip・npm outdated・型安全・カバレッジ(月曜のみ)を 10 分以内に計測して~/.commandmate/agent-health/metrics/<JST 日付>.jsonに書き、前回値(metrics-state.json)と比べて新たに閾値を超えた・悪化したものだけをcandidatesにする。Scheduleagent-health-metrics(06:30)の依頼文docs/agent-health/metrics-prompt.mdが 1 日 2 件まで起票する。
Changed
-
docs(setup): セットアップガイドの段 2 に
remote pairを追記 (#3141): QR が切れた・失くした(未使用)場合はcommandmate remote pair、使用済み・期限切れは従来どおりremote stop→remote。文字のリンクはremote pair(または--jsonのpairingUrl)で得られると書いた。 -
refactor(tmux): Command Code の REVIEW 送信 C-r を特殊キーの許可リスト経由にそろえた (#3138):
ALLOWED_SPECIAL_KEYSにC-rを足し、sendKeysの固定文字列送信をやめてsendSpecialKeysに統一した。 -
docs(setup): セットアップガイドに実機確認で迷った 4 点を追記 (#3129): Codex の初回確認画面(hooks は CommandMate 自身が書いたもの)、コミット前の git 作者確認、ペアリングのリンクをアドレス欄に貼る手順、Command Code の plan mode を避ける暫定の書き方を
website/setup.mdと埋め込み定数に足した。 -
ci(release): publish workflow がテスト全体を再実行せず、タグのコミットで CI が通っていることの確認に置き換えた (#3111):
.github/workflows/publish.ymlのRun tests(npm run test:unit、0.43.0 で 23 分)をRequire CI to have passed on the tag commitに置き換えた。新しいscripts/check-release-ci.mjsが、タグのコミットに付いた github-actions の check run のうち main の必須チェック(Unit Tests・Build)の最新が success になるまで 30 秒ごとに見て最大 20 分待ち、失敗・見つからない/終わらない・ghの失敗のときは exit 1 でビルドとnpm publishの前に止める(v0.41.1〜v0.43.0 の実測では、タグのコミットの CI のUnit Testsは Release 公開の 2.2〜8.4 分後に完了していた)。permissionsにchecks: readを足し、ジョブのtimeout-minutesを 60 から 40 に下げた。ビルド・パッケージの大きさの確認・npm publish --provenanceは従来どおり。release-guide(日英)と/releaseに、この手順で止まった run は npm に何も出しておらず CI を直して再実行できることを書いた。 -
feat(schedule): Schedule の 1 回の実行の時間制限を 15 分から 30 分に延ばした (#3107): CMATE.md の Schedule が使う既定の
EXECUTION_TIMEOUT_MS(src/lib/session/claude-executor.ts)を 30 分にした。この既定値を使うのは Schedule だけで、日次レポートの生成は自分の時間制限のまま。反映には本番サーバーの再ビルドが要る。 -
docs(agent-health): 日次メトリクスの新規起票の上限を 1 日 2 件から 4 件に広げた (#3105): 依頼文
docs/agent-health/metrics-prompt.mdの上限(1 回の実行で立てる Issue の数・見送りの数え方)とdocs/user-guide/agent-health.mdの説明を 4 件に書き換えた。自動依頼(dispatch.ts)の上限(改善 2 件・合計 5 件)は変えていない。 -
feat(agent-health): 性能の Issue に perf ラベルを付け、自動依頼の対象から外す (#3104):
issueKindがperf付きの Issue を対象外にし(選定・deferred・上限に入らない)、metrics-prompt.mdは category が performance のとき--label perfを付ける。性能は起票まで自動・修正は人が着手する。 -
refactor(cli): DaemonManager.start() の分岐を、起動済み検査・env 組み立て・endpoint 決定・ポート検査・state 記録の private メソッドへ切り出した (#3100): ESLint complexity を 25 から 20 未満へ下げた。出力文言・順序・例外・副作用の順序は変えない。
-
refactor(cli):
respondの action を引数検証・本文組み立て・失敗報告・resolved 監査の関数に分け、complexity を 50 から 25 未満にした (#3099): 出力・順序・exit code・process.exit後の続行条件は変えず、同一ファイル内の非 export 関数へ移した。 -
docs(setup): セットアップガイドでスマホ接続を CLI 中心の段の後に回すよう指示する (#3091):
commandmate remoteの既定(--auth all)の後はこの機械の CLI もトークン必須になり段 3〜5 が進められなかったため、エージェントへの指示に「段 2 は最後(段 5 の後)に行う」を足し、段 2 の中でも「最後に回す(推奨)/--auth remote-onlyで今つなぐ(この機械の全プロセスが認証なしで操作できる)」を人に選ばせるようにした。あわせて Codex はシェルのネットワークが既定で無効なので/permissionsを Ask for approval にしてもらう注意と、段 3〜5 の前提としてリポジトリ登録は Web UI の Repositories → Add Repository で人が行うことを明記した。website/setup.mdとcommandmate docs --section setupは同じ内容。 -
docs(readme): README(en / ja)を導入希望者向けに縮め、npm の description / keywords を新しい一言に揃えた (#3061): README を「一言と数字・困りごと・3 レベル・エージェントにセットアップさせる 1 文と手動手順・やらないこと・ドキュメント表」の骨格にし(en 8.1 KB / ja 10.1 KB)、外した節は新設の
how-it-works.md/troubleshooting.mdと既存の CLI セットアップガイド・Webアプリ操作ガイド(en / ja)へ移した。Quick Start の説明、docs/とdocs/en/のリンク混在、英語 README から日本語のみの設計書へのリンク、「no credentials leaked」の言い過ぎも直した。 -
docs(website): LP を 3 レベルの世界観とエージェントに聞きながらのセットアップへ作り直した (#3060): X から来たまだ導入を決めていない人向けに、Hero(README と同じ一言・出典つきの数字 4 つ・setup.md を指す貼り付け用の 1 文と Copy ボタン・図 A)→ Problem → Level 1〜3(柱・図 B〜F・既存デモ動画・Ask your agent)→ Set up with your agent(setup.md の 5 段と各段でエージェントが確認すること・図 G)→ My setup → Trust(ローカルで動く・人が決める・限界・MIT)→ Start の順に組み替えた。図はすべてテーマ追従の inline SVG。
llms.txtと og:title / og:description も新しい一言に揃え、docs/design/public-messaging.md§1 に 4 つの数字の出典を加えた。 -
docs(public-messaging): 公開面の文言を public-messaging.md から逐語コピーさせ、テストで一致を固定する運用を撤廃 (#3057):
docs/design/public-messaging.mdを「事実と、言わないことの一覧」(数字と出典・対応エージェントの数え方・exit code・実装との突合・実測の範囲・通信の範囲・やらないこと・競合製品名の禁止語・語の出典)に縮め、冒頭の「コピーして使う」規則を外して参考資料と明記した。README / LP / concept / デモのテロップを同文書の文言と突き合わせるテスト(hero・定義文・Philosophy 見出し・##数・4 カード・§1b・§4b・キャプション・FAQ 本文・Measured 表のセル・§3e 各部・llms.txt の hero とカード)を外し、アセット解決・メディア容量・遅延再生・a11y・エージェント数 8・exit code・禁止語(競合名と未計測の主張)・通信範囲の検査は残した。concept(ja / en)・demo-video Skill・絵コンテの参照も合わせて直した。
Fixed
-
fix(api): files API の ?raw=1 応答の Cache-Control を実際に返る no-store に揃えた (#3143): next.config.js の /api/:path* が no-store で上書きするため、route の private と単体テストの期待を no-store に合わせた。挙動は変わらず、コメントに理由を追記した。
-
fix(agent-health): マージ済み PR の自動キャンセル(cancelled)チェックを release-report の NO-GO に数えない (#3142): マージ時に cancel-pr-runs-on-close が止めた PR のチェックを判定から外し、表には cancel 件数を出す。失敗が 1 つでもあれば従来どおり赤で、develop の push run と未マージ PR の cancel の扱いは変えない。
-
fix(api): 上限を超える画像が 413 FILE_TOO_LARGE ではなく 400 で返る問題を修正 (#3140): files API が文言の部分一致(
5MB)で大きさ超過を判定していたため、20MB 上限の画像が 400 になっていた。検証関数がreason: 'too-large'を返し、base64 経路と?raw=1の両方で 413 を返す。上限・パス検査・magic bytes は不変。 -
fix(cli): 転写が空の
captureが空を返さず--paneを案内するようにした (#3128):--paneなしのcaptureは転写(content)が空だと何も表示せず、フォルダ信頼などの確認ダイアログが見えなかったため、空のときだけ--pane --tail 40への案内を表示する。転写があるときと--jsonの出力は変わらない。 -
fix(verify): Command Code が自分で書く状態ファイルを scope / work-evidence の変更として数えない (#3126):
.commandcode/settings.local.jsonと.commandcode/taste/**(未追跡のみ)を宣言済み path として除外し、除外した path は判定結果に表示する。.commandcode/配下の他のファイルは従来どおり数える。 -
fix(command-code): 計画レビュー(REVIEW)画面にコメント・Submit review・承認・取り消しを CLI から送れるようにした (#3125):
respond <id> "<text>"は REVIEW 画面ではコメントとして打って Enter で確定し、--plan-review submit|approve|cancelでそれぞれ ctrl+r / ctrl+a / esc を送る。フォーカスがアクション一覧やコメント欄にあるとき、番号や yes だけの答えは何も送らずに拒否する。承認は明示した操作だけで、Auto-Yes は REVIEW を承認しない。sendは composer を 30 秒待たずに、すぐrespondを案内して止まる。 -
fix(orchestrate): 検証不合格(exit 20)の切り分けで 1 回目の run を
verify showで読み、再実行は--taskを付けるようにした (#3123):--task無しのverifyは終了済みの task に紐づかず scope が SKIP・env-clean が「ベースライン無し」になり契約のゲートも走らないため、/orchestrate 3-4 の手順をverify history/verify showとverify --task "$TASK_ID"に直した。 -
fix(agent-health): マージ済みの Issue は verify の exit code を要判断の根拠にしない (#3119): release-readiness が、PR がマージ済みでも最新の wait ログの
exit=20を「未完了」として hold に数えていた。マージ済みなら hold に入れず、Issue の表には verify の exit を参考として残す。未マージの Issue は従来どおり hold に入る。 -
fix(verify): 再指示の後の裁定を
wait→verify --taskにし、task に紐づかない検証の案内文が--taskを指すようにした (#3118):wait --verifyは進行中の task にしか紐づかず、終了済みの task を再指示した後は scope が SKIP・env-clean が「ベースライン無し」で exit 20 になっていたため、/orchestrate の手順と scope / env-clean の失敗文言にcommandmate verify <worktree> --task <id>を案内する。 -
fix(update): GitHub に出たが npm にまだ無い版で更新ボタンを押せないようにし、押しても 5 分待たせないようにした (#3110): GitHub の Release は npm への公開より 34〜43 分早く出るため、その間の更新ボタンは何も入れずに 5 分待って「時間切れ」になっていた。
GET /api/app/update-checkは global インストールで GitHub が新しい版を示したときnpm view commandmate version(非同期・時間制限つき)も確かめ、npm がまだ古ければhasUpdate: false・pendingVersionを返す(npm の再確認は 5 分ごと、GitHub は 1 時間のまま。npm に届かなければ従来どおり GitHub だけで判定)。POST /api/app/updateは起動前に npm の最新版を確かめ、今の版以下なら起動せず 409not_yet_publishedを返す。画面は PC の更新ボタンを押せない「v{版} 公開準備中」にし、not_yet_publishedではすぐにトーストで知らせてidleに戻る。npx・ローカルの扱いと #1198 の安全上の決まり(固定の引数・global の判定・ロック)は変えていない。 -
fix(agent-health): 自動依頼の
/orchestrateを 1 行で送り、条件はファイルに書いて渡すようにした (#3103): 改行を含む複数行の送信は Claude Code に貼り付けとして扱われ、スラッシュコマンドとして実行されていなかった。buildRequestは/orchestrate <番号…> <条件ファイルのパス> の条件に従うことの 1 行を返し、条件はbuildTermsが作って送る前にworkspace/agent-health/<日付>/dispatch-terms-<runSuffix>.mdへ書く。書けなければ送らずにskipped-busyとreasonを記録し、--dry-runでは書かない。 -
fix(history): Claude の貼り付けの印(
<pasted_content>)付きの user 行が、送信の行と重複して保存されるのを直した (#3102): transcript の取り込みで印を外してから比較するようにし、既存の/sendの行・relay の行を引き取れるようにした。既存の重複はscripts/history/dedupe-pasted-user-rows.ts(既定は--dry-run)で片付ける。 -
fix(cli):
send/sync/respondが初めての利用者を誤った方向に案内する 3 件を修正 (#3093): 起動タイムアウト時にペインの最下行がシェルのプロンプトなら「動いている(遅い起動)」ではなく「エージェントが終了した」と返す(SESSION_START_FAILED)。リポジトリ未登録のsyncは読まれないCM_ROOT_DIRではなく Web UI の Repositories → Add Repository かWORKTREE_REPOSを案内する。「No, tell … what to do differently」をrespondで選ぶと、文章はsendで送るよう案内し(textFollowUp)、ダイアログが無い所へ文章をrespondしたときも届かない理由とsendを示す。 -
fix(verify): Skill を入れただけの worktree で work-evidence が通り、scope が落ちる問題を修正 (#3092):
work-evidenceとscopeの判定から、CommandMate が記録した install receipt(.agents/skills/<id>/.commandmate-receipt.json)が保証する未追跡ファイル(receipt に載り、sha256 が一致するもの。receipt 自身を含む)を除外した。利用者が置いたファイル、中身を変えた Skill ファイル、コミット済みの Skill ファイル、.commandcode/は従来どおり数える。 -
fix(auth): トンネル越しの未ログイン要求が
https://localhost:3000/loginへ飛ばされる問題を修正 (#3090): ミドルウェアは未認証の画面要求に絶対 URL の 307 ではなく、相対/loginを指すRefreshヘッダと meta refresh つきの 401 を返すようにした(ブラウザが表示中のオリジンで解決するため、トンネルの公開 URL の/loginに向く。Host/X-Forwarded-Hostは使わないので別オリジンへは飛ばない)。/api/*とAccept: application/jsonの未認証要求はリダイレクトせず 401 JSON を返す。認証の対象パスは変えていない。 -
fix(claude): 信頼ダイアログでカーソルが Yes に来たことを画面で確かめてから Enter を送る (#3089):
Down Enterをまとめて送ると、まだキーを受け付けない TUI にDownが飲まれEnterがNo, exitを確定していた。移動キーを 1 つ送るごとに画面を読み直し、カーソルがYes, I trust this folderの行にあるときだけ Enter を送る(移動は上限 20 回、超えたら Enter を送らず起動失敗)。ダイアログから Claude Code が終了してシェルに戻った場合は、60 秒待たずに起動失敗として返す。 -
fix(cli):
stopがサーバ本体を残し、remoteがログインなしの旧サーバを公開トンネルに載せる問題を修正 (#3087):stopは npm の PID だけでなくプロセスグループ全体に SIGTERM を送り(猶予後は SIGKILL)、記録したポートが解放されたことを確かめてから成功を返す。npm が先に終わって孤児になったサーバも止め、init の無いコンテナで残るゾンビ(Linux の /proc で判定)は終了済みとみなす。孤児が生きている間は PID ファイルを消さず、PID ファイルが無くても設定ポートで何かが応答していればstopは「停止済み」と言わず、待ち受け PID を示して非 0 で終わる(自分のものと確かめられないプロセスは殺さない)。start --daemonは別プロセスが応答しているポートでは起動しない。remoteはトンネルを開く直前に、公開するポートが未知のトークンを 401 で拒み、今回発行したセッショントークンを受け入れること(=今回起動した認証つきサーバであること)を確かめ、確かめられなければ何も公開せずロールバックして非 0 で終わる。 -
fix(demo-video): カセットの承認フレームのフッターを実機の文言に直した (#3081):
claude-session-sample.castとclaude-hero.castの承認フレームが入力欄のヒント行だったため、claude のダイアログ規則が拒否して Submit がprompt_no_longer_activeになっていた。Esc to cancel · Tab to amend · ctrl+e to explainに置き換え、evaluateDialogPresenceで present になることを単体テストで検査する。 -
fix(demo-video): 既定カセットの
@input画面が入力欄に文字を残しsendが 500 になる問題を修正 (#3080):claude-session-sample.castの最初の@inputを、質問が上に流れ入力欄が空の画面(Cascading…)に差し替え、全カセットの@input画面で入力欄が空であることを検査する単体テストを追加した。 -
fix(demo-video): 偽エージェントのペインをサーバが採用せず
isSessionRunningが false のままになる問題を修正 (#3079):env-up.shが demo DB のtmux_session_namespaceを読んでstate.envにCM_DEMO_SESSION_NAMESPACEとして記録し、fake-agent.sh --tool/--worktreeはmcbd-<ns>-<tool>-<worktreeId>で起動する(--namespaceで上書き可。名前空間が無ければ従来名)。env-down.shは自サーバの名前空間つきの名前も kill し、他サーバの名前空間は拾わない。--session指定の経路は不変。 -
fix(claude): 許可リストのあるリポジトリで Claude Code の信頼ダイアログに
No, exitを確定してしまい初回 send が届かない問題を修正 (#3078): セッション起動待ちで信頼ダイアログをプロンプト判定より先に見るようにし、カーソル位置を画面から読んでYes, I trust this folderへ ↑/↓ で移してから Enter を送る(既定 Yes の従来版は従来どおり Enter のみ)。答えた後も 3 秒ダイアログが残れば最大 3 回まで答え直す。 -
fix(deps): 間接依存の js-yaml を更新して脆弱性 3 件(high)を解消 (#3068):
npm audit --omit=devで high の advisory が報告されていた間接依存のjs-yamlを親の semver 範囲内で更新し、gray-matter配下を 3.14.2 から 3.15.2 に、@marp-team/marpit配下を 4.1.1 から 4.3.2 に更新した。 -
fix(deps): @xmldom/xmldom を 0.9.12 に更新して脆弱性 15 件を解消 (#3067): speech-rule-engine が 0.9.8 を完全固定していたため、package.json の overrides で 0.9.12 に引き上げて high の advisory を解消した。
-
fix(auto-yes): codex の
/model選択画面(1 段目・2 段目)に Auto-Yes が番号を答えないようにした (#3062): 選択画面の案内文(enter select · esc back/enter default · s session · esc back)に当たる画面では、ポーラーが答えを送らずunclassified-frameで抑止を記録する(モデルと reasoning effort が自動で決まるのを防ぐ)。hooks の一覧、承認・信頼ダイアログの動作と、利用者が UI で答える/prompt-responseは従来どおり。 -
fix(cli): 公開 npm パッケージで
commandmate docs --sectionがファイル参照型の節で ENOENT になる問題を修正 (#3056):SECTION_MAPの参照先を英語版(docs/en/)へ切り替え、参照する 8 ファイルだけをpackage.jsonのfilesに追加した。SECTION_MAPとfilesのずれを検出する単体テストを追加。 -
fix(detection): Claude 2.1.257 以降の /effort 選択画面を選択画面として判定 (#3052):
/effortの案内文←/→ to adjust · Enter to confirm · s for this session only · Esc to cancelがCLAUDE_SELECTION_LIST_FOOTERに合わずrunningと判定され、操作ボタンが出なかった。Enter to confirm · s for this session onlyの枝を足し、waiting/claude_selection_list(Auto-Yes は反応しない)と判定する。 -
fix(verify): env-clean の削除側が、同じサーバーの別リポジトリのセッション終了と、死んだ pid の demo-vitest の掃除を違反に数えないようにした (#3043): task 作成時のベースラインに、同じサーバーの別リポジトリの worktree のセッション(
otherRepositorySessions。このサーバーの DB の worktree 表で引き、別リポジトリに一意に解決したもの)と、採取時点で pid が既に死んでいた.commandmate-demo-vitest-<pid>(deadDemoVitestEntries)を記録し、それらの削除をremovedByOtherRepository/removedStaleDemoVitestとして違反から外して一覧に残す(2026-09-30 の run では 4 本すべてがこの 2 つだけで exit 20 になっていた)。同じリポジトリの兄弟 worktree のセッションの削除(#1624)、持ち主が不明・曖昧なもの、kill-server の形、基準時点で生きていた pid のディレクトリの削除は従来どおり違反。