概要
このリリースでは、shell ツールの CommandExecutor クラスにおけるリソースリークの問題が修正されました。PTY ファイルディスクリプタが適切にクローズされるようになり、長時間稼働するアプリケーションでのリソース枯渇を防止します。
リリース: v0.5.2
バグ修正
PTY ファイルディスクリプタのリソースリーク修正 (#369)
shell ツールの CommandExecutor クラスで、PTY(擬似端末)のファイルディスクリプタがプロセス完了後に適切にクローズされない問題が修正されました。
影響を受けていた状況:
- shell ツールを繰り返し使用するエージェントで、ファイルディスクリプタが徐々に蓄積
- 長時間稼働するアプリケーションでリソース枯渇が発生する可能性
修正内容:
execute_with_ptyメソッドのfinallyブロックで、PTY ファイルディスクリプタを確実にクローズするように変更try-exceptブロックでOSErrorを適切にハンドリング
# 修正後の処理フロー
finally:
# PTY ファイルディスクリプタをクローズ
if "fd" in locals() and pid > 0:
try:
os.close(fd)
except OSError:
pass
# 端末設定の復元処理...
まとめ
shell ツールのリソース管理が改善され、長時間稼働するエージェントアプリケーションの安定性が向上しました。