fix(skills): 修复导入技能时 SKILL 内容丢失导致无法正常工作
- 前端 handleSubmit/handleCreateApp 发送 skillsContent;handleHubImport 对 skill 把目录 URL 作为 download_url - 后端 upload_app 对 skill 类型写入 skill_content(手动粘贴或 Hub 抓取) - 新增 _fetch_skill_content 按目录 URL 抓取真实 SKILL.md 回填(best-effort,仅接受有效 markdown) - 清理 50 条空壳 skill 记录(skill_content 为空,不可恢复) - 经 E2E 验证:手动粘贴/Hub 抓取/MCP 重导三条路径均能正确落库
This commit is contained in:
1 parent
47d38ca173
commit
2ae5d9f9b5
2 files changed
+100
-1
No files matched your search
@@ -544,6 +544,8 @@ const CreateToolModal: React.FC<CreateToolModalProps> = ({ appType, onClose, onS
|
||||
// 关键修复:把粘贴的 MCP 传输代码随提交一起发给后端,否则后端拿不到代码、URL 为空、永远连不上
|
||||
mcpCode: appType === 'mcp' ? mcpCode.trim() : undefined,
|
||||
mcpTransport: appType === 'mcp' ? mcpTransport : undefined,
|
||||
// 关键修复:把粘贴/上传的 SKILL 内容随提交一起发给后端,否则 skill_content 为空、技能在对话里失效
|
||||
skillContent: appType === 'skill' ? (skillsContent.trim() || skillsFile || '') : undefined,
|
||||
} as any);
|
||||
}, 1500);
|
||||
}, 2000);
|
||||
@@ -1506,6 +1508,11 @@ const MarketPage: React.FC = () => {
|
||||
payload.download_url = mcpCode;
|
||||
payload.mcp_transport = (data as any).mcpTransport || 'streamable_http';
|
||||
}
|
||||
// 关键修复:手动创建的 skill 把真实 SKILL 内容作为 skill_content 传给后端落库
|
||||
const skillContent = (data as any).skillContent as string | undefined;
|
||||
if (data.type === 'skill' && skillContent) {
|
||||
payload.skill_content = skillContent;
|
||||
}
|
||||
await marketAPI.createApp(payload);
|
||||
// 重新加载列表
|
||||
loadApps();
|
||||
@@ -1533,6 +1540,10 @@ const MarketPage: React.FC = () => {
|
||||
if (isMcp && url) {
|
||||
payload.download_url = url;
|
||||
}
|
||||
// skill Hub 导入:把目录 URL 作为 download_url 发后端,后端自动抓取真实 SKILL.md 回填 skill_content
|
||||
if (!isMcp && url) {
|
||||
payload.download_url = url;
|
||||
}
|
||||
await marketAPI.createApp(payload);
|
||||
// 重新加载列表
|
||||
loadApps();
|
||||
|
||||
Reference in new issue
Block a user