レジューム時のバックフィル実装 (タイマードリフト検出)#136
Merged
Merged
Conversation
PCがスリープ状態からレジュームした際に5分以上経過していた場合、 バックフィルを自動発動するようにした。 タイマードリフト検出(30秒間隔のsetIntervalで実経過時間を計測)を用いており、 追加依存ライブラリなしでクロスプラットフォームに動作する。 また、既存の起動時バックフィルロジックを runBackfill() 関数に抽出し、 isBackfilling フラグにより起動時・レジューム時の二重実行を防止した。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
setIntervalで実経過時間を計測)を利用。スリープ中はタイマーが停止するため、予想より大幅に遅れて発火した場合にレジュームと判定するChanges
runBackfill(label)関数に抽出し、起動時・レジューム時で共通利用できるようにしたisBackfillingフラグで二重実行を防止(起動時バックフィルとレジューム検出が競合しない)[Startup]/[Resume]ラベルを付けてどちらの経路か区別できるようにしたDetection mechanism
Test plan
--log-sqliteオプション付きで起動し、PCをスリープ → 5分以上後にレジューム → "System resume detected. Running backfill..." が表示されることを確認isBackfillingフラグ)--log-sqliteなしの場合はレジューム検出ブロック自体がスキップされることを確認🤖 Generated with Claude Code