fix(gateway): persist watcher metadata in checkpoint for crash recovery (salvaged #1573)#1706
Merged
fix(gateway): persist watcher metadata in checkpoint for crash recovery (salvaged #1573)#1706
Conversation
Background process watchers lose their platform/chat_id/thread_id context after a gateway restart because the checkpoint file didn't store watcher metadata. This caused notifications to never be delivered for recovered processes (issue #1143). - Add watcher_platform/chat_id/thread_id/interval fields to ProcessSession - Persist watcher metadata in checkpoint write/recovery - Re-enqueue recovered watchers into pending_watchers on startup - Drain pending_watchers at gateway startup after adapters are ready - Store watcher metadata on ProcessSession when watcher is created
6 tasks
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
Salvaged from PR #1573 by @eren-karakus0. Cherry-picked cleanly onto current main with authorship preserved.
Fixes #1143 — Background process notifications were lost after a gateway restart because the checkpoint file didn't persist watcher metadata (platform, chat_id, thread_id, check_interval).
What changed
watcher_platform,watcher_chat_id,watcher_thread_id,watcher_intervalfields toProcessSession_write_checkpoint()and restore inrecover_from_checkpoint()pending_watcherswhenwatcher_interval > 0pending_watchersat gateway startup (after adapters connect)ProcessSessionwhen watcher is created interminal_tool.pyTest plan
test_background_process_notifications.py+test_process_registry.pypassAttribution
Original work by @eren-karakus0 in PR #1573.