Devotd Github
新着AIエージェント

neatlogs/neatroots 4f0b3ad — quiet-run スウィープのインデックスと起動復旧の分離

neatlogs/neatroots は 2026年11月2日のコミットで quiet-run スウィープのクエリにインデックスを付け、起動復旧をバックグラウンド再確認から分離した。

リポジトリ情報neatlogs/neatroots ↗

neatlogs/neatroots は 2026年11月2日のコミットで quiet-run スウィープのクエリにインデックスを付け、起動復旧をバックグラウンド再確認から分離した。

GitHub の説明: neatroots: see, check and replay your AI agent's runs on your machine while you build it. Local-first, by Neatlogs.

スター
★ 73
フォーク
45
言語
TypeScript
ライセンス
Apache-2.0
最新リリース
v0.2.8
原文を見る ↗GitHub で見る ↗

neatroots はローカルで動作する AI エージェントの実行記録ツールである。エージェントが生成した実行を確認し、そのまま再現(replay)できるようにする。最新コミット 4f0b3ad(2026年11月2日、#675)は内部の quiet-run スウィープのクエリ性能と、起動時の復旧順序の両方を扱った。quiet-run スウィープとは、終了シグナルが送られなかった実行を定期的に見つけ、interrupted 状態として記録し、再確認する処理である。

このコミットは 2 つを同時に変更している。まず、60 秒ごとに実行されるスウィープのクエリは runs テーブル全体を読み歩くものだったが、これを (status, doctor, complete, updated_ms) インデックスに置き換えた。コミットメッセージは、10 万個の run が溜まったストアで 7.1 ms から 0.52 ms に縮んだと述べている。次に、スウィープは処理対象の run をまず 1 回の高速な DB パスでクレーム(claim)し、再確認はバックグラウンドに回すようにした。これにより起動時の復旧(resumeUnfinished)は、古い run ごとにモデルの再確認を 1 つずつ待つ必要がなくなった。クレーム上限は SQL LIMIT によりクエリの中で適用され、全行を読み込んでから切り詰める方式はなくなった。

ただし、1 回のスウィープが同期的にクレームする数には上限があるため、長らく止まっていた期間に積み上がった残り分は次のスウィープが代わりに処理する。再確認が失敗した場合は警告のみ残し、同じバッチの残りはそのまま続行するが、復旧まで失敗した run は次のスウィープが破棄されたクレームとして回収するまで interrupted のまま残る。完了したスウィープは runs テーブルに追加された quiet_sweep_done カラムに記録される。性能の数値はコミットメッセージに記載された値であり、ライセンスとスター数は提示されていない。テストファイル quiet-run.test.ts は 467 行増加し、失敗経路も扱っているが、全体回帰が通るかどうかはコミット情報だけでは分からない。