V2 parity: replace the remaining hand-offs to the legacy interface so "New UI only" loses nothing
I maintainer di solito rispondono entro 1 giorno
@paullizer ci sta già lavorando.
Dal 8/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
The new React interface still sends people to legacy (classic) pages for some features it hasn't rebuilt yet. The legacy routing work moves the legacy interface under /legacy/... and adds a New UI only admin mode. In that mode non-admins can't open legacy pages, so every hand-off below becomes a dead end until it has a native V2 replacement.
Line numbers are from paullizer-react-v2-ui @ f60b982a0 (version 0.261.302) and will drift. Paths are relative to application/v2_ui/src unless noted.
Scope
| # | Area | Gap | What V2 does today | Evidence | Work to close |
|---|---|---|---|---|---|
| 1 | Agents | Agent catalogue | /agents is a placeholder with an "Open the agent catalogue" link to classic |
App.tsx:293-302, pages/PlaceholderPage.tsx |
Build the V2 agent catalogue |
| 2 | Chat | M365 pending-action card | Notices with m365_pending_action open classic chat, the only page that renders the card |
lib/notificationLinks.ts:361-365 |
Render pending M365 actions (approve/decline) in V2 chat; route these notices to /chat |
| 3 | Chat | Aggregate public chat | Public directory's chat action opens classic /chats?openSearch=1&scope=public |
pages/PublicDirectoryPage.tsx:52-56, 236-248 |
Add an "all public workspaces" chat scope |
| 4 | Workspaces | File sources: add/configure | "Adding and configuring a source is still done in the classic workspace" (personal; group/public via classicPath) |
pages/workspace/FileSourcesSection.tsx:150-153, lib/fileSourceWorkbench.ts:269, 556, 665 |
Create/configure flows for personal, group and public sources |
| 5 | Workspaces | Identities: add | "Adding one is still done in the classic workspace" | pages/workspace/IdentitiesSection.tsx:110-113, lib/identityWorkbench.ts:167, 307, 374 |
Identity creation in all scopes |
| 6 | Workspaces | Endpoint editor | V2 lists, enables/disables and deletes endpoints only; the connection editor (provider, API versions, auth, model list) stays in classic | pages/workspace/EndpointsSection.tsx:1-6 |
Endpoint connection editor in V2 |
| 7 | Group workspace | Document tools incl. upgrading legacy documents | "Open classic tools for group documents" | pages/workspace/DocumentsSection.tsx:61-62, pages/GroupWorkspacePage.tsx:467 |
Port document upgrade and remaining tools |
| 8 | Public workspace | Document tools incl. upgrading legacy documents | "Open classic tools to upgrade legacy public workspace documents" | pages/workspace/DocumentsSection.tsx:112-113, pages/PublicWorkspacePage.tsx:336 |
Same as #7 for public scope |
| 9 | Group workspace | Delete group | "Delete group (classic)", completed on the classic group page | pages/workspace/GroupSettingsSection.tsx:38-43, pages/GroupWorkspacePage.tsx:539 |
Deletion with prerequisite checks in V2 |
| 10 | Group workspace | Manage an inactive/unknown-status group | "Manage group (classic)" button | pages/GroupWorkspacePage.tsx:395-398 (activation redirects near :358, :437, verify) |
Status management and reactivation in V2 |
| 11 | Public workspace | Delete public workspace | Confirms, then redirects to classic /public_workspaces/<id> |
pages/PublicWorkspacePage.tsx:221-242, 326 |
Deletion in V2 |
| 12 | Public workspace | Tags section | Only documents, prompts, identities and sync are native; Tags says it is available in the classic workspace | pages/PublicWorkspacePage.tsx:155-160, 348-351, lib/workspaceContext.ts:31-33 |
Public workspace tag management |
| 13 | Workspaces | Danger-zone delete (shared settings section) | "Open classic" confirm calls onOpenClassic() |
pages/workspace/WorkspaceSettingsSection.tsx:~814-831 |
Verify which scopes reach it; implement natively (overlaps #9/#11) |
| 14 | Notifications | Full notifications list | Bell panel "View all" opens classic /notifications; there is no V2 page |
components/layout/NotificationPanel.tsx:478 |
V2 notifications page |
| 15 | Notifications | Unrecognized links | classic() fallback for any link without a V2 route |
lib/notificationLinks.ts:439 |
A V2 route for every server-emitted link type |
| 16 | Workflows | Workflow activity page | Legacy /workflow-activity has no V2 page; V2 maps only runs it can verify against the notice, otherwise falls back to classic |
lib/notificationLinks.ts:163-177, 374-377; application/single_app/route_frontend_chats.py:1080 |
V2 equivalent for the remaining cases |
| 17 | Control Center | Management section | V2 /control-center says it is being built and links to classic /admin/control-center |
pages/ControlCenterPage.tsx:42-45, components/admin/RefreshScheduleStatus.tsx:143 |
Complete the V2 Control Center |
| 18 | Admin Settings | DAI diagnostics | A classic_only related link: the diagnostics are drawn only by the classic Scale › Cosmos › DAI Metrics pane |
application/single_app/admin_settings_fields.py:8313-8319, components/admin/RelatedSectionLink.tsx:41 |
Render the diagnostics in V2; drop classic_only |
| 19 | Admin Settings | Requirement links | Falls back to classic /admin/settings#<section> when it can't navigate in-page |
components/admin/SettingsSection.tsx:193-205 |
Make every requirement target navigable in V2 |
| 20 | Admin Settings | Chat-mode notice | Says the single endpoint's address, credentials and deployment are set on the classic page (#model-endpoints) |
components/admin/ChatModeNotice.tsx:62-67 |
Verify V2 renders that configuration; link in-page |
| 21 | Admin Settings | Latest Features shortcuts | Shortcuts V2 can't follow in place open classic admin tabs | lib/latestFeatures.ts:255-258 |
Map each shortcut to a V2 section |
| 22 | Admin Settings | Fallback-scan note | Links to classic only when undeclared enable_* keys appear. Today 106 of 107 sections are declared; the remaining one (standard-citations-section) is informational text |
pages/AdminSettingsPage.tsx:2099-2102, 2412-2418 |
No action now; keep the admin-settings parity test green |
| 23 | Errors | Boot failure | BootError offers "Open the classic interface" | App.tsx:96-100 |
V2-native recovery (retry / sign out) |
| 24 | Cleanup | Dead config | classicHref: '/profile?tab=groups' / '/profile?tab=public-workspaces' are never read |
lib/workspaces.ts:68, 121, 152 |
Remove |
Legacy pages with partial or unverified V2 counterparts
| Legacy page | V2 counterpart | Status |
|---|---|---|
/conversations |
V2 chat conversation list | Verify parity (search, bulk actions, export) |
/profile tabs (stats, settings, groups, public-workspaces, feedback, violations) |
/settings tabs (stats, preferences, groups, public, feedback, violations) |
Tabs exist; verify per-feature parity, especially M365 profile settings, fact memory and stats export |
/my_feedback, /safety_violations |
/settings?tab=feedback, /settings?tab=violations |
Verify |
/agents, /notifications, /admin/control-center |
None or placeholder | #1, #14, #17 |
Pages with confirmed counterparts: chat, conversation deep links, approvals, content review, support pages, admin feedback and safety review, terms of use and access restricted.
Acceptance Criteria
- Each row above is replaced by a native V2 flow or explicitly retired
- After the routing work lands,
application/v2_ui/srchas no production hand-offs left to/legacy/... - The new UI works inside the Microsoft Teams tab (SSO token exchange,
frame-ancestors,SameSite=Nonecookies).TEAMS_SUCCESS_REDIRECT_PATH(default/chats) will follow each user's interface - The separately hosted SPA mode (
V2_UI_ALLOWED_ORIGIN) is smoke-tested with the root basename - Functional tests cover each replaced flow; the admin-settings parity test stays green
Notes
- Rows #7–#13 may be residual items from #1542 (V2 shared workspaces: native group and public workspaces). Close them there if that is the better home.
- Companion routing issue: #1723 (new UI at root, legacy under
/legacy, admin interface policy).
- Lingua principale
- Python
- Stelle
- 155
- Fork
- 116
- Merge medio
- 5h 5m
- PR unite (30g)
- 204
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/simplechat
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/simplechat#1491 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/simplechat#1370 ·
I maintainer di solito rispondono entro 1 giorno
-
Harden deployer private networking and add optional AMPLS for Commercial and GovernmentForse già presa @paullizer l’ha presa 1 giorno fa. Apertabug enhancement P1 security_improvement
microsoft/simplechat#1765 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
V2 bootstrap takes ~5s: optimize /api/v2/bootstrap backend and first paintForse già presa @paullizer l’ha presa 6 giorni fa. Apertaenhancement P1 python
microsoft/simplechat#1725 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Serve the new UI at the main URLs, move the legacy UI under /legacy, and let admins control interface accessForse già presa @paullizer l’ha presa 6 giorni fa. ApertaCreated By Copilot enhancement P1
microsoft/simplechat#1723 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/simplechat
Issue simili
-
`burr` fails to start when the Python path has a space in itForse già presa @enekoreto l’ha presa oggi. Apertastatus/needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 5 giorni
-
gemini 出现了新的域名需要加入Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
debpalash/VoiceStudio#2903 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dagster-io/community-integrations#367 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
aws-samples/sample-per-model-bedrock#243 ·
I maintainer di solito rispondono entro 1 giorno