🎃 Add a ⌘K / Ctrl+K command palette to the admin UI
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 65/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- playwright, react, tailwindcss, typescript
- 領域
- frontend
調査の方向性
Start with app-sidebar.tsx and settings/layout.tsx to understand their navigation lists and access filters, then read app-shell.tsx to find where the palette should be mounted. Check api.ts and the redesign.spec.ts Playwright pattern; implement the shared navigation and palette, then run the new command-palette.spec.ts and frontend lint. Done means the listed shortcuts, filters, navigation, mobile trigger, and accessibility behavior pass the acceptance criteria.
索引モデルが issue の本文から書いたものです。
説明
Part of the October Challenge #846.
Why
Workspaces grow to dozens of connectors and several MCP servers, and getting to "the SAP connector's tools" means sidebar → Connectors → scroll → click. A command palette (as in Linear, Vercel, GitHub, Supabase) lets power users jump anywhere with the keyboard. There is no keyboard navigation of this kind in the frontend today.
Self-hosted vs Cloud
- Self-hosted: enabled in Community and Business.
- Cloud (
DEPLOYMENT_MODE=cloud): enabled. Entries for self-hosted-only pages (e.g. Single sign-on) are hidden, exactly like the settings sub-navigation does. - Who can use it: every signed-in user. Entries for admin-only pages (Users, Roles, Single sign-on, License, Administration) are shown only when
user.role === 'ADMIN'. This is a convenience filter; the pages and API already enforce access, so do not rely on the palette for security. Connectors and MCP servers come from the same org-scoped endpoints the list pages use, so a user only ever sees their current organization's items.
What to build
- Add
cmdk(small, unstyled, built on@radix-ui/react-dialog, which is already a dependency). No other new dependency. - New
packages/frontend/src/components/command-palette.tsx, mounted once inAppShellso it exists on every authenticated page and never on/login. - Open with
⌘K(macOS) /Ctrl+K(others); close withEsc. Add a small "Search ⌘K" trigger button in the sidebar header so touch and mouse users can reach it too (showCtrl Kon non-Mac). - Groups:
- Pages: the sidebar
NAVentries + settings entries. Refactor so both the sidebar/settings layout and the palette read one list (export it, addadminOnly/selfHostedOnlyflags) instead of duplicating hrefs. - Connectors:
connectors.list(token)→/connectors/<id>. - MCP servers:
mcpServers.list(token)→/mcp-server/<id>. - Actions: "New connector" (
/connectors/new), "Toggle theme" (useTheme().setTheme), "Switch organization → " for each entry oforgs(callsswitchOrg).
- Pages: the sidebar
- Fetch connectors/servers lazily on first open, cache for the session, refetch on org switch. Show a loading row; on an API error show the static groups only.
- Fuzzy search via cmdk's built-in filter; up to ~8 results per group. Style with the existing CSS variables (
--surface,--border,--text-2, …) so light and dark themes work.
Where to look
packages/frontend/package.json— current UI deps (Radix primitives,lucide-react, Tailwind 4; no palette lib yet).packages/frontend/src/components/app-sidebar.tsx:43—NAVgroups to reuse;:90useAuth()withorgs,switchOrg.packages/frontend/src/app/settings/layout.tsx:27—SIDEBAR_SECTIONSwithadminOnly/selfHostedOnly;:54–55howisAdminandisCloudare derived (useAuth()→user.role,deploymentMode).packages/frontend/src/components/app-shell.tsx:87— whereAppSidebaris rendered; mount the palette next to it.packages/frontend/src/lib/api.ts:313(connectors.list),:1360(mcpServers.list).packages/frontend/src/lib/theme-context.tsx:20—useTheme().packages/frontend/tests/e2e/redesign.spec.ts— fake-session +page.route('/api/…')pattern for Playwright tests without a backend.
Acceptance criteria
-
Ctrl+Kopens the palette on/,/connectorsand a settings page; typing a connector name and pressing Enter navigates to it. - As
VIEWER/EDITOR, admin-only pages are not listed; asADMINthey are. WithdeploymentMode: 'cloud'(stub/health/server-info), "Single sign-on" is not listed. - Focus is trapped while open and returns to the previous element on close; the dialog has an accessible label.
- The browser's own
Ctrl+Kshortcut ispreventDefaulted only when the palette handles it. - Playwright spec
packages/frontend/tests/e2e/command-palette.spec.ts(run withnpm run test:e2e --workspace=packages/frontend) covering the points above, plus a mobile-width check that the trigger button opens it. -
npm run lint --workspace=packages/frontendpasses; bundle impact noted in the PR (cmdk is ~10 kB gzipped). - Docs: one line in
README.mdfeatures list.
Out of scope
- Searching tools across connectors, Audit Log entries or Knowledge Graph nodes (needs a search endpoint — follow-up).
- Running tools or destructive actions (delete connector, revoke key) from the palette.
- Recently-visited items / user-configurable shortcuts.
- Translating palette strings (see the i18n foundation issue #859).
Size
M (1–2 days).
How to claim
Comment "I'd like to work on this" and we'll assign you. Rules in #846.
- 主要言語
- TypeScript
- スター
- 856
- フォーク
- 82
- 平均マージ
- 8時間 27分
- マージ済み PR(30日)
- 104
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
HelpCode-ai/anythingmcp のほかの issue
-
good first issue hacktoberfest
難易度 2/5 半日 初心者へのやさしさ 70/100
HelpCode-ai/anythingmcp#996 ·
メンテナーはふだん 1 日以内に返信
-
good first issue hacktoberfest
難易度 2/5 半日 初心者へのやさしさ 72/100
HelpCode-ai/anythingmcp#995 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue hacktoberfest help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
HelpCode-ai/anythingmcp#982 ·
メンテナーはふだん 1 日以内に返信
-
good first issue hacktoberfest
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
HelpCode-ai/anythingmcp#745 ·
メンテナーはふだん 1 日以内に返信
-
🐣 Good first issue: contribute a new MCP adapter再び着手できるかも @7k777 が 21 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンenhancement good first issue hacktoberfest help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
HelpCode-ai/anythingmcp#150 · コメント 18 件 ·
メンテナーはふだん 1 日以内に返信
HelpCode-ai/anythingmcp の issue をすべて見る
似ている issue
-
🐛 Bug: Calendar work items cannot be opened on mobile対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
jaegertracing/jaeger-ui#4596 ·
メンテナーはふだん 1 日以内に返信
-
area:tui enhancement platform:macos
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
anthropics/claude-code#101490 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
netlify/netlify-mcp#75 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信