From 8688c3dc5c3e269ca5117678b9c03f617c117773 Mon Sep 17 00:00:00 2001 From: KQL Date: Mon, 3 Nov 2025 19:26:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Git=20=E5=AD=90?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=97=AE=E9=A2=98=E5=B9=B6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 .yoyo/snapshot 嵌套 git 仓库引用 - 从版本控制中移除 .yoyo、.serena、.claude 配置目录 - 更新 .gitignore 忽略这些配置目录 - 修复 GitHub Actions 部署错误 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .claude/settings.local.json | 45 ------------ .gitignore | 5 ++ .serena/.gitignore | 1 - .serena/memories/code_style_conventions.md | 60 ---------------- .serena/memories/project_overview.md | 40 ----------- .serena/memories/suggested_commands.md | 57 --------------- .serena/memories/task_completion_checklist.md | 49 ------------- .serena/project.yml | 68 ------------------ .yoyo/db/snapshot_embeddings.sqlitejs | Bin 90112 -> 0 bytes .yoyo/snapshot | 1 - 10 files changed, 5 insertions(+), 321 deletions(-) delete mode 100644 .claude/settings.local.json delete mode 100644 .serena/.gitignore delete mode 100644 .serena/memories/code_style_conventions.md delete mode 100644 .serena/memories/project_overview.md delete mode 100644 .serena/memories/suggested_commands.md delete mode 100644 .serena/memories/task_completion_checklist.md delete mode 100644 .serena/project.yml delete mode 100644 .yoyo/db/snapshot_embeddings.sqlitejs delete mode 160000 .yoyo/snapshot diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index dce2649f..00000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "permissions": { - "allow": [ - "mcp__serena__read_file", - "mcp__serena__activate_project", - "mcp__serena__check_onboarding_performed", - "Bash(npm start)", - "mcp__serena__search_for_pattern", - "mcp__serena__replace_regex", - "mcp__serena__list_dir", - "mcp__serena__create_text_file", - "Bash(rm:*)", - "Bash(npm run build:*)", - "mcp__serena__execute_shell_command", - "Bash(pkill:*)", - "Bash(mkdir:*)", - "Bash(cp:*)", - "Bash(git checkout:*)", - "mcp__serena__replace_symbol_body", - "mcp__serena__think_about_task_adherence", - "mcp__serena__onboarding", - "mcp__serena__write_memory", - "Bash(lsof:*)", - "Bash(PORT=3001 npm start)", - "Bash(kill:*)", - "Bash(python3:*)", - "mcp__serena__find_file", - "mcp__serena__think_about_whether_you_are_done", - "mcp__serena__read_memory", - "Bash(npx tsc:*)", - "mcp__serena__get_symbols_overview", - "Bash(grep:*)", - "Bash(find:*)", - "Bash(timeout 10 npm start)", - "Bash(npm run dev:*)", - "Bash(npm install:*)", - "Bash(npm uninstall:*)", - "Bash(git init:*)", - "Bash(git remote add:*)", - "Bash(git add:*)", - "Bash(git commit -m \"$(cat <<''EOF''\nfeat: 初始化多Agent协作系统项目并添加直播回放功能\n\n- 添加导航栏组件及直播回放按钮\n- 实现视频播放模态框\n- 配置赛博朋克风格主题\n- 添加课程首页和课程页面\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude \nEOF\n)\")" - ], - "deny": [] - } -} diff --git a/.gitignore b/.gitignore index 31544ace..10394eb7 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,8 @@ lerna-debug.log* # Temporary files *.tmp .cache/ + +# Yoyo, Serena and Claude +.yoyo/ +.serena/ +.claude/ diff --git a/.serena/.gitignore b/.serena/.gitignore deleted file mode 100644 index 14d86ad6..00000000 --- a/.serena/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/cache diff --git a/.serena/memories/code_style_conventions.md b/.serena/memories/code_style_conventions.md deleted file mode 100644 index 0fc37410..00000000 --- a/.serena/memories/code_style_conventions.md +++ /dev/null @@ -1,60 +0,0 @@ -# 代码风格与约定 - -## TypeScript风格 -- 使用TypeScript严格模式 -- 接口和类型定义使用PascalCase -- 变量和函数使用camelCase -- 常量使用UPPER_SNAKE_CASE - -## React约定 -- 组件使用PascalCase命名 -- Props接口以Props结尾 (如: HomePageProps) -- 使用函数式组件和Hooks -- 导出组件使用export default - -## 文件命名 -- 组件文件: PascalCase.tsx (如: HomePage.tsx) -- 工具文件: camelCase.ts -- 样式文件: kebab-case.css - -## CSS/Tailwind约定 -- 优先使用Tailwind CSS类 -- 自定义CSS使用CSS变量 -- 颜色变量遵循命名模式: --bg-*, --surf-*, --accent-* -- 响应式设计: mobile-first - -## 项目特定约定 -- 课程相关页面放在 pages/course/ 目录 -- 图片资源放在 src/assets/images/ -- 组件props解构使用 -- 动画使用Framer Motion库 - -## 导入顺序 -1. React相关导入 -2. 第三方库导入 -3. 本地组件导入 -4. 类型导入 -5. 样式导入 - -## 组件结构 -```tsx -import React from 'react'; -import { motion } from 'framer-motion'; - -interface ComponentProps { - // props定义 -} - -const Component: React.FC = ({ prop1, prop2 }) => { - // hooks - // 事件处理函数 - // 渲染逻辑 - return ( - - {/* JSX */} - - ); -}; - -export default Component; -``` \ No newline at end of file diff --git a/.serena/memories/project_overview.md b/.serena/memories/project_overview.md deleted file mode 100644 index 3d41debe..00000000 --- a/.serena/memories/project_overview.md +++ /dev/null @@ -1,40 +0,0 @@ -# 项目概述 - -## 项目目的 -这是一个多Agent协作系统的教学网站项目,原本是PLC教学网站,现已转换为专注于IT运维风格的多Agent系统课程教学平台。 - -## 技术栈 -- **前端框架**: React 18.2.0 + TypeScript 4.9.5 -- **路由**: React Router DOM 6.20.1 -- **动画库**: Framer Motion 12.19.2 -- **拖拽库**: @dnd-kit/core 6.3.1, react-beautiful-dnd 13.1.1 -- **样式**: Tailwind CSS 3.3.6 + 自定义CSS -- **构建工具**: React Scripts 5.0.1 - -## 项目结构 -- `src/` - - `components/` - 可复用组件 - - `pages/` - 页面组件 - - `course/` - 课程相关页面 - - `assets/` - 静态资源 -- `public/` - 公共静态资源 -- `tailwind.config.js` - Tailwind配置 -- `tsconfig.json` - TypeScript配置 - -## 课程内容 -基于课程讲义.md,包含7大模块: -1. 多Agent系统基础 -2. Agent角色设计 -3. Agent间通信机制 -4. 协作与任务管理 -5. 中央协调与管理 -6. 实际应用架构 -7. A2A协议案例讲解 - -## 设计风格 -- IT运维风格(IT风) -- 深蓝主色调 (#0f172a) -- 青色辅助色 (#0891b2) -- 绿色强调色 (#10b981) -- 玻璃拟态效果 -- 流畅动画交互 \ No newline at end of file diff --git a/.serena/memories/suggested_commands.md b/.serena/memories/suggested_commands.md deleted file mode 100644 index c6f4ee7a..00000000 --- a/.serena/memories/suggested_commands.md +++ /dev/null @@ -1,57 +0,0 @@ -# 建议命令 - -## 开发相关命令 - -### 启动开发服务器 -```bash -npm start -``` - -### 构建生产版本 -```bash -npm run build -``` - -### 运行测试 -```bash -npm run test -``` - -### 安装依赖 -```bash -npm install -``` - -## Git操作 -```bash -git status -git add . -git commit -m "提交信息" -git push -``` - -## 文件查看 -```bash -ls -la # 查看目录内容 -find . -name "*.tsx" # 查找TypeScript文件 -grep -r "搜索内容" src/ # 在src目录搜索内容 -``` - -## 系统工具 (Darwin) -```bash -open . # 在Finder中打开当前目录 -which node # 查看node路径 -ps aux | grep node # 查看node进程 -kill -9 # 结束进程 -``` - -## 开发工具 -- VS Code: 推荐的IDE -- Chrome DevTools: 调试工具 -- React DevTools: React调试扩展 - -## 注意事项 -- 系统为Darwin (macOS) -- 使用npm作为包管理器 -- TypeScript配置严格模式 -- 支持ES6+语法 \ No newline at end of file diff --git a/.serena/memories/task_completion_checklist.md b/.serena/memories/task_completion_checklist.md deleted file mode 100644 index d4ad947f..00000000 --- a/.serena/memories/task_completion_checklist.md +++ /dev/null @@ -1,49 +0,0 @@ -# 任务完成检查清单 - -## 编码任务完成后必须执行 - -### 1. 代码质量检查 -- [ ] 检查TypeScript类型错误 -- [ ] 确保所有组件正确导入导出 -- [ ] 检查控制台错误和警告 -- [ ] 验证响应式设计在不同设备上的表现 - -### 2. 功能测试 -- [ ] 测试新功能的基本操作 -- [ ] 验证路由跳转正常 -- [ ] 测试动画效果流畅 -- [ ] 检查交互元素响应性 - -### 3. 样式检查 -- [ ] 验证IT运维风格主题一致性 -- [ ] 检查颜色变量使用正确 -- [ ] 确保玻璃拟态效果正常 -- [ ] 验证Tailwind类名正确应用 - -### 4. 性能检查 -- [ ] 检查页面加载速度 -- [ ] 验证图片资源优化 -- [ ] 确保不存在内存泄漏 - -### 5. 浏览器兼容性 -- [ ] Chrome测试 -- [ ] Safari测试 (Darwin系统) -- [ ] 移动端Safari测试 - -## 课程内容任务特定检查 - -### 课程页面创建 -- [ ] 页面结构符合课程讲义.md内容 -- [ ] 包含所有必要的学习目标 -- [ ] 交互式元素功能正常 -- [ ] 导航链接正确配置 - -### 样式更新任务 -- [ ] 色彩搭配符合IT运维风格 -- [ ] 动画缓动效果自然 -- [ ] 响应式布局适配各设备 - -## 提交前最终检查 -- [ ] 运行 npm start 确保应用启动正常 -- [ ] 快速浏览所有页面确保无明显问题 -- [ ] 检查git状态,确保没有遗漏文件 \ No newline at end of file diff --git a/.serena/project.yml b/.serena/project.yml deleted file mode 100644 index 026c0bd2..00000000 --- a/.serena/project.yml +++ /dev/null @@ -1,68 +0,0 @@ -# language of the project (csharp, python, rust, java, typescript, go, cpp, or ruby) -# * For C, use cpp -# * For JavaScript, use typescript -# Special requirements: -# * csharp: Requires the presence of a .sln file in the project folder. -language: typescript - -# whether to use the project's gitignore file to ignore files -# Added on 2025-04-07 -ignore_all_files_in_gitignore: true -# list of additional paths to ignore -# same syntax as gitignore, so you can use * and ** -# Was previously called `ignored_dirs`, please update your config if you are using that. -# Added (renamed)on 2025-04-07 -ignored_paths: [] - -# whether the project is in read-only mode -# If set to true, all editing tools will be disabled and attempts to use them will result in an error -# Added on 2025-04-18 -read_only: false - - -# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details. -# Below is the complete list of tools for convenience. -# To make sure you have the latest list of tools, and to view their descriptions, -# execute `uv run scripts/print_tool_overview.py`. -# -# * `activate_project`: Activates a project by name. -# * `check_onboarding_performed`: Checks whether project onboarding was already performed. -# * `create_text_file`: Creates/overwrites a file in the project directory. -# * `delete_lines`: Deletes a range of lines within a file. -# * `delete_memory`: Deletes a memory from Serena's project-specific memory store. -# * `execute_shell_command`: Executes a shell command. -# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced. -# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type). -# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type). -# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes. -# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file or directory. -# * `initial_instructions`: Gets the initial instructions for the current project. -# Should only be used in settings where the system prompt cannot be set, -# e.g. in clients you have no control over, like Claude Desktop. -# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol. -# * `insert_at_line`: Inserts content at a given line in a file. -# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol. -# * `list_dir`: Lists files and directories in the given directory (optionally with recursion). -# * `list_memories`: Lists memories in Serena's project-specific memory store. -# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building). -# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context). -# * `read_file`: Reads a file within the project directory. -# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store. -# * `remove_project`: Removes a project from the Serena configuration. -# * `replace_lines`: Replaces a range of lines within a file with new content. -# * `replace_symbol_body`: Replaces the full definition of a symbol. -# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen. -# * `search_for_pattern`: Performs a search for a pattern in the project. -# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase. -# * `switch_modes`: Activates modes by providing a list of their names -# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information. -# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task. -# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed. -# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store. -excluded_tools: [] - -# initial prompt for the project. It will always be given to the LLM upon activating the project -# (contrary to the memories, which are loaded on demand). -initial_prompt: "" - -project_name: "education_web_外贸业务的核心流程及关键角色" diff --git a/.yoyo/db/snapshot_embeddings.sqlitejs b/.yoyo/db/snapshot_embeddings.sqlitejs deleted file mode 100644 index 823d6e5edb32acd86e139ec04cd7fcf193c0dc0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90112 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 J#L@p7|36N~YG(id diff --git a/.yoyo/snapshot b/.yoyo/snapshot deleted file mode 160000 index 2a7cdd63..00000000 --- a/.yoyo/snapshot +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2a7cdd63674a0ed66e8bfaebe9c5b565f9e5d166