Repository navigation
Preserve calendar edit timestamps and exact supported-year time conversions - #979
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Audit follow-up CALENDAR-EDIT-MICROSECOND-ORDER (source review at 9ee6a91; inherited residual, not a new regression). The current PR owner can take this bounded follow-up after the active slice; if already allocated, link the existing task rather than duplicate it. In components/modules/calendar-module.tsx:1074–1080, new Date(ends_at) <= new Date(starts_at) collapses distinct microsecond instants. Synthetic reproduction: an existing timed UTC event from 2026-10-09T12:30:29.456001Z to 2026-10-09T12:30:29.456002Z, edit only its title and save. The new hints retain both original strings, but this comparison blocks the action as equal. The real calendar service accepts integral microseconds and compares exact instants. This was confirmed by source inspection, not runtime execution. Next task: preserve exact ordering in this modal while retaining its intended equality/refusal policy. Add a modal-level regression for an unchanged positive same-millisecond interval, plus equal/reversed controls, and report the repair commit and exact-head test/CI evidence. Keep the existing finalaudit.md writer and IDs/history; record candidate evidence separately from main. The synthetic browser fixture bypasses real action/schema boundaries, so its nanosecond payload case must not be credited as database persistence proof. Historical whole-clock gaps remain separately held. No merge, deployment, production SQL/configuration or credential changes requested. |
Editing only a calendar event's title could move a repeated DST hour or discard stored seconds and fractional precision. The modal now supplies each matching original timestamp to a strictly validated optional hint, preserving its exact bytes when the wall-clock input is unchanged. Changed inputs retain the existing conversion policy.
This also fixes supported AD1–99 dates becoming 1901–1999 during the calendar handoff, invalid/extended-year clock formatting, normalized query instants escaping the supported UTC domain, and historical IANA offsets that include seconds. The public minute-only clock shape and existing routine/RFC gap and fold policies are retained.
Validation:
finalaudit.md documents all five fixes, six permanent regression files and the remaining gates. Full feature rows remain in progress, including a separately reproduced historical second-scale gap in whole-clock normalization. Exact-head hosted build/browser/Auth/database/cleanup and production readback are still required. Production readiness remains NO; held migrations and production configuration are unchanged.