Skip to content

refactor: remove duplicated POD scientific modules - #17

Merged
VPRamon merged 34 commits into
mainfrom
8-remove-duplicated-pod-scientific-modules
Oct 4, 2026
Merged

VPRamon merged 34 commits into
mainfrom
8-remove-duplicated-pod-scientific-modules

Conversation

@VPRamon

@VPRamon VPRamon commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Closes #8

Summary

This refactor makes spod a service/application on top of the canonical Siderust 0.12 POD APIs rather than a second scientific POD toolkit.

Scientific consolidation

  • Removed the duplicated local core, dynamics, estimation, observations, products, and qc implementations and their obsolete exports/tests.
  • The service pipeline imports Siderust POD estimation, observation, force, product, QC, run-manifest, and propagation APIs directly.
  • Replaced the deprecated finite-difference STM workaround with siderust::pod::propagation::VariationalPropagator; the initial state and identity STM are explicitly aligned with observation epoch zero.
  • Removed unsupported synthetic carrier-ambiguity injection; the MVP estimates the six state components plus receiver clock.

Service boundaries and provenance

  • CLI runs hash the actual YAML configuration with Siderust DatasetRef.
  • REST jobs persist a deterministic serialized request.json in the run directory and hash that real file for manifest provenance.
  • The current synthetic-only runner rejects every configured real-data input instead of hashing or recording data that the pipeline does not consume.
  • Unsupported third_body: true configurations are rejected rather than silently running a TwoBody/J2-only model.
  • Successful runs emit canonical Siderust RunManifest metadata with real SHA-256 configuration provenance, RFC3339 start/finish timestamps, deterministic references, and hashed output byte counts.
  • spod::service no longer re-exports reusable scientific state types; internal callers import them directly from Siderust.

Cleanup

  • Removed deprecated SIDERUST_POD_REST_BIND / SIDERUST_POD_REST_OUT compatibility.
  • Removed legacy SPICE DAF/SPK parser re-export modules; low-level callers use siderust::formats::spice::{daf, spk} directly while spod::spice keeps only value-added kernel/provider functionality.
  • Rewrote the active changelog, examples/doctest guidance, SPK documentation, and relevant ADRs for the post-consolidation architecture.
  • Tightened the legacy namespace guard so obsolete project namespaces cannot return outside the explicitly historical workspace-reset ADR.
  • Removed obsolete scientific dependencies in the preceding consolidation commit.

Tests and validation

  • Added tests/service_synthetic.rs, covering RunConfig -> runner -> Siderust variational propagation/estimation -> products/QC -> RunManifest, including estimator output, required manifest fields, timestamps, configuration hash, output existence, and hash/byte-count consistency.
  • The E2E test now asserts that the synthetic manifest contains exactly the configuration dataset as its input provenance.
  • Added regression coverage that sp3, rinex_obs, rinex_nav, and antex are all rejected while real-data ingestion is unsupported.
  • Added regression coverage for unsupported third-body configuration and for persisted REST request provenance (path, bytes, and SHA-256).
  • CI validates formatting, checks, Clippy, feature combinations, docs/doctests, project guards, MSRV, coverage, Docker/REST/CLI smoke tests, and supply-chain policy.

The former standalone scientific API is intentionally not preserved through compatibility façades. Reusable POD science belongs upstream in Siderust; this PR keeps concrete service orchestration and external-format boundaries in spod.

Use siderust::pod as the canonical POD implementation and keep spod focused on service orchestration, adapters, and artifacts.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 30f3fa2e59

ℹ️ 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".

Comment thread src/service/pipeline.rs Outdated
Comment thread src/service/synth.rs Outdated
VPRamon and others added 28 commits October 4, 2026 17:55
Use Siderust variational propagation, emit valid run provenance, remove unsupported ambiguity configuration, delete stale compatibility paths and documentation, and add synthetic service integration coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@VPRamon
VPRamon merged commit 297f4c3 into main Oct 4, 2026
18 checks passed
@VPRamon
VPRamon deleted the 8-remove-duplicated-pod-scientific-modules branch October 4, 2026 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove duplicated POD scientific modules in favor of Siderust

1 participant