orchestrator: Wire the Updatable seam and the update frontend connection - #441
Draft
chrysh wants to merge 2 commits into
Draft
orchestrator: Wire the Updatable seam and the update frontend connection#441chrysh wants to merge 2 commits into
chrysh wants to merge 2 commits into
Conversation
chrysh
force-pushed
the
compose-updatable
branch
from
August 26, 2026 11:24
10b87c3 to
6fe01da
Compare
BoardCapabilities gains an Updatable associated type and Board an updatables array, indexed like images. Wiring only: the executors for the update quartet wait on the update-pump design, since a staging transfer spans many event-loop iterations and cannot run inside one effect. Assisted-by: Claude:claude-fable-5 Signed-off-by: Christina Quast <christina.quast@9elements.com>
request_update is the seam between an update frontend (PLDM FD, staged blob) and the orchestrator: driver.submit_update(target) records the job, then Event::UpdateRequest is dispatched. The order is load-bearing: StageUpdate with no stored job fails closed, and a refused submit (unknown id, update already in flight) injects no event; the frontend answers the requester over its own protocol. Assisted-by: Claude:claude-fable-5 Signed-off-by: Christina Quast <christina.quast@9elements.com>
chrysh
force-pushed
the
compose-updatable
branch
from
August 27, 2026 19:30
6fe01da to
ace86fe
Compare
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.
This PR stays in draft until we agreed on how Events are injected into the SM.
The board composes the update capability:
BoardCapabilitiesgains anUpdatableassociated type andBoardanupdatablesarray, indexed likeimages.On top of that, the connection between an update frontend (PLDM FD, staged blob) and the SM:
driver.submit_update(target)records the in-flight job — unknown id and double submit are refused, nothing stored on refusal — andrequest_updatesubmits first, then dispatchesEvent::UpdateRequest. The order is load-bearing:StageUpdatecan never run without a target, and a refused request never reaches the SM; the frontend answers the requester over its own protocol.The update-quartet executors are not in here; they follow with the update pump. Until then the end-to-end test pins today's fail-closed behavior (the
Updatingentry effects latchLocked).Progress toward 9elements#8.