N-body validation and service cutover

Optional Horizons validation, the R84–R93 staged implementation and the verified R102 post-cutover architecture.

Current runtime status

R92+: a validation certificate is not required to run or test N-body. The certificate remains a reproducible external validation artefact tied to a specific Horizons corpus, kernel and force model.

Every validation case must require used_model=nbody; a fallback case is not valid evidence for N-body accuracy.

Optional Horizons corpus method

Record exact corpus identity, kernel hash, force-model identity and spherical separation. Report median, P90, P95, maximum and counts above 30, 60 and 300 arcsec. Do not replace the distribution with a universal subarcsecond release claim.

The R90 build environment did not complete a real external corpus run. Deterministic unit/regression tests prove implementation consistency, not general external orbit-prediction accuracy.

R84–R93 staged history

R84
Frozen R83 two-body and legacy RA/Dec/distance regression baseline.
R85
Analytical state vector at the MPC osculating-element epoch.
R86
DE440s planetary states, frame conversion and Cowell force foundation.
R87
Forward/backward DOP853 propagator with dense output.
R88
Explicit comet_model="nbody" and retarded-time integration.
R89
Session LRU cache, classified fallback and detailed provenance.
R90
Local-Horizons corpus comparator; original certificate runtime gate later superseded.
R91
Full WCCD Comet/Stars logical roles from one FITS and reordered designation dialog.
R92
Automatic application N-body selection, status command and visible engine provenance.
R93
QObject/pyqtSlot GUI-thread handoff for finder and Auto Star Measure review/results.

R102 post-cutover cleanup

R102 follows the R101 global cutover and removes only proven private duplicates. The production architecture has one public boundary, compute_comet_ephemeris(), and one allowlisted application call to engine.compute_application() inside the typed service.

  • Private WStack designation/observer/topocentric adapters were removed.
  • The production-only R96 shadow helper was moved to test support.
  • Unused imports left by R97–R101 were removed.
  • Potentially external compatibility APIs were retained intentionally.
  • No physical calculation or widget output changed.

This documentation source does not contain separate R94–R101 release reports, so it does not reconstruct unsupported intermediate details. The authoritative statements here are the R93 behavior and the supplied R102 post-cutover result.

R102 QA and architecture gate

full QA:                  1509 passed, 6 skipped, 0 failed
R84–R102 focused gate:     254 tests passed
engine_application_compute: 1
engine_direct_compute:       0

The six skips require the optional complete Astropy FITS/time runtime. Manifests, CLEAN/QA production parity and ZIP integrity passed.

Source brief

Download the cumulative R84–R93 documentation brief.

Download the consolidated R84–R93 changelog.

Download the R102 ephemeris dead-code cleanup report