Merge pull request #4609 from nesquena/stage-4592

Release v0.51.557 — desktop question-jump discoverable (#4592)
This commit is contained in:
nesquena-hermes authored and GitHub committed 2026-06-21 01:56:54 -07:00
commit 4c45fc8a55
3 files changed
+60

No files matched your search

+6
View File
@@ -3,6 +3,12 @@
## [Unreleased]
## [v0.51.557] — 2026-06-21 — Release TP (jump-to-question stays discoverable on desktop)
### Changed
- **The per-turn "jump to question" button now stays visible on desktop/tablet, while the timestamp and action icons remain hover-only.** That affordance is navigation, not routine action chrome, so it no longer requires hovering to discover (mobile already showed it). The quieter timestamp/copy/action controls still reveal on hover or keyboard focus, keeping the transcript clean. Thanks @santastabber.
## [v0.51.556] — 2026-06-21 — Release TO (Indonesian Edge TTS voice + Listen button state fix)
### Added
+32
View File
@@ -5127,6 +5127,38 @@ main.main > #mainPlugin{display:none;}
.msg-row[data-role="assistant"]:hover .msg-foot,
.assistant-turn:hover .msg-foot,
.assistant-turn:focus-within .msg-foot { opacity: 1; }
/* Desktop/tablet keeps the per-turn jump affordance discoverable without
exposing the quieter timestamp/action chrome until hover or keyboard focus. */
@media (min-width: 641px) {
.msg-row[data-role="assistant"] .msg-foot:has(.msg-question-jump-btn),
.assistant-turn .msg-foot:has(.msg-question-jump-btn) {
opacity: 1;
}
.msg-row[data-role="assistant"] .msg-foot:has(.msg-question-jump-btn) .msg-time,
.msg-row[data-role="assistant"] .msg-foot:has(.msg-question-jump-btn) .msg-actions,
.assistant-turn .msg-foot:has(.msg-question-jump-btn) .msg-time,
.assistant-turn .msg-foot:has(.msg-question-jump-btn) .msg-actions {
opacity: 0;
transition: opacity .15s;
}
.msg-row[data-role="assistant"] .msg-foot:has(.msg-question-jump-btn) .msg-time,
.msg-row[data-role="assistant"] .msg-foot:has(.msg-question-jump-btn) .msg-actions,
.assistant-turn .msg-foot:has(.msg-question-jump-btn) .msg-time,
.assistant-turn .msg-foot:has(.msg-question-jump-btn) .msg-actions {
pointer-events: none;
}
.msg-row[data-role="assistant"]:hover .msg-foot:has(.msg-question-jump-btn) .msg-time,
.msg-row[data-role="assistant"]:hover .msg-foot:has(.msg-question-jump-btn) .msg-actions,
.msg-row[data-role="assistant"]:focus-within .msg-foot:has(.msg-question-jump-btn) .msg-time,
.msg-row[data-role="assistant"]:focus-within .msg-foot:has(.msg-question-jump-btn) .msg-actions,
.assistant-turn:hover .msg-foot:has(.msg-question-jump-btn) .msg-time,
.assistant-turn:hover .msg-foot:has(.msg-question-jump-btn) .msg-actions,
.assistant-turn:focus-within .msg-foot:has(.msg-question-jump-btn) .msg-time,
.assistant-turn:focus-within .msg-foot:has(.msg-question-jump-btn) .msg-actions {
opacity: 1;
pointer-events: auto;
}
}
.assistant-turn .msg-foot-with-usage,
.msg-row[data-role="assistant"] .msg-foot-with-usage {
opacity: 1;
+22
View File
@@ -63,6 +63,28 @@ def test_question_jump_button_matches_bottom_button_size_on_mobile():
assert ".msg-question-jump-btn span:last-child { display: none; }" in STYLE_CSS
def test_question_jump_footer_is_discoverable_on_desktop_without_exposing_actions():
# Desktop cannot rely on the mobile always-visible footer override, but the
# per-turn jump affordance is navigation, not quiet action chrome. Keep only
# the jump button discoverable at rest; reveal timestamp/actions on hover or
# keyboard focus.
block_anchor = "Desktop/tablet keeps the per-turn jump affordance discoverable"
block_start = STYLE_CSS.index(block_anchor)
block_end = STYLE_CSS.index(".assistant-turn .msg-foot-with-usage", block_start)
desktop_jump_block = STYLE_CSS[block_start:block_end]
assert "@media (min-width: 641px)" in desktop_jump_block
assert ".assistant-turn .msg-foot:has(.msg-question-jump-btn)" in desktop_jump_block
assert "opacity: 1;" in desktop_jump_block
assert ".msg-foot:has(.msg-question-jump-btn) .msg-time" in desktop_jump_block
assert ".msg-foot:has(.msg-question-jump-btn) .msg-actions" in desktop_jump_block
assert "pointer-events: none;" in desktop_jump_block
assert ".assistant-turn:hover .msg-foot:has(.msg-question-jump-btn) .msg-actions" in desktop_jump_block
assert ".assistant-turn:focus-within .msg-foot:has(.msg-question-jump-btn) .msg-actions" in desktop_jump_block
assert "pointer-events: auto;" in desktop_jump_block
def test_question_jump_text_is_localized():
for key in ("jump_to_question", "jump_to_question_label"):
assert I18N_JS.count(f"{key}:") >= 12