feat: 新增技能编排引擎和工作流构建器组件
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

refactor: 统一Hands系统常量到单个源文件
refactor: 更新Hands中文名称和描述

fix: 修复技能市场在连接状态变化时重新加载
fix: 修复身份变更提案的错误处理逻辑

docs: 更新多个功能文档的验证状态和实现位置
docs: 更新Hands系统文档

test: 添加测试文件验证工作区路径
This commit is contained in:
iven
2026-03-25 08:27:25 +08:00
parent 9c781f5f2a
commit aa6a9cbd84
110 changed files with 12384 additions and 1337 deletions

View File

@@ -25,6 +25,7 @@ import {
RefreshCw,
} from 'lucide-react';
import { useConfigStore } from '../store/configStore';
import { useConnectionStore } from '../store/connectionStore';
import {
adaptSkillsCatalog,
type SkillDisplay,
@@ -250,6 +251,9 @@ export function SkillMarket({
const loadSkillsCatalog = useConfigStore((s) => s.loadSkillsCatalog);
const updateSkill = useConfigStore((s) => s.updateSkill);
// Watch connection state to reload skills when connected
const connectionState = useConnectionStore((s) => s.connectionState);
const [searchQuery, setSearchQuery] = useState('');
const [categoryFilter, setCategoryFilter] = useState<CategoryFilter>('all');
const [expandedSkillId, setExpandedSkillId] = useState<string | null>(null);
@@ -258,10 +262,12 @@ export function SkillMarket({
// Adapt skills to display format
const skills = useMemo(() => adaptSkillsCatalog(skillsCatalog), [skillsCatalog]);
// Load skills on mount
// Load skills on mount and when connection state changes to 'connected'
useEffect(() => {
loadSkillsCatalog();
}, [loadSkillsCatalog]);
if (connectionState === 'connected') {
loadSkillsCatalog();
}
}, [loadSkillsCatalog, connectionState]);
// Filter skills
const filteredSkills = useMemo(() => {