fix(yoga): full-reading yoga re-run passes the retrograde flag (T1 follow-up, BUG-1207)

Nine-figure check: Judy Garland's report said Bhadra 'combust within 14°' while
the card said 12° (retrograde Mercury). The full reading builds cmd_yoga's
planets string without retrograde; an optional 5th field 'R' now carries it.
Test pins report vs consultation reductions on that public chart.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-10-03 14:56:05 +08:00
co-authored by Claude Opus 5.5
parent 0d6af77cea
commit b1185c63ac
2 changed files with 33 additions and 1 deletions
+8 -1
View File
@@ -12517,6 +12517,10 @@ def cmd_yoga(args):
pdata["degree"] = float(parts[3].strip())
except ValueError:
pass
# Optional 5th field "R": retrograde (combustion orb of the main
# Pancha Mahapurusha detector, BUG-1207).
if len(parts) >= 5 and parts[4].strip().upper() == "R":
pdata["retrograde"] = True
planets[parts[0].strip()] = pdata
context_json = getattr(args, 'context_json', None)
if context_json:
@@ -15663,11 +15667,14 @@ def cmd_full_reading(args):
'sign': pd['sign'],
'house': pd['house'],
'degree': pd.get('degree_in_sign', pd.get('degree')),
'retrograde': bool(pd.get('retrograde')),
}
yoga_result = cmd_yoga(type('Args', (), {
'ascendant': asc_sign,
'planets': ','.join([
f"{k}:{v['sign']}:{v['house']}" + (f":{v['degree']}" if v.get('degree') is not None else "")
f"{k}:{v['sign']}:{v['house']}"
+ (f":{v['degree']}" if v.get('degree') is not None else "")
+ (":R" if v.get('degree') is not None and v.get('retrograde') else "")
for k, v in yoga_planets.items()
]),
'context_json': json.dumps(yoga_context, ensure_ascii=False),