refactor(evolution): move reviewer feedback orchestration into core rails - #451
refactor(evolution): move reviewer feedback orchestration into core rails#451openjiuwen-sync-bot[bot] wants to merge 4 commits into
Conversation
|
|
1 similar comment
|
|
|
head_sha: 变更摘要此 PR 将 reviewer 反馈驱动的 Skill 进化编排逻辑从平台层迁移到核心(core)层。新增了传输和产品无关的 主要改动
|
|
head_sha: 代码审查审查总结逐文件审查结果
按优先级统计
整体风险评估中等风险。核心架构变更(将 reviewer feedback 演化从 platform extras 移到 Core Rail)设计合理,内部逻辑正确。主要风险在于
💬 仅评论 |
| member_skills_dir=self._member_skills_dir, | ||
| global_skills_dir=self._global_skills_dir, | ||
| skill_name=skill_name, | ||
| ) |
There was a problem hiding this comment.
head_sha: 85e2d7dbdeae2f5063a0acf01f3b51746ce8bea8
🟡 Medium Priority
changed line: MemberSkillEvolutionRail (新文件 member_skill_evolution_rail.py) 的第 39、52 行在 async 方法 _handle_evolution_from_signals 和 _evolve_skill_with_sharing 中调用了同步方法 self._ensure_private_skill(skill_name)。
affected behavior: _ensure_private_skill(第 58-63 行)调用 ensure_member_skill_copy()(member_skill_workspace.py),该函数在第 46 行执行 portalocker.Lock(str(lock_path), timeout=30),是一个同步阻塞调用,最长可阻塞 30 秒等待文件锁。此外还有 shutil.copytree() 同步复制整个目录,对大 Skill 目录也可能较慢。
failure mode: 在 asyncio 事件循环中执行阻塞 I/O 会导致事件循环在此期间无法处理其他任务(如心跳、超时、其他成员的进化等)。当多个成员同时触发 Skill 进化时,这些阻塞调用会串行化并阻塞整个事件循环,可能导致超时、任务堆积或服务无响应。
suggested fix: 使用 asyncio.to_thread() 或在执行器中将 ensure_member_skill_copy() 调用卸载到线程池;或者将 MemberSkillEvolutionRail._ensure_private_skill() 改为异步方法并在其中使用 loop.run_in_executor() 执行阻塞 I/O。
建议:将 _ensure_private_skill 改为异步方法,使用 asyncio.to_thread() 将阻塞的 ensure_member_skill_copy() 调用卸载到线程池以避免阻塞事件循环。
9f35fb3 to
b2329da
Compare
Paired: GitHub #451 ↔ GitCode !2272
把控制代码放进core部分