Skip to content

Commit 5350f33

Browse files
Damonclaude
authored andcommitted
feat(mcp-gateway): register the MCP page icons
Snapshot of in-flight work in this checkout: the shared page-icon map gains the MCP entries so the console's MCP pages render a glyph rather than the fallback. # Why this cannot merge alone src/shared/ui/page-icon-parity.test.ts reads ACROSS the repository boundary — it opens ../../aikey-control-master/web/src/layouts/AppShell.tsx — and requires every page-icons entry to name the same glyph the shell's nav item renders. It exists because /user/virtual-keys once showed a crowd in the nav and a key in its own header: nothing was broken, the two sides simply had no reason to agree. aikey-control-master's MCP surface PR modifies that AppShell. So these two changes are one change wearing two repositories, and merging either half alone is what turns this fence red. Verified here rather than assumed: the fence passes against both working trees as they stand (3/3). ⚠️ page-icons.ts is byte-identical in the two repositories, but NOTHING compares the two copies to each other — the CI mirror-drift check covers only web/src/shared/generated/provider-registry.ts. The copies can drift silently. Recorded, not fixed here. ⚠️ node_modules/ is NOT gitignored in this repository and was excluded by hand. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 1af7a7c commit 5350f33

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

web/src/shared/ui/page-icons.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ const USER_PAGE_GLYPH: Record<string, GlyphName> = {
3030
'access-tokens': 'token-tally',
3131
'account': 'user',
3232
'apps': 'puzzle',
33+
// 阶段8 P8 — the member's read-only MCP tool list.
34+
'mcp-tools': 'puzzle',
3335
'compliance': 'scale',
3436
'invites': 'user-plus',
3537
'overview': 'overview',
@@ -72,6 +74,15 @@ const MASTER_PAGE_GLYPH: Record<string, GlyphName> = {
7274
// individual roster) sitting directly beneath it in the same group.
7375
'directory': 'team-kind',
7476
'nodes': 'server',
77+
// MCP gateway (阶段8 P8). The glyphs mirror the sidebar exactly — that is the
78+
// whole point of this table — and the split follows what each page IS:
79+
// backends are the third-party pieces plugged in ('puzzle'), a toolset is a
80+
// bundle ('layers', like the other grouping surfaces), a grant is an access
81+
// decision ('key'), and the call log is an audit surface ('usage-audit').
82+
'mcp-backends': 'puzzle',
83+
'mcp-toolsets': 'layers',
84+
'mcp-grants': 'key',
85+
'mcp-audit': 'usage-audit',
7586
'oauth-groups': 'layers',
7687
'packs': 'library',
7788
'provider-accounts': 'cloud',
@@ -83,6 +94,12 @@ const MASTER_PAGE_GLYPH: Record<string, GlyphName> = {
8394
'virtual-keys': 'key',
8495
// 无导航项的页面:继承语义最近的父级章节图标
8596
'mock-provider': 'bot',
97+
// The API importer has no sidebar entry — it is reached from the backends
98+
// page, because importing is something you do TO a backend you just made.
99+
'mcp-import': 'puzzle',
100+
// The member's own MCP tool list has no master nav entry; it lives in the
101+
// user console and inherits the same 'puzzle' the backends page uses.
102+
'mcp-tools': 'puzzle',
86103
'settings': 'settings',
87104
'triage': 'scale',
88105
'unpriced-models': 'master-gauge',

0 commit comments

Comments
 (0)