Repository navigation
Reconcile delegated replies missed during a plugin restart - #497
Merged
Merged
Conversation
Read durable turn evidence to return known output once, preserve downstream results and held text, and report unreadable outcomes without replaying work.
This was referenced Oct 23, 2026
klarkxy
marked this pull request as ready for review
October 23, 2026 15:57
Merge dev and restore completion of continued nested handoff work after restart. Include regression coverage.
# Conflicts: # docs/plans/2026-10-16-bot-handoffs.md
# Conflicts: # docs/plans/2026-10-16-bot-handoffs.md
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.
Issue
Fixes #483
What changed / 改了什么
When DS Bot missed a delegated turn's start but observes its end after a plugin restart, reconcile it from DSH's public session inspection API instead of silently dropping the recovery record. Return known output once through the existing handoff path; preserve collected child results and held text; retain partial max-token output and distinguish an empty completed reply from unavailable evidence.
An unreadable result is reported as unknown with its session identified, without re-running the original request. Existing queued work, normal interrupted-turn recovery and Stop behavior remain in place. No task-board object, automatic retry policy or DSH patch is introduced.
Changelog
Recover delegated replies missed during a plugin restart, or explain when their outcome cannot be established.
How I checked it / 怎么验证的
Independent review found missing-output cases in the first candidate; the recovery now uses the same answer composition as live turns, with regression coverage for those cases. A recurring home-lock timing test failed once in the parallel post-merge suite; the subsequent serialized full check passed. DSH contracts were checked against the pinned version's public session inspection and event schemas.
Checklist / 检查
Co-authored-by.