~Unified small-body resolution requires family qualification when asteroid and comet names collide, while dedicated family routes retain scoped aliases.
~Optional-server enums use Moira's Python 3.10-compatible StrEnum boundary, and deprecated Decennial request selectors accept only omission or explicit null.
Fixed
Longitude seam, relative stationary-state, duplicate pattern-edge, and complete Grand Sextile behavior are deterministic.
Generated publication consumes tracked Git sources, and catalog identity bytes remain stable across Windows and POSIX checkouts.
Metadata-only asteroid and comet manifests retained in the wheel now match the exact immutable release receipts without advertising absent shards as installed.
Malformed progression requests validate policy, datetime, body, and house-frame inputs before implicit kernel resolution.
Validation
Hellenistic goldens and contract parity, aspect and pattern adversarial cases, small-body release and collision gates, Python 3.10 server smoke, and installed-artifact identity cover the release.
v6.0.1"Complete Asteroid Identity Catalog"2026-07-28
Added
+A release-bound canonical asteroid identity artifact makes every body in external release 2026.07.27.1 addressable by its released name.
Changed
~The bundled canonical asteroid registry expands from 1,382 to 9,974 unique identities and corrects the former Asteroid20395 placeholder to Jacquet.
Validation
Target, unified-ledger, shard, registry, reverse-lookup, REST search, and installed-wheel evidence agree on the exact release identity.
+Source-owned goldens and generated capability/API inventories make the Hellenistic contract drift-detectable.
Changed
~Hellenistic compatibility labels, booleans, and lists are projections of typed component truth rather than fabricated defaults.
~Profection, Decennial, lot, solar-condition, besieging, Zodiacal Releasing, and whole-sign superiority semantics now preserve explicit policy and not-evaluable states.
~Breaking: nine formerly curated Hermetic-decan symbols, including decan_hours(), were removed with no supported product replacement; the Planet Inspector Face surface remains available.
~Decennial output is admitted only at L1/L2; requests above level 2 now fail validation.
Fixed
Dorothean water triplicity, verified lot reversals, Halb/Hayz, solar boundaries, besieging completeness, and Zodiacal Releasing boundary behavior were corrected.
Validation
Strict source-golden, contract-parity, unified-profile, OpenAPI, generated-inventory, Hermetic-containment, documentation, and release-identity gates cover the release.
Automatic discovery now distinguishes metadata-only wheel manifests from installed asteroid and comet ephemerides.
Explicitly configured and partially installed manifest sets remain fail-visible.
Validation
Metadata-only, complete, partial, and explicit discovery modes were exercised through facade readiness, server startup, /ready behavior, and a wheel-shaped isolated install.
v5.2.2"Node Frames and Proper25 Families"2026-07-25
Added
+Mean Node and Mean Lilith now expose an explicit mean-equinox versus true-equinox nutation policy.
+The admitted asteroid-family catalog now contains 342 families, 200,726 unique numbered asteroids, and 221,095 many-to-many membership rows.
Fixed
True lunar-node geometry is formed from the instantaneous osculating plane and transformed through the declared frame chain.
Family lookup and REST transport preserve nested and overlapping memberships while retaining one deterministic display-primary family.
Validation
ERFA/IERS mean-node authority, true-node crossing invariants, named Swiss corroboration, catalog hashes/counts/overlaps, REST transport, and annotation refresh were exercised.
v5.2.1"Spatial House-Boundary Geometry"2026-07-23
Added
+An opt-in immutable house-boundary vessel exposes admitted great-circle planes and Placidus semi-arc event curves with effective-system and availability truth.
Validation
Plane-defined and Placidus boundaries, southern and high-latitude cases, sidereal labels, fallback, public exports, and REST serialization were exercised.
v5.2.0"Global Eclipse Circumstances and Cartography"2026-07-23
Added
+First-class solar global circumstances include contacts, central-line limits, greatest eclipse, greatest duration, conjunctions, states, gamma, Besselian elements, and the WGS-84 footprint.
+First-class lunar global circumstances expose mode-pure native and NASA-compatible astrometry, shadow geometry, magnitudes, contacts, durations, Delta T, and ephemeris identity.
+Projection-independent adaptive spherical magnitude and obscuration cartography preserves convergence and antimeridian topology.
+Typed REST endpoints expose solar global circumstances, solar cartography, and lunar global circumstances.
Fixed
Near-singular hybrid horizon topology and polar/seam contour extraction were hardened without weakening component invariants.
Validation
NASA/GSFC Besselian and hashed lunar-figure corpora provide the primary bounded evidence; named EclipseWise rows provide separate cross-model corroboration.
v5.1.2"Eclipse Geometry Hardening"2026-07-22
Added
+A NumPy-free native solar-footprint substrate accelerates bounded candidate discovery while Python retains eclipse doctrine and topology.
+A provenance-recorded NASA/GSFC corpus covers all 229 lunar eclipses from 1901 through 2000.
Fixed
Solar footprint horizon-root discovery and exact sunrise/sunset junction assembly were repaired for affected 2027–2031 events.
Lunar greatest-eclipse geometry, classification, contacts, and candidate admission now share the declared physical event state.
Validation
All 229 NASA events match the published type family, and forward, backward, and bulk searches recover the complete ordered sequence with greatest-eclipse TT residual below 55 seconds for that corpus.
v5.1.1"DE440 Historical Delta-T Repair"2026-07-22
Fixed
Historical, basis-sensitive DE440/LE440 charts now bind Delta T to the content-identified kernel's admitted tidal basis while unknown DE/LE identities continue to fail closed.
Validation
Content-derived identity, historical clock conversion, unchanged modern direct-EOP behavior, and retained unknown-identity refusal were exercised.
v5.1.0"Source-Scoped Policy and Evidence"2026-07-21
Added
+Dignity computation now exposes independent Halb and Oriental/Occidental inclusion policies across the engine and all six REST routes.
+Bulk solar and lunar eclipse ranges use conservative native TT syzygy candidates while Python retains time policy, physical refinement, classification, and result assembly.
+The admitted Pancha Pakshi surface is explicitly source-scoped, provenance-bearing, policy-explicit, and has no ambient universal default.
+A bounded Gauquelin g5 historical validation program records its dataset, plus-zone policy, comparator, and tolerances.
Changed
~Planetary Hours now consumes the shared local-solar-day boundary while retaining its public vessels and semantics.
Fixed
Missing meridian crossings inside a bounded search window are represented as absent events instead of invented results.
Nakshatra and Panchanga phase boundaries now share exact half-open ownership rules.
Validation
Pancha source tests establish source fidelity and invariants rather than empirical efficacy; Gauquelin evidence is limited to its named corpus; snapshots remain regression evidence.
v5.0.0"Declination & Delta-T Truth"2026-07
Added
+First-class declination aspects — Parallel and Contra-Parallel as their own aspect domain, with declination inputs and a motion witness that attests applying/separating from computed declination speeds (POST /v1/aspects/from-declinations, /v1/aspects/declination-motion-witness, /v1/aspects/motion-witness)
+Hardened synastry surface — contacts, directional overlays, condition profiles, contact/overlay relations, and a cross-chart network product; caller-supplied chart labels are preserved end-to-end (overlay source/target labels, network node identity as body:<label>:<body>) with computation truth on overlay products (POST /v1/synastry/*)
+Moon connection flow — the Moon's applying connections as an ordered flow product (POST /v1/aspects/moon-connection-flow)
+Secondary progressed declination — progressed declination positions with a full reduction variant (POST /v1/progressions/secondary-declination, /reduction)
Changed
~Delta-T truth — historical Delta-T is now explicitly bound to the loaded kernel's declared lunar tidal basis and translated to it, instead of applying a table silently; pre-1972 civil-time handling no longer displaces instants through a placeholder
~Motion semantics — retrograde and station flags now derive from the published corrected longitudes, so speed claims and printed positions cannot disagree near stations
~Relationship results (synastry, composite, Davison) are immutable vessels after validation — downstream code reads them or copies them, never edits them
~Chaldean bounds split into sect-specific day and night tables; the ambiguous single table is removed
~Eclipse computation overhaul with strengthened external validation of contact circumstances
~GET /ready now returns HTTP 503 while the engine is warming (same response body), so monitors distinguish not-ready from broken
v4.2.1"Relationship REST Completion"2026-07
Added
+The composite and Davison chart responses now carry the engine's own aspect web as a required member — the same tiered doctrine as /v1/aspects/from-longitudes, retiring client-side aspect computation (POST /v1/composite/chart, /v1/davison/chart)
+Aspect policy knobs (tier, orb factor, node policy) propagate through the relationship routes, and the computation truth echoes the resolved values actually used
Changed
~Motion honesty on relationship aspects — composite and Davison positions carry no speed truth, so their aspect events report applying as null with motion_semantics declared, rather than inventing direction
~Relationship party inputs require a timezone-aware datetime — a naive datetime is rejected with an explicit validation error instead of an implicit UTC assumption
v4.2.0"Positions-In Aspects & Western Electional"2026-07
Added
+Aspects from caller-supplied longitudes — any set of named ecliptic positions in, the engine's full tiered aspect doctrine out (major / common minor / extended minor tiers, orb factor, node policy), each event carrying classification, family, direction, and orb provenance (POST /v1/aspects/from-longitudes)
+Western electional: Ramesey's Moon-condition test as a cited electional product (POST /v1/electional/western/ramesey-moon-condition)
Fixed
Davison double time-correction — 4.1.0 applied the UT1-to-TT conversion twice on the Davison path, displacing every body by its own speed across a shared ~56.5 s offset; verified externally by speed-proportional displacement analysis, now zero across all bodies
v4.1.0"Astrodynes"2026-07
Added
+Church of Light natal astrodynes — dignity, house power, aspects, parallels, harmony/discord, mutual reception, aggregation, summary, and network products, validated against three captured Church of Light reports under explicit-geometry semantics (POST /v1/astrodynes/chart, /geometry, /doctrine)
+Church of Light progressed astrodynes — fixed carry, aspect power, terminal, practical distribution, minor/transit, reenforcement, and total-influence doctrine, with exact and manual-staged arithmetic kept distinct (POST /v1/astrodynes/progressed/*)
+Chart-backed progression geometry — Limiting Date, major and Minor Ephemeris Dates, progressed M.C./Ascendant, radical/major/minor/transit terminal derivation, and complete chart assembly (POST /v1/astrodynes/progressed/chart)
+Progressed contact search and integration — bounded one-degree entry/perfection/closest-approach/exit search, named minor reenforcement peaks, and Moira-owned variable-rate quadrature with visible numerical policy and convergence evidence (POST /v1/astrodynes/progressed/search, /integrate)
Changed
~Paran and rise/set solver rework — single-evaluation nutation in the sidereal-time path, closed-form star hour-angle bracketing with exact refinement, and crossing memoization; event times unchanged within validated tolerance, star-work and paran-field computations roughly 20× faster
~Native fixed-star heliacal search — differential-validated against the governing Python implementation (event times within 0.05 s, series parity to 1e-13° against the table evaluator and ERFA); batch heliacal searches drop from minutes to seconds
Fixed
The former native visibility path (truncated nutation series, missing setting thresholds, divergent parallax convention, held Delta-T) was replaced wholesale; Python remains the governing implementation
v4.0.1"Star Parans"2026-07
Added
+Tiered fixed-star paran canon — 51 stars tagged working canon / royal / Behenian / Ptolemaic with availability and defaults (GET /v1/parans/star-canon)
+Per-body crossing inventory on paran search — every requested body reports found / always above horizon / always below horizon / solver failure for all four mundane circles, so an absent paran is explained, never silent
+Named paran policy presets (permissive, star-planet-only) on search and natal routes
+Birth-moment angular contacts as a distinct product from day-parans (POST /v1/parans/natal-angular-contacts), following the Brady distinction
+One-call website paran packet — canon, parans with inventory, angular contacts, and heliacal events in a single response (POST /v1/website/parans/packet)
+Facade exports for the full heliacal surface (heliacal rising/setting events, catalog batch, arcus visionis policy)
v4.0.0"The Vedic Canon"2026-07
Added
+Yoga engine — 60 classical yogas across six families (Pancha Mahapurusha, Chandra, Surya, all 32 Nabhasa, Raja, Dhana), each returned as a proof object: formation conditions with observed evidence, cancellation (bhanga) clauses evaluated first-class, and per-yoga primary-source citations (POST /v1/yogas/evaluate)
+Shadbala completion — Bhava Bala (house strength), inline Ishta/Kashta Phala on every planet, Graha Yuddha strength-transfer disclosure, the exact ayanamsha degrees used, and a single-call POST /v1/shadbala/chart/full envelope (chart + profile + network + bhava from one derivation)
+Upagrahas — the five kalavelas (Gulika, Kala, Mrityu, Ardhaprahara, Yamaghantaka) and the five Sun-derived upagrahas, with policy-selectable computation modes (POST /v1/upagrahas/*)
+Avasthas — Baladi, Jagradadi, Deeptadi, and the six Lajjitadi states, kept as separate per-source rule tables (BPHS / Saravali / Jataka-Parijata / Phaladeepika) rather than merged
+Jaimini extended — rasi drishti, arudha padas, argala with virodha, karakamsa, and first-cycle Chara Dasha, with competing classical lineages named as explicit policy rather than silently chosen (POST /v1/jaimini/extended/*)
+Ashtakavarga refinements — kakshya-level transit evaluation and Shodhya Pinda, validated to the digit against BPHS's own worked example
+Vimshopaka Bala + Vargottama detection across all four classical varga groups (POST /v1/varga/vimshopaka)
+Tara Bala + Chandra Bala as a natal-personalized muhurta overlay; Sade Sati phase classification and kernel-timed windows (POST /v1/sade-sati/*)
+Numbered periodic comet catalog — 497 comets (1P–516P) from JPL Horizons at sub-milliarcsecond interpolation fidelity, as sharded Type-13 kernels
+Unified asteroid catalog — 1,382 asteroids (up from 369) across all 119 families, rebuilt from JPL Horizons
Changed
~Breaking: native-only kernel reader — the jplephem runtime fallback is removed; unsupported SPK segment types now raise an explicit error instead of silently falling back
~Breaking: small-body kernels (comets, asteroids) now load from sharded Type-13 manifests distributed via download, rather than shipping in the wheel
~Breaking: canonical comet identity is now the standard numbered designation (e.g. 1P/Halley), with curated short aliases still accepted as input
Fixed
Primary Directions — Morinus directions corrected to Morin's Book 22 law; converse directions now computed by role exchange rather than arc negation
v3.4.3"Draconic Chart Frames"2026-07
Added
+Draconic (nodal-zodiac) chart frames — new moira.draconic module in the Python library with facade integration: recast any chart into the draconic frame, with 0° Aries anchored to the Moon's north node (true or mean)
+Three public REST routes — POST /v1/draconic/chart, /v1/draconic/positions, and /v1/draconic/longitude: full chart recast, bulk position transform, and single-longitude transform, each reporting the node anchor and rotation applied
Changed
~Chart-shape classification: bucket and bowl definitions clarified in documentation and docstrings (classification behavior unchanged)
~Changelog history reconciled across the 3.4.x line
v3.4.2"REST Pipeline Visibility Patch"2026-06
Added
+Per-stage reduction breakdown on POST /v1/pipeline/positions/planet — ordered records for each step: geometric geocentric base, light-time iteration, gravitational deflection, annual aberration, IAU 2006 frame-bias, IAU 2006 precession, IAU 2000A nutation, and optional topocentric parallax
+Pipeline response now returns reduction.stages, total_delta_arcsec, stage_longitudes, and geocentric_longitude
Fixed
Reduction-pipeline consumers no longer fall back to internal plumbing labels (datetime_to_jd, chart_assembly, all_planets_at) with zeroed or missing stage values — final planetary position semantics are unchanged
v3.4.1"REST Pipeline Visibility"2026-06
Added
+Planetary reduction pipeline exposed through the public REST API with canonical per-stage output
v3.4.0"REST API Expansion"2026-06
Added
+Broader REST coverage of the engine's computation surface through typed routes