Repository navigation
COMPATIBILITY_NOTES_6.9.9
Moira 6.9.9 follows 6.9.8. It restores behaviour that 6.9.8 broke, makes each named doctrine follow its own source by default, and adopts the standard heliacal phase names. Many default results change. The changes below are the ones a caller can observe.
-
/v1/patterns/coherence,/v1/patterns/chart-profileand/v1/patterns/networkreturn results again (6.9.8 returned HTTP 500). -
/v1/composite/chartwithoutreference_latitudereturns a chart again (6.9.8 returned HTTP 422). The houses are cast at the mean latitude of the two birthplaces, reported incomputation_truth.reference_latitude. An explicitreference_latitudeis used unchanged. The retiredmidpointmethod is still rejected. -
/v1/manazil/positionand/bulkdefault to theagrippatradition, so a request with only a longitude works again.
-
Relationship aspects.
/v1/synastry/*,Moira.synastry_aspectsandSynastryAspectPolicy()default to tier 0, the five major aspects (previously 2, every aspect). Composite and Davison embedded aspects default to tier 0 (previously 1). Sendtier: 1ortier: 2to keep the minor aspects. -
Dignities.
william_lilly_1647scoring (the default) uses Lilly's triplicity table: Mars rules the water triplicity by day and night, so scores change for planets in Cancer, Scorpio and Pisces. It also uses Lilly's own terms (p. 104), which differ from Robbins' Ptolemaic terms in these ranges (degrees within the sign; Robbins ruler to Lilly ruler):Sign Degrees Term ruler Taurus 24-26 Mars to Saturn Gemini 13-14 Venus to Jupiter Gemini 20-21 Mars to Venus Gemini 21-25 Mars to Saturn Gemini 26-30 Saturn to Mars Leo 0-6 Jupiter to Saturn Leo 13-19 Saturn to Venus Leo 19-25 Venus to Jupiter Libra 11-16 Mercury to Jupiter Libra 19-24 Jupiter to Mercury Scorpio 6-13 Venus to Jupiter Scorpio 14-21 Jupiter to Venus Capricorn 19-25 Saturn to Mars Capricorn 25-30 Mars to Saturn Pisces 25-26 Saturn to Mars EssentialDignityPolicy().triplicity_doctrineand the REST term table default to the scoring mode's own table; pass a table explicitly to keep an older one. An explicit table is no longer rejected under Lilly scoring.TriplicityAssignment.participating_rulermay beNone. The Hellenistic profile keeps its Ptolemaic terms, andHellenisticProfilePolicyrejects a dignity policy whose triplicity table differs from its own. -
Perfection. Lilly's perfection reception uses his triplicity and terms; the policy literals are
william_lilly_1647andwilliam_lilly_1647_sect_active. -
Planetary years.
PTOLEMAIC_YEARSmean years for Saturn (43.5), Jupiter (45), Mars (40), Sun (69) and Moon (66) follow Lilly, which changescalculate_longevitygranted years. -
Nine parts and Paulus lots. The default returns the 7 Hermetic lots instead of 9;
planetsmust include Mercury and Venus; "North Node" is required only for the extension scope;meaningis null; RESThistorical_scopedefaults tohermetic_seven. Necessity (Paulus) and Eros (Paulus) values change (Paulus ch. 23, reversed by night). -
Harmonics. Conjunction, aspect, sweep, fingerprint and cross-chart requests default to
orb: 12(previously 1).provenance.preset_descriptionisnullin computed payloads; the cross-chart payload reportsharmonic_kind: "cross_chart". -
Lunar mansions. Every tradition uses 28 equal divisions. For
al_biruni,jd_utis no longer needed,span_degreesis 12.857..., provenance isequal_division_360_by_28/equal_28_mansion_assignment, and the index for a longitude can differ from 6.9.8 (Moon at 254.526 deg is now #20, not #18).mansion_of(..., jd=)accepts and ignoresjd. Latin names change for Agrippa (for example #3 Athoray to Achaomazon) and Picatrix. Agrippa's significations and 11 natures change. The always-nullMansionInfoResponse.ruling_staris removed; usemarker_stars. -
Gauquelin. Positions add
effect_status. Bodies other than the Moon, Venus, Mars, Jupiter and Saturn reportzone: "Not Classified"andis_plus_zone: false. -
Huber.
AgePointPosition.intensityand the REST age-pointintensityarenullunlessinclude_intensity=true. -
Lord of the orb.
house_significationis null. -
Davison
correctedreportslongitude_mode: "shorter_arc_midpoint"; its place moves for pairs straddling the antimeridian. -
Relationship transits. Up to 10 moving bodies are accepted.
-
Heliacal setting (
HeliacalEventKind.HELIACAL_SETTING,planet_heliacal_setting, RESTkind) is the evening last visibility. The event 6.9.8 returned, the last morning sighting, isMORNING_LAST/planet_morning_last. -
Acronychal rising is the evening rising near opposition. The event 6.9.8
returned, the first evening sighting, is
EVENING_FIRST/planet_evening_first. The Yallop lunar-crescent search takesEVENING_FIRSTwhere it tookACRONYCHAL_RISING. -
Fixed stars.
stars.heliacal_setting_event/heliacal_settingandheliacal_catalog_batch("heliacal_setting", ...)return the evening last visibility, typically months from the old result. The old event islast_morning_visibility_event/last_morning_visibilityand the batch kind"last_morning_visibility". A catalogue-wide setting batch no longer uses the native fast path and is slower. -
acronychal_settingremains a deprecated synonym ofheliacal_setting. Every wire string that existed before still parses. A kind that does not occur for a body returnsNone. - For Moon morning records under Yallop, the kept fields
sunset_jd_utandmoonset_jd_uthold sunrise and moonrise;observation_windowsays which. - A superior planet's morning apparition that ends at opposition has no morning last visibility (6.9.8 returned the opposition date).
-
Solar condition. Combust begins at 8°30′ from the Sun (Lilly), not 8°,
in
solar_condition_atandsolar_condition_events_in_range. The Moon is evaluated like any other body; only the Sun is excluded. -
Visibility. Under the default limiting-magnitude criterion,
observableisfalsewhile the Sun is above the horizon, withcriterion_reason = "daylight_sun_above_horizon". -
Galactic chart positions. Without
observer_lat/observer_lonthe positions are geocentric (formerly topocentric at 0 N 0 E). -
Draconic origin. A draconic chart requested with an observer reports
origin: "topocentric". - Composite and Davison aspects leave out the Mean Node, True Lilith and Mean Lilith, as synastry does.
-
Lord of the turn.
is_well_placedisnullfor a candidate without a solar-return house. -
Almuten.
/v1/almuten/*default to Lilly 1647;almutencan be null (a tie or an unevaluable testimony), and provenance addsdoctrine_sourceandnot_computed. The default/v1/almuten/figurisdoctrine needsspeeds,north_node_longitudeandfixed_star_longitudes(422 without them);day_ruler,hour_rulerandprenatal_syzygy_longitudeare accepted only withdoctrine=moira_legacy_v1. Tallies gainaccidental_pointsand the response gainsreason.almuten_of_degreeandalmuten_figuris(engine functions) keep the legacy count by default. -
Facade almuten.
Moira.almuten_figurisraises instead of silently skipping unresolved day and hour rulers; passgeo_latitude/geo_longitudeor explicit rulers.stricthas no effect. -
Hyleg.
/v1/hyleg/lilly-1647selects in cases it previously did not evaluate, and may name a planet, the Ascendant or the Part of Fortune. -
Offices.
/v1/hellenistic/officespredominatoris a string,reasoncan be null, andhouse_master_reasonandpredominator_determinationare new.
- Midpoint
planet_setvalues other thanclassic,modernandextended(engineValueError; REST 422). - Davison requests whose two people name different house systems, or that
carry per-person
bodies. -
bodieson the single-body decanate chart routes. - Draconic
latitudewithoutlongitude, or the reverse. - Galactic chart requests with only one of
observer_lat/observer_lon. - Paran packet heliacal kinds that do not apply to stars.
- Synastry aspects and contacts with
time_unknownon either person, and a one-way overlay into the chart of a person whose time is known. - Draconic
latitude,longitudeandhouse_system. - Every standard heliacal kind on
/v1/heliacal/planet, and the star kinds on the paran packet.
pip install --upgrade moira-astro==6.9.9
For services running moira_server:
pip install --upgrade "moira-astro[server]==6.9.9"
Callers that want 6.9.8's relationship aspects should send tier explicitly
(2 for synastry, 1 for composite and Davison). Restart long-running engine
and API processes after upgrading so the new native extension and transport
schemas are loaded together.