moira

Moira 6.1.0 - Contract and Release Integrity

Release date: 2026-07-28

Public upgrade path: 6.0.1 to 6.1.0

Moira 6.1.0 adds authoritative dated monthly profections and strengthens the engine’s public-contract, aspect-pattern, Python-compatibility, and small-body release boundaries. It is a minor release because it adds typed capability while preserving admitted computations and valid 6.0.1 requests.

The 9,974-name asteroid identity expansion shipped in 6.0.1. Version 6.1.0 inherits that registry and adds the release-integrity and collision policies needed to consume it safely.

Highlights

Dated Monthly Profections

profection_chronology(...) constructs twelve contiguous, half-open intervals between exact consecutive civil anniversaries. The admitted interval policy is:

equal_twelfths_of_civil_anniversary_year

Each result records:

The chronology is identified as a computational_projection. It is not presented as Valens IV.28’s separate day-Sun/night-Moon distance method, twelve fixed 30-day periods, a 365.25-day quotient, or twelve civil-calendar months.

Civil-time failure semantics

Civil anniversaries preserve the natal local wall clock:

Named IANA lookup uses Python’s standard-library zoneinfo interface. Moira does not download timezone data or claim a database version the host does not expose.

Unified Hellenistic Profile

HellenisticChartProfile advances to the chronology-aware v2 method and rejects cross-component contradictions involving:

The profile remains non-interpretive and score-free.

Closed Hellenistic exclusions

The following are settled exclusions, not unfinished 6.1 work:

The source-reconstructed Gundel/Harley names and planetary faces remain research data. They are absent from curated root, classical, facade, REST, and OpenAPI product surfaces.

Aspect and Pattern Contracts

Aspect and pattern calculation now preserves stable observable semantics at the public boundary:

These changes repair edge behavior without removing existing aspect names or legacy facade entry points.

Small-Body Release and Identity Integrity

Immutable catalog releases

Asteroid and comet distributions now have the same release-grade identity model:

Generated identity files are byte-stable across Windows and POSIX checkouts, and website publication consumes only tracked Git sources. The metadata-only manifests retained in the wheel are now byte-identical to the immutable manifests named by those identity receipts. They remain metadata until at least one referenced BSP shard is installed; automatic discovery does not mistake a manifest-only wheel for a position-capable catalog.

The authoritative asteroid release remains:

Field Receipt
Catalog moira-asteroids
Version 2026.07.27.1
Bodies 9,974
Shards 399
Sampling 10-day step, 7-node window
Manifest SHA-256 0560302f877a46cebc550376ae70665fefab84801078181cf3c4199ce86d49d0

The authoritative comet release is:

Field Receipt
Catalog moira-comets
Version 2026.07.28.1
Bodies 497
Shards 20
Sampling 30-day step, 5-node window
Manifest SHA-256 31fbbedbb3ea7ba276fa9d49d52211ae41d90f76c74fb49ec0a6bafb014f07a1

Cross-family name collisions

Asteroid and comet catalogs currently share the normalized names Halley and Encke. Unified position, chart, progression, void-of-course, and astrocartography paths no longer guess which family the caller intended.

Dedicated asteroid or comet routes remain family-scoped and retain their existing convenient aliases.

Python and REST Compatibility

Moira continues to support Python 3.10 through 3.14. Every optional-server enum uses Moira’s StrEnum compatibility boundary, and the release workflow imports and constructs the server on the minimum supported Python.

The Decennial request boundary remains L1/L2 only:

Progression entry points now validate policy types and values, aware target datetimes, supported bodies, and house-frame inputs before resolving an implicit planetary reader. Malformed requests therefore return the same declared TypeError or ValueError on kernel-free and kernel-installed hosts. Valid computations still require the appropriate installed ephemeris.

Validation Boundary

The release gate covers:

No new broad numerical ephemeris-parity claim is made for the separately distributed small-body kernels.

Installation

moira-astro==6.1.0

For the optional server:

moira-astro[server]==6.1.0

Read COMPATIBILITY_NOTES_6.1.0.md before regenerating typed clients or upgrading an application that caches computed chart responses.