Repository navigation
Conversation
This branch has not been deployed
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.
A controller handoff cannot rely on restart detection: GivEnergy requests can outlive client timeouts, and Hub schedules can be published from reconnect or periodic paths. Add an optional epoch-bound battery write gate at the actual GivEnergy and Hub transport sinks.
Closing the gate permanently rejects new writes and retries for that epoch. Outstanding attempts remain tracked across threads and event loops. Cancellation, timeout and ambiguous vendor responses cannot prove drain. Strict documented GivEnergy success responses can complete individual attempts; later success never clears earlier uncertainty. Hub broker acceptance remains uncertain because it does not revoke previously retained schedules. Independent EV, display and query traffic remains available.
No installation attaches the gate by default. This does not enable the provider selector, automatic backup or a production handoff. Durable backend coordination, target readiness and a physical Hub fence that invalidates old commands/schedules remain required. See docs/control-write-drain-gate.md for the full contract and provider-response inference.
Validation:
Stacked on #5504. No production changes.