V2 parity: replace the remaining hand-offs to the legacy interface so "New UI only" loses nothing
メンテナーはふだん 1 日以内に返信
@paullizer がすでに取り組んでいます。
2026年10月8日 から。
評価
この issue はまだ評価されていません。
説明
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).
- 主要言語
- Python
- スター
- 155
- フォーク
- 116
- 平均マージ
- 5時間 3分
- マージ済み PR(30日)
- 206
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/simplechat のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/simplechat#1491 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/simplechat#1370 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 8/100
microsoft/simplechat#1770 ·
メンテナーはふだん 1 日以内に返信
-
Harden deployer private networking and add optional AMPLS for Commercial and Government対応中かも @paullizer が 2 日前に担当しました。 オープンbug enhancement P1 security_improvement
microsoft/simplechat#1765 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
V2 bootstrap takes ~5s: optimize /api/v2/bootstrap backend and first paint対応中かも @paullizer が 8 日前に担当しました。 オープンenhancement P1 python
microsoft/simplechat#1725 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
microsoft/simplechat の issue をすべて見る
似ている issue
-
python triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
microsoft/semantic-kernel#14615 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
shackett/shackett-utils#19 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
UKGovernmentBEIS/control-arena#917 ·
メンテナーはふだん 1 日以内に返信