Skip to content

Fix V2 conversation menu layout and bottom-edge clipping - #1889

Merged
Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-conversation-menu
Nov 5, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-conversation-menu

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

Conversation menus near the bottom of the V2 sidebar could disappear behind the fixed footer, while a bold reference block pushed common actions down. This makes the menu easier to scan and usable without scrolling the conversation list.

  • Keep Rename, Share, Pin, Hide, and Export first, followed by Send to conversation, Use in this chat, and Copy reference. Remove the redundant heading, align all rows, and separate Delete/Leave.
  • Reuse the shared body-portalled popover with opt-in, measured viewport placement that opens upward when needed. Preserve mobile touch targets, keyboard dismissal, and sidebar scroll/selection state without changing existing header popover defaults.
  • Preserve private-source eligibility, sharing and removal permissions, reference tokens, export, and handoff review. Report unavailable or denied clipboard access instead of failing silently.
  • Update the guide, chat-control reference, fix documentation, and regression coverage for application version 0.261.406.
Desktop and mobile screenshots

Desktop

Flat conversation menu opening above a low sidebar row on desktop

Mobile

Touch-sized conversation menu fully visible above its trigger on mobile

Linked issue

N/A - no associated issue.

Release Notes & Latest Features

  • New Feature
  • Bug Fix
  • UI Enhancement
  • Breaking Change
  • Internal only

Is this visible to end users?

  • Yes
  • No

Is this admin-facing (Admin Settings, governance, deployment, config)?

  • Yes
  • No

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

Screenshots are included for review; no Latest Feature card is planned.

Version bump

  • application/single_app/config.py VERSION third segment bumped, or not needed because this is docs-only
  • deployers/version.txt bumped, or not needed because deployers/ was not changed

Application version: 0.261.405 -> 0.261.406. No deployer files changed.

Testing / validation

  • npm --prefix .\application\v2_ui run typecheck - passed.
  • npm --prefix .\application\v2_ui run build -- --outDir ..\..\ui_tests\artifacts\orchestration-plan-editor - passed, with Vite's large-chunk size advisory.
  • python -m pytest .\functional_tests\test_v2_sidebar_conversation_scroll.py .\functional_tests\test_v2_composer_picker_placement.py .\functional_tests\test_v2_mobile_layout.py .\functional_tests\test_v2_conversation_multiselect.py .\functional_tests\test_v2_conversation_export.py -q --disable-warnings - 47 passed.
  • python -O .\functional_tests\test_v2_composer_picker_placement.py - passed; Node geometry checks also execute under optimized Python.
  • python -m pytest .\ui_tests\test_v2_sidebar_conversation_scroll.py .\ui_tests\test_v2_conversation_references.py .\ui_tests\test_v2_conversation_handoffs.py -q --disable-warnings - 24 passed.
  • python -m pytest .\ui_tests\test_v2_mobile_headers.py -k "loading_status or (explicit_actions and (320 or 393))" -q --disable-warnings - 9 passed.
  • python .\scripts\build_docs_inventory.py - passed; generated inventory has no content changes.
  • python .\functional_tests\test_docs_app_surface_coverage.py - 7 checks passed.
  • python .\functional_tests\test_docs_site_quality.py - 6 checks passed.
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --check - passed.
  • Visually inspected production-CSS desktop and phone screenshots in both light and dark themes. Browser regressions verify action order/alignment, viewport bounds, hit targets, unchanged sidebar scroll position, keyboard focus, resize/scroll dismissal, short windows, enlarged text, and clipboard feedback.

Documentation

  • Release notes updated, or not needed
  • Feature documentation updated, or not needed
  • Fix documentation updated, or not needed

Updated docs/guides/reference-and-send-conversations.md and docs/reference/chat-controls.md. Added docs/explanation/fixes/V2_CONVERSATION_MENU_LAYOUT_FIX.md with root cause and validation evidence. Release notes were left unchanged pending a user decision.

Security checklist

  • New Flask routes include @swagger_route(security=get_auth_security())
  • Settings sent to non-admin frontends use sanitize_settings_for_user()
  • Browser JavaScript is served from local SimpleChat static assets only; no CDN-hosted JS
  • No secrets, keys, connection strings, or local-only artifacts are included

No routes or settings-response boundaries changed. Browser dependencies remain local, and screenshots use synthetic test data rather than live conversations.

Flatten reuse actions below common conversation controls, separate destructive actions, and use viewport-aware portalled menus without scrolling the sidebar. Preserve keyboard, mobile, and permission behavior with focused regression coverage and versioned documentation.

Co-authored-by: Copilot App <[email protected]>
@paullizer
Paul Lizer (paullizer) merged commit 860c27c into microsoft:paullizer-react-v2-ui Nov 5, 2026
11 of 12 checks passed
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