
Part of #41 — #324(config ホットリロード PR1)のレビューフォローアップ(Codex 指摘)。
現状の課題
デーモン起動時に config ファイルがまだ存在しない場合、ConfigInteractorImpl.start() は existingConfigPath が nil のためウォッチャーを設置せずに return します。そのため起動後に lyra config init や手動で ~/.config/lyra/config.toml を作成しても、デーモンを再起動するまで宣伝しているライブリロードが効きません。
あるべき挙動
config の親ディレクトリはファイルの有無に関わらず常に監視を張り、create / rename イベントで初回作成もホットリロード(初回ロード)として拾います。FileWatchGateway は既に親ディレクトリを監視する設計(atomic-save の rename 耐性のため)なので、start() の early-return をやめてファイル未存在でも監視を armed にすれば足ります。
備考
#324(PR1)レビューで指摘。PR1 のスコープからは意図
的に外し、フォローアップとして切り出し
ました。
Part of #41 — #324(config ホットリロード PR1)のレビューフォローアップ(Codex 指摘)。
現状の課題
デーモン起動時に config ファイルがまだ存在しない場合、
ConfigInteractorImpl.start()はexistingConfigPathが nil のためウォッチャーを設置せずに return します。そのため起動後にlyra config initや手動で~/.config/lyra/config.tomlを作成しても、デーモンを再起動するまで宣伝しているライブリロードが効きません。あるべき挙動
config の親ディレクトリはファイルの有無に関わらず常に監視を張り、create / rename イベントで初回作成もホットリロード(初回ロード)として拾います。
FileWatchGatewayは既に親ディレクトリを監視する設計(atomic-save の rename 耐性のため)なので、start()の early-return をやめてファイル未存在でも監視を armed にすれば足ります。備考
#324(PR1)レビューで指摘。PR1 のスコープからは意図
的に外し、フォローアップとして切り出し
ました。