Repository navigation
refactor(cli): isolate cluster control execution and delivery - #1046
Closed
aaltshuler wants to merge 15 commits into
Closed
aaltshuler wants to merge 15 commits into
aaltshuler wants to merge 15 commits into
Conversation
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
Cluster deployment, stored-query inspection, policy tools and graph discovery still run through the large CLI dispatcher and process output. Move their existing arguments and handlers into
commands/clusterandcommands/control, and pass fallible writers through direct and served control paths. Broken pipes return errors instead of panicking, including after completed deployment work.Keep command syntax, normal output, scope selection and managed dispatch precedence unchanged. Applied query/policy tooling retains its captured serving snapshot and ledger CAS; the cluster crate retains publication, admission and recovery authority. No new flags, dependencies, retries or target-selection rules.
Backing issue / RFC
Draft RFC #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— 532 passed, 19 ignored.env CARGO_TARGET_DIR=/Users/andrew/code/omnigraph/target cargo clippy -p omnigraph-cli --all-targets --locked -- -D warnings -W clippy::dbg_macro— passed.cargo fmt --all --check, documentation checker (318 Markdown files), targetedtypos, andgit diff --check— passed.observed_atclock value. Raw output is retained in the local characterization report.Notes for reviewers
Depends on #1045 at
f438d197eb1e769f840b879ce312bcf793715be0, still open. Predecessor commits remain in the PR until the stack lands; this slice is the final commit.Served apply must deliver and flush its ID before the single POST. Its receipt/timeout write failures never enter polling retries; timeout exit 5 requires delivered diagnostics. Direct apply's existing core identity callback is infallible: a failed identity report is retained while that one call finishes, then returned with the original ID, redacted root and lock. This deliberately replaces the old stderr panic/abort with an ordinary error and a settled-or-original recovery identity; it does not roll back or replay work. Exact-ID resubmission continues to observe an existing result. Upgrade, reconciliation and unlock retain their recovery details on partial-write or flush failure, and a failed diagnostic retains the underlying core refusal.
Managed provisioning/authentication keep their current owners. Engine/storage code, data-write outcome classification and query semantics are unchanged.