The branch edits scripts/jaimini.py, a frozen rectification scoring file;
the sweep's jhora block does not reach the replay subprocesses, so the
tests render a packet production never sees; missing English is blanked
instead of exposed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
The English personal report was discarded whenever a Chinese fragment survived the trailing glossary. English sections now render the English fields that were already calculated.
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
Issue #94 T6. Keep the upstream calculation note, replace the local manuscript path with a book citation, and add our one-line pointer. Record ERR-116 and a changelog line. Skill version is unchanged.
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
Issue #94 T5. Two hundred fixed-seed fictional charts on mean and true nodes all execute, and the Atmakaraka matches chara_karaka_7. Chinese and English full-data markdown for the three fixed fictional charts is unchanged. The frozen-file intersection is empty.
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
The new /synastry/[reportId] route is missing from the capability audit's
app_routes list (quick gate red), the changelog still promises reuse of a
ready report, and the sidebar highlight test asserts a constant.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
PyJHora runs in a subprocess worker for the annual method reference only;
installing it must leave every other output byte-identical (seven switch
points pinned, parent process never imports jhora). Inputs default to
local birth time and the requested year (D6, awaiting product confirm).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
nowrap and max-content hit every report table and break print; the other-
person save is a drifted copy of the archive page; a click on the dialog
padding closes the editor and drops edits.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
Four upstream files from 5fb8379c (the issue missed trikona_dasha.py),
root budget 448 -> 452 per the #81 decision A precedent, wiring into the
jaimini and full-reading outputs only. The source string becomes a plain
book citation; frozen rectification identity must not move.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
Stage A renders what the engine already computes (71 appendix sections in
6 chapters, zh appendix from its own renderer, export sign names); stage B
ports the missing annual, dasha sub-period and Yogi point calculations on
our sidereal frame. No size cap per product; overturns fix2 F5.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
Product decided 1A 2A: Yogini sub-periods proportional with internal
checks (majors still matched against PyJHora); Ashtottari leaves this
ticket because its start table disagrees with PyJHora on 8 of 12
nakshatras and will get its own issue.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
Opening the export sheet now says once, at the top, why English is unavailable. Selected borders, radios and checks use the theme color while fills stay neutral.
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
A finished match used to reopen the old report. Starting again now writes a new one and charges again; a report still being written is reused.
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
140 fixed-seed fictional charts reproduce 40% han_leak. Fix at the source
with English twin fields, no tail glossary entries; Chinese output must stay
byte-identical; 200-chart sweep in full pytest plus a smoke file in the
quick gate. Recurrence of BUG-1272.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
The English-unavailable note moves from a line inside the dialog to one
top toast per open; selected states take the theme accent on borders,
dots and boxes with neutral backgrounds. Reverses the DESIGN.md neutral
selected-state sentence; BUG-1078's no-dark-block rule stays.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
Queued after #86. The ascendant's status cell says "/" with a hover/tap
explanation on the chart page, and the report row says "/" with a note
under the table. Reverses the 2026-10-15 "不适用" wording.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
Queued after Gitea #86. Drops the reported_birth_time immutability in
chart_profiles_guard_birth (copied from the owner guard that was lifted on
07-21); active_* locks stay. Not for the agent loop: touches the database.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
The pair key stays sorted for dedup, and generation now loads the two people in the order they were chosen. The report back link uses Link so the new route passes the page-link lint.
Co-authored-by: Cursor <cursoragent@cursor.com>
The gate now rejects that opening and asks for a rewrite, and the saved text no longer keeps the duplicate.
Co-authored-by: Cursor <cursoragent@cursor.com>
The shared report URL lit the personal-report item in the sidebar. The new address keeps the synastry item current and replaces the old link.
Co-authored-by: Cursor <cursoragent@cursor.com>
The previous commit stored the whole history file with Windows line endings. This puts it back to the repository's line endings and keeps the BUG-1404 entry.
Co-authored-by: Cursor <cursoragent@cursor.com>
English reports hid the analysis fold, timeline titles left out the month span, and deleting a pinned model stopped the next consultation turn.
Co-authored-by: Cursor <cursoragent@cursor.com>
createSynastryFullReport counted today's reports with .gte(), which the
self-hosted client did not implement; every create threw before any credit
was reserved and surfaced as a generic 500 (BUG-1399). The synastry create
path now uses the shared DataQueryBuilder type, and a scan test requires every
builder method used in src to exist on the self-hosted client.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v