Devotd Github
新着AIエージェント

evannzhongg/nosis — 共有ファイルロックヘルパーでロックロジックを統合

Nosis がメモリ・セッションロックを共有ファイルロックヘルパーに統合し、スケジューラのリーダーシップロックの競合とそれ以外のエラーを分けて処理したコミットをまとめます。

リポジトリ情報evannzhongg/nosis ↗

Nosis がメモリ・セッションロックを共有ファイルロックヘルパーに統合し、スケジューラのリーダーシップロックの競合とそれ以外のエラーを分けて処理したコミットをまとめます。

GitHub の説明: Nosis is a lightweight personal agent runtime: per-session execution boundaries with OS-level sandboxing, computer use, a full built-in toolset, Skill / Plugin / MCP extensions, one runtime shared by GUI and TUI, and file-persisted sessions, plans, and memory.

スター
★ 61
フォーク
5
言語
Python
ライセンス
MIT
原文を見る ↗GitHub で見る ↗

evannzhongg/nosis は、セッションごとの実行境界、OS レベルのサンドボックス、コンピューター使用機能、組み込みツール群、Skill・Plugin・MCP 拡張をひとまとめにした軽量な個人向けエージェントランタイムです。2026 年 11 月 2 日の GitHub コミット 03cc986 は、メモリ書き込みとセッションストアがそれぞれ抱えていたロックコードを共有ファイルロックヘルパーに統合しました。変更 230 行のうち、146 行の追加、84 行の削除でした。

acquire_file_lock に blocking オプションが付き、メモリロックとセッションロックがヘルパーを待つ経路に統一され、二つのモジュールに重複していた _lock_file と _unlock_file の実装はなくなりました。ロックファイルのサイズ確認も、ハンドルの append モード位置ではなく os.fstat の結果を使うように変更されました。Windows のバイト範囲ロックはロックされたバイトの読み取りも妨げるため、サイズを読まずに fstat で確認するという理由です。スケジューラはリーダーシップロックの競合とその他のファイルシステムエラーを分けて処理します。競合は BlockingIOError として受け取り、次の周期にもポーリングを続け、それ以外のエラーは例外としてログに残したうえで、スケジューラループを終了しリーダーシップロックを解放します。テストも 4 つ同時に変更されました。

ただし、このコミットは機能追加というよりも内部構造の整理に近いものです。README にはスケジューラのエラー処理方針が反映されていますが、性能の数値や並行性の検証結果が一緒に提示されたわけではありません。ブロッキングモードが他の所有者を待つという説明はあるものの、待機の上限やタイムアウトへの言及はありません。リリース版のタグも付けられていないため、このコミット情報だけではどのリリースに入ったか分かりにくいです。複数のプロセスが同じセッションディレクトリを共有する環境で競合が増えればブロッキング待機も増えることを考えると、ファイルロックの経路を書き直す側は退行がないかを直接確認する必要があります。