Repository navigation
refactor(cli): isolate transfer execution and delivery - #1043
Closed
aaltshuler wants to merge 12 commits into
Closed
aaltshuler wants to merge 12 commits into
aaltshuler wants to merge 12 commits into
Conversation
5 tasks done
Contributor
Author
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.
What & why
A closed output pipe after a successful load or Blob write currently panics while printing its receipt, bypassing command-outcome reporting. This change makes transfer input and output explicit:
load,export, andblob get/stat/put/clearlive incommands/transfer, and receipt or stream delivery errors return through application completion. Dispatched writes retainunknowneffects andreconcileguidance without replay.Public arguments and successful output are unchanged. The existing client still owns transport, streaming, managed load limits, and source reads. The extraction preserves overwrite consent, Blob precondition/input validation order, embedded load's writable-open-before-input-read order, and deferred Blob output-file behavior. No new commands, flags, dependencies, or storage changes.
Backing issue / RFC
The draft coherency RFC in #675 supplies refactor sequencing; its proposed targeting grammar is not introduced here.
Checklist
Local verification
env CARGO_TARGET_DIR=/Users/andrew/code/omnigraph/target CARGO_BIN_EXE_omnigraph-server=/Users/andrew/code/omnigraph/target/debug/omnigraph-server cargo test -p omnigraph-cli --locked— 512 passed, 19 ignored.cargo test -p omnigraph-cli --locked --lib app::tests::transfer_receipt_delivery_failure_keeps_write_evidence_without_replay.cargo clippy -p omnigraph-cli --all-targets --locked -- -D warnings -W clippy::dbg_macro— passed.cargo fmt --all --check,python scripts/check-docs.pyin the existing documentation environment (315 files), targetedtypos, andgit diff --check— passed.load/blob put/blob clear, human and JSON): baseline panicked with exit 101; current binary exits 1 with retained outcome guidance and exactly one write.Notes for reviewers
Depends on #1042 at
72f9d44225e96fb170311189489df1215dce3d3f, which is still open. The transfer slice is commit8b22f353; the PR includes predecessor commits until that stack lands.initremains with the later schema/lifecycle extraction.Tests reuse the existing HTTP fixture and parity/fault owners. They cover bounded binary stdin, interrupted/erroring input, validation before requests, output-file preservation and partial transfers, write/flush failures, retained dispatch evidence, and no replay.