fix(dashboard): parse Codex reset_at as epoch ms or seconds

Codex returns weekly window reset_at in milliseconds in some cases,
which was being multiplied by 1000 and producing nonsensical reset
countdowns and pace calculations. Route through _parseResetTimestamp
so both formats work, and add a regression test.

Also tightens comments in useMobileKeyboard / ChatView around why
visualViewport scroll events skip offsetTop updates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-06 22:17:13 -07:00
parent f77f691d26
commit 9b2fc4565b
6 changed files with 74 additions and 18 deletions

View File

@@ -1106,9 +1106,10 @@
.chat-thread--keyboard-active {
height: calc(var(--vv-height, calc(100dvh - var(--keyboard-overlap, 0px))) - var(--header-height));
max-height: calc(var(--vv-height, calc(100dvh - var(--keyboard-overlap, 0px))) - var(--header-height));
/* useMobileKeyboard pins --vv-offset-top across pan-time scroll
events (only resize/focus update it), so this transform anchors
the thread on initial focus without juddering during swipes. */
/* Re-anchored: useMobileKeyboard now only updates --vv-offset-top
on resize/focus transitions (not on every visualViewport scroll
during a pan), so the transform tracks the keyboard open/close
without jittering during a swipe. */
transform: translateY(var(--vv-offset-top, 0px));
will-change: transform;
}