Skip to content

v0.51.199: pinned-scroll recovery + inline-math currency false-positive - #3353

Merged
nesquena-hermes merged 5 commits into
masterfrom
release/stage-batch11
Jun 1, 2026
Merged

nesquena-hermes merged 5 commits into
masterfrom
release/stage-batch11

Conversation

@nesquena-hermes

Copy link
Copy Markdown
Collaborator

v0.51.199 — pinned-scroll recovery + inline-math currency false-positive

Two front-end bug fixes (stage-batch11) — surfaced as new items when their fork CI was approved mid-sweep.

Included PRs

PR Title Author
#3330 Fix pinned chat scroll recovery after message DOM rebuild. Closes #3319 @jianongHe
#3311 Reject $+digit inline math so currency ($1,000) renders as plain text @toanalien

Maintainer fixes applied (Codex regression gate, 2 rounds)

Gate results

nesquena-hermes and others added 5 commits June 1, 2026 19:08
#3330 Fix pinned chat scroll after message rebuild
Co-authored-by: jianongHe <jianongHe@users.noreply.github.com>

#3311 fix: reject inline math when $ is followed by a digit (currency)
Co-authored-by: toanalien <toanalien@users.noreply.github.com>
…during streaming

Codex regression-gate finding: the new requestAnimationFrame retry in
_setMessageScrollToBottom re-asserted scrollTop=scrollHeight + _scrollPinned=true
on the next layout frame unconditionally, so a user who scrolled up in that ~16ms
window during streaming would be snapped back and re-pinned, bypassing the
scrollIfPinned early-return guards. Re-check _messageUserUnpinned / upward-intent /
non-message-scroll-intent / !_scrollPinned inside the retry; on hit, only release
the programmatic-scroll latch and bail.
…sn't read as intent

Codex follow-up finding: _lastMessageUpwardIntentMs/_lastNonMessageScrollIntentMs
initialized to 0, so _recentMessageUpwardIntent() returned true for the first 2s
after load (performance.now() < MESSAGE_UPWARD_INTENT_MS=2000) even with no user
scroll — which would disable the new #3319 retry guard during initial load. Sentinel
-Infinity makes 'no event recorded yet' read as no-intent. Also tightens the
pre-existing scrollIfPinned/settle callers that read the same helpers.
@nesquena-hermes
nesquena-hermes merged commit b6e4899 into master Jun 1, 2026
11 checks passed
@nesquena-hermes
nesquena-hermes deleted the release/stage-batch11 branch June 1, 2026 19:25
SysAdminDoc pushed a commit to SysAdminDoc/hermes-webui that referenced this pull request Jun 26, 2026
v0.51.199: pinned-scroll recovery + inline-math currency false-positive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: 发送新消息后聊天内容往上跳约一轮对话高度

1 participant