- Intake: six verbatim options (出生证明 / 户口本 / 家人记得 / 只记得时辰 /
只知道时段 / 完全不知道). Clock-time sources take an earliest / latest or
「不清楚误差」; no source maps to a fixed error any more. Twelve 时辰
picker (子时 23:00–00:59 from the filled date); the position answer is a
clue and never narrows the window.
- Validation: drop the hospital 2/2 and family 15/30/60/120 rules; a time
needs a containing range (minutes derived, may be uneven) or
uncertainty_known=false. Older 2/2 and 15–120 profiles still resave as is.
- Lagna precheck: uses the given range; without one it scans only the
stated minute and says the verbatim T4 line; ranges read as clocks.
- Migration 20261102020000 (additive): birth_time_source accepts
id_document; profiles and chart_profiles gain birth_time_record_kind,
birth_time_uncertainty_known, birth_time_shichen; chart_profiles gains
birth_time_clue; sync trigger and backfill carry them.
- BUG-1513: readProfile now reads the camelCase library record of other
people (source, stated time, window, status).
- BUG-1514: chart_profiles sync trigger is security definer, so a person
without a clock time can be saved by the people route.
- id_document reaches the frozen engine contract as approximate.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y