Skip to content

v0.12.0 — 並列でも同じファイルを 2 人が触らない

Choose a tag to compare

@tacyan tacyan released this 09 Aug 22:51
· 251 commits to main since this release
5b2c66f
  • 並列で走らせても、同じファイルを 2 人が同時に編集することが起きなくなりました。これまで守れていたのはエージェントの書き込みだけで、このエディタ自身の保存は素通りしていました。64 体を同時に走らせて 1500 回書き込む検証で、マージ衝突は 0 件です (ガード無しでは同じ条件で 167 箇所の衝突が出ます)
  • sed -i やリダイレクトのようなシェル経由の書き込みも止まるようになりました。エージェントは日常的にコマンドで書くので、ここが最大の抜け道でした
  • Claude Code 以外のエージェントでも効くようになりました。ACP で繋がるエージェントはベンダー側の設定が一切不要で、codex / gemini はフックを設置すれば止まります。設置しただけでは効かない場合は「未承認」と正直に表示します
  • フォルダごと動かす / 消す操作も、中身を誰かが編集中なら止まります。消してしまうと戻せないので、上書きより強く守ります
  • ファイルは違うのに噛み合わない変更を見つけられるようになりました。片方が関数の引数を変え、もう片方が古い呼び方のまま書いた場合、マージは成功してもビルドは壊れます。これを画面に出します
  • 2 打鍵で画面上のどの語へでも飛べるようになりました。近い候補ほど短いラベルが付きます
  • fish と PowerShell でもコマンドの終了コードを画面から推測しなくなりました。実際のシェルで検証し、終了コードが次のコマンドへ漏れる問題などを直しています
  • 担当ファイルを指定してタスクを割り当てると、重なる相手には配らなくなりました。誰と何が重なっているかと、分け方を出します

インストール

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/tacyan/zaivern-code/main/install.sh | sh

Windows (PowerShell)

irm https://raw.githubusercontent.com/tacyan/zaivern-code/main/install.ps1 | iex

実測(この版で入った保証)

検証 結果
64 体 × 1500 書込(3 種) マージ衝突 0 / 重複書込 0 / fail-open 0
128 体 × 1500 書込 衝突 0 / fail-open 0
ガード無し(同条件) 167〜184 ハンクの衝突
ゲートの費用 zai hook 台帳あり 25.5ms vs git --version 27.9ms = 計測ノイズ以下

再現: tools/conflict-bench.sh --agents 64 --files 1000

正直に言えないこと

  • cursor / goose は未対応(発火を実証できないものは「ブロックできる」と表示しません)
  • 実機 Windows での実行検証はゼロ(wine と CI が代替)
  • 意味的衝突は検出であって防止ではありません。マクロ経由・動的ディスパッチは検出できません
  • 別クローン 2 つは別台帳(worktree でないと共有されません)