Skip to content

Release v0.51.557 — desktop question-jump discoverable (#4592)#4609

Merged
nesquena-hermes merged 2 commits into
masterfrom
stage-4592
Jun 21, 2026
Merged

Release v0.51.557 — desktop question-jump discoverable (#4592)#4609
nesquena-hermes merged 2 commits into
masterfrom
stage-4592

Conversation

@nesquena-hermes

Copy link
Copy Markdown
Collaborator

Release v0.51.557 — Release TP (jump-to-question discoverable on desktop)

Ships #4592 (santastabber). CSS-only + test.

Changed

  • Desktop/tablet keeps the per-turn jump-to-question button visible (navigation), while timestamp/action chrome stays hover/focus-only (:has(.msg-question-jump-btn) selectors, ≥641px). Preserves the clean-transcript / actions-on-hover preference. Thanks @santastabber.

Gate

  • Full suite: 9936 passed, 0 failed
  • Codex: SAFE TO SHIP (scoped to ≥641px, no regression to footers without a jump button, no mobile-path change)
  • Screenshot verified: at rest only the jump button shows; timestamp/actions hidden until hover.

nesquena-hermes and others added 2 commits June 21, 2026 08:52
…ton discoverable on desktop (#2246 follow-up)

santastabber: desktop ≥641px keeps the jump-to-question affordance visible (it's navigation) while
timestamp/actions chrome stays hover/focus-only, via :has(.msg-question-jump-btn) selectors. CSS+test only.
Co-authored-by: santastabber <santastabber@users.noreply.github.com>
@greptile-apps

greptile-apps Bot commented Jun 21, 2026

Copy link
Copy Markdown

Greptile Summary

This release PR ships the jump-to-question discoverability fix for desktop (#4592): the per-turn jump button now stays visible at rest on ≥641px viewports, while timestamp and action icons remain hidden until hover or keyboard focus, preserving the clean-transcript aesthetic on all other footers.

  • static/style.css: A new @media (min-width: 641px) block uses :has(.msg-question-jump-btn) to pin the footer opacity to 1, then counter-hides .msg-time/.msg-actions (with opacity: 0; pointer-events: none) and restores them on :hover/:focus-within; footers without the jump button are untouched.
  • tests/test_issue2246_question_jump.py: Adds test_question_jump_footer_is_discoverable_on_desktop_without_exposing_actions, anchoring on the CSS comment to extract the new block and asserting the required selectors and properties.
  • CHANGELOG.md: v0.51.557 entry added by the release agent following the standard format.

Confidence Score: 4/5

Safe to merge; the change is CSS-only, scoped to ≥641px viewports with a jump button present, and fully covered by the new test.

The logic is correct and well-scoped. The only noteworthy thing is a pair of identical CSS selector blocks that declare opacity/transition and pointer-events separately; merging them would reduce duplication but has no functional impact.

static/style.css — the duplicate selector blocks at lines 5137–5149 are worth tidying up.

Important Files Changed

Filename Overview
static/style.css Adds a @media (min-width: 641px) block that pins .msg-foot opacity to 1 when it contains a jump button, then hides .msg-time/.msg-actions at rest and restores them on hover/focus-within; two consecutive identical selector blocks can be merged.
tests/test_issue2246_question_jump.py Adds a new string-presence test that anchors on the CSS comment to extract the desktop block and asserts the required selectors and properties are present; consistent with the existing test style in this file.
CHANGELOG.md Adds v0.51.557 release entry for this change, following the established release-agent changelog format.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["msg-foot rendered"] --> B{"Contains .msg-question-jump-btn?"}
    B -- No --> C["opacity: 0 at rest\nRevealed on hover/focus-within\n(existing behaviour, all viewports)"]
    B -- Yes --> D{"Viewport ≥ 641px?"}
    D -- No --> E["Mobile: footer already\nalways-visible (existing rule)"]
    D -- Yes --> F[".msg-foot opacity: 1\n(jump button visible at rest)"]
    F --> G[".msg-time & .msg-actions\nopacity: 0 + pointer-events: none"]
    G --> H{"Row hover or focus-within?"}
    H -- No --> I["timestamp/actions stay hidden"]
    H -- Yes --> J[".msg-time & .msg-actions\nopacity: 1 + pointer-events: auto"]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A["msg-foot rendered"] --> B{"Contains .msg-question-jump-btn?"}
    B -- No --> C["opacity: 0 at rest\nRevealed on hover/focus-within\n(existing behaviour, all viewports)"]
    B -- Yes --> D{"Viewport ≥ 641px?"}
    D -- No --> E["Mobile: footer already\nalways-visible (existing rule)"]
    D -- Yes --> F[".msg-foot opacity: 1\n(jump button visible at rest)"]
    F --> G[".msg-time & .msg-actions\nopacity: 0 + pointer-events: none"]
    G --> H{"Row hover or focus-within?"}
    H -- No --> I["timestamp/actions stay hidden"]
    H -- Yes --> J[".msg-time & .msg-actions\nopacity: 1 + pointer-events: auto"]
Loading

Reviews (1): Last reviewed commit: "docs(release): stamp v0.51.557 — desktop..." | Re-trigger Greptile

Comment thread static/style.css
Comment on lines +5137 to +5149
.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;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The two consecutive rule blocks at lines 5137–5149 target the exact same four selectors but declare opacity/transition in the first block and pointer-events in the second. They can be merged into one block without changing specificity or cascade order, reducing selector repetition by half.

Suggested change
.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"] .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;
pointer-events: none;
}

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@nesquena-hermes nesquena-hermes merged commit 4c45fc8 into master Jun 21, 2026
11 checks passed
@nesquena-hermes nesquena-hermes deleted the stage-4592 branch June 21, 2026 08:56
@cutter-sh

cutter-sh Bot commented Jun 21, 2026

Copy link
Copy Markdown

🎬 Cutter preview — PR #4609

/conversation
/conversation — Jump-to-question button stays visible under each assistant reply, while timestamp and actions appear only on hover.

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.

1 participant