Dispatch a phase to a registered executor host, with the per-item bare repo staged in and out and delivery made idempotent - #482
Merged
Conversation
Adds ExecutorPhaseProxy (IExecutorPhaseRunner) which selects a registered executor, stages the per-item bare repo there and back, and returns the phase result. Delivery keys idempotency on work item + phase + attempt (Hit replays, Conflict refuses); stage-back archives are validated against the StageOutMax* bounds before touching the bare repo; transport failures propagate distinctly from agent failures; empty registry falls back to in-process execution. CodeyBox-Prompt-Revision: 1 Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
…tests Pass StageOutMaxArchiveBytes into IExecutorPhaseTransport.StageOutToArchiveAsync so the transport aborts past the cap mid-stream instead of buffering an unbounded executor payload to disk before validation. Cap violations surface as ExecutorPhaseException (phase failure, unwrapped by CallTransportAsync); the validator keeps its size check as defense in depth. Test fake enforces the cap through a bounded stream and records bytes written; the oversized stage-back test now asserts mid-stream abort. Add traversal/absolute/wrong-root/symlink stage-back tests asserting rejection without repo write or idempotency record. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> CodeyBox-Prompt-Revision: 1 Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
…aths File-shaped tar root (item-id.git as RegularFile) previously passed validation and replaced the bare repo directory. Validate and extract now reject a non-directory entry equal to the expected root, and install requires the extracted root to be a directory. Also canonicalize target/scratch paths in the validator, contain scratch under temp, share one entry-guard helper and copy buffer size, and reject a null findings collection as a typed phase failure. CodeyBox-Prompt-Revision: 1 Co-Authored-By: CodeyBox <noreply@codeybox.invalid>
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.
Automated via CodeyBox — work item 80f9f64ae0444bf8aac80d7348d6c696
Initiated by CodeyBox operator
Co-Authored-By: CodeyBox noreply@codeybox.invalid
🤖 Generated with CodeyBox