Skip to content

fix(profile-editor): 添加市场时以 marketplace.json 的 name 作为市场名 - #59

Merged
maguowei merged 1 commit into
mainfrom
dev
Oct 9, 2026
Merged

maguowei merged 1 commit into
mainfrom
dev

Conversation

@maguowei

@maguowei maguowei commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Summary

快速添加市场时,市场名改为读取仓库 .claude-plugin/marketplace.json 的 name(Claude Code 用它作为插件 ID 的 @ 后缀),不再取仓库名末段。

 AddMarketplacePopover.handleSubmit
   validate owner/repo
-  marketplaceId = repo.split("/")[1]
+  submitting = true                       # 按钮禁用 + Spinner
+  marketplaceId = await fetchMarketplaceName(repo)
+    fetchMarketplaceManifest              # 从 fetchMarketplaceCatalog 抽出,复用超时/abort
+    parseMarketplaceName → manifest.name  # 缺失则抛错
+  catch → 内联报错 addMarketplaceErrorManifest
+  popover 关闭/重开 → token 作废旧请求,避免回写
   if duplicate → 内联报错(文案带上 {name})
   onAddMarketplace({ marketplaceId, ... })

Evidence

  • Before: 添加 owner/some-repo,而其 manifest name 为 foo 时,写入的市场名为 some-repo,与 Claude Code 实际插件 ID xxx@foo 对不上。
    After: 新增用例全部通过(vitest run BrowseMarketplaceTab.test.tsx marketplace-catalog.test.ts → 2 files, 49 tests passed):
    • 自定义 github 仓库以 marketplace.json 的 name 作为市场名
    • manifest 中的市场名已存在时内联报错且不写回
    • 读取 manifest 失败时内联报错且不写回
    • fetchMarketplaceName 返回 manifest 的 name 而非仓库名 / 缺少 name 时抛错

Merge Danger

Door: two-way

纯前端改动,无数据迁移;已添加的市场不受影响。

Blast Radius: 局部

仅影响「浏览插件市场 → 快速添加自定义仓库」流程。现在提交需要联网读取 raw manifest,无 manifest 或缺 name 的仓库将无法通过快速添加(可改用高级配置)。

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@maguowei
maguowei merged commit 53083d4 into main Oct 9, 2026
13 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.

1 participant