Skip to content

Improve V2 mobile navigation, chat, and workspace documents - #1750

Merged
Paul Lizer (paullizer) merged 3 commits into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-v2-mobile-experience
Oct 11, 2026
Merged

Paul Lizer (paullizer) merged 3 commits into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-v2-mobile-experience

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Permanent global and workspace rails squeezed phone chat input and document browsing. Below 768px, navigation now opens from the shared header and workspace sections use a disclosure, leaving the existing page full-width when closed.
  • Reuse the same components, handlers, scope APIs, and permission boundaries. Chat keeps attachment, voice, and Send/Stop together; secondary tools and document view options expand on demand. Document rows prioritize readable names, status, and selection.
  • Preserve desktop navigation and document preferences across resizing. Add focus handling, mobile touch targets, dynamic viewport/safe-area support, and responsive regression coverage without separate mobile routes or dependencies.

Linked issue

N/A. No tracking issue was requested.

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

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.322 -> 0.261.323. No deployer changes.

Testing / validation

  • npm --prefix .\application\v2_ui run build -- --outDir ..\..\ui_tests\artifacts\orchestration-plan-editor and npm --prefix .\application\v2_ui run build: passed TypeScript and production builds; existing large-bundle warning remains.
  • python -m pytest .\ui_tests\test_v2_mobile_navigation.py .\ui_tests\test_v2_mobile_chat_layout.py .\ui_tests\test_v2_mobile_workspace_documents.py .\ui_tests\test_v2_sidebar_conversation_scroll.py::test_the_phone_drawer_holds_search_under_new_chat -q --maxfail=2: 23 passed, including enlarged text, classification banner, phone widths, focus return, all three document scopes, and desktop preference preservation.
  • python -m pytest .\ui_tests\test_v2_mobile_navigation.py .\ui_tests\test_v2_mobile_chat_layout.py .\ui_tests\test_v2_mobile_workspace_documents.py .\ui_tests\test_v2_sidebar_conversation_scroll.py::test_the_phone_drawer_holds_search_under_new_chat .\ui_tests\test_v2_group_documents.py::test_document_layout .\ui_tests\test_v2_public_documents.py::test_document_layout -q --maxfail=3: 29 passed, one outdated fixed-row-count assertion failed. Replaced that assertion with touch-target and available-space capacity checks; the final focused command above passes. All 8 group/public document layout cases passed.
  • $env:PYTHONPATH = (Resolve-Path .\ui_tests\fixtures).Path; python -m pytest .\ui_tests\test_v2_group_classic_handoffs.py::test_classic_cleanup_layout .\ui_tests\test_v2_shared_workspace_overview_counts.py::test_overview_shows_available_resource_totals -q --maxfail=2: 12 passed. Legacy fixture imports require that path for standalone collection.
  • python -m pytest .\functional_tests\test_v2_mobile_layout.py .\functional_tests\test_v2_sidebar_account_menu.py .\functional_tests\test_v2_workspace_sections.py .\functional_tests\test_v2_documents_explorer.py -q --disable-warnings: 40 passed.
  • python .\functional_tests\test_docs_app_surface_coverage.py: 7/7 passed. python .\functional_tests\test_docs_site_quality.py: 6/6 passed. git diff --check: passed.
  • Reviewed phone and desktop screenshots together. Actual iPhone Safari software-keyboard, browser-chrome, and home-indicator behavior was not tested on a real device; Chromium emulation does not certify it.
  • An existing conversation-drawer source test expects a bootstrap gate in route_backend_v2.py that is also absent at HEAD. No backend code was changed to address that unrelated baseline failure.

Documentation

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

Release notes left unchanged pending the user's decision. Updated V2 shell/workspace/document feature notes and chat-control reference; added docs/guides/v2-mobile.md and docs/explanation/fixes/V2_MOBILE_LAYOUT_FIX.md. Regenerated inventory has no substantive surface differences.

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 new Flask routes or settings-response changes. Browser test artifacts and compiled assets remain ignored.

Reuse existing components with header-based mobile navigation, expandable workspace and chat controls, and readable document rows. Preserve desktop preferences and add responsive regression coverage and documentation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread ui_tests/test_v2_mobile_chat_layout.py Fixed
Comment thread ui_tests/test_v2_mobile_navigation.py Fixed
Comment thread ui_tests/test_v2_mobile_workspace_documents.py Fixed
Comment thread ui_tests/test_v2_mobile_workspace_documents.py Fixed
Replace unused fixture imports with pytest plugin registration while preserving standalone test discovery. Address CodeQL review feedback and record version 0.261.324.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Resolve the application version conflict by retaining 0.261.324. Preserve incoming Office transformation changes and existing responsive UI behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) merged commit 2bc278a into microsoft:paullizer-react-v2-ui Oct 11, 2026
11 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.

2 participants