Repository navigation
refactor: consolidate POD service orchestration - #36
Merged
Merged
Conversation
Introduce a typed service runner boundary with explicit workflow dispatch, categorized errors, structured artifacts, and provenance. Route CLI and REST execution through the runner while preserving the synthetic reference workflow and documenting the service architecture. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 07b1e25255
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Hide synthetic pipeline internals, preserve scientific versus artifact error categories, centralize deterministic artifact paths, fix relative REST job output resolution, and align architecture documentation with direct dependencies. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Summary
The previous service layer mixed configuration validation, synthetic workflow setup, pipeline execution, artifact writing, and transport concerns. CLI and REST had to know pipeline details, while the public result exposed only a manifest path and failures surfaced as
std::io::Erroror pipeline errors.This PR makes
spodan application/service layer around Siderust:Runner/RunRequest/RunResultservice boundary;Workflow,Artifacts,RunProvenance, and categorizedServiceErrortypes;The configuration schema remains deliberately small. Unknown fields fail explicitly,
workflow: syntheticis supported (and defaults for existing configs), and relative output directories resolve relative to the configuration file.Deferred scope
This does not implement the full job lifecycle/persistence work planned for #11, real GNSS POD from #20, dataset acquisition from #21, mission profiles from #22, or Siderust SGP4/SDP4 parity (#29 / Siderust#98). Production scheduling, persistence, authentication, and new science remain out of scope.
Validation
cargo fmt --all -- --checkcargo check --locked --workspace --all-targets --all-featurescargo clippy --workspace --all-targets --all-features -- -D warningscargo test --workspace --no-fail-fastcargo test --workspace --no-default-features --no-fail-fastcargo test --workspace --all-features --no-fail-fastcargo test --doc --workspace --all-featurescargo doc --workspace --no-depsbash scripts/check_dep_graph.shbash scripts/check_no_todos.shbash scripts/check_legacy_name_refs.shcargo deny --all-features check(passes with existing duplicate-crate warning)cargo run --quiet --bin spod -- run examples/configs/leo_gnss_mvp1.yamlCloses #10