Skip to content

perf(buddy): 按需加载技能并缓存元数据 - #206

Merged
shanyuhai123 merged 3 commits into
useLexora:masterfrom
QAyong:codex/skill-metadata-chat-prep
Sep 28, 2026
Merged

shanyuhai123 merged 3 commits into
useLexora:masterfrom
QAyong:codex/skill-metadata-chat-prep

Conversation

@QAyong

@QAyong QAyong commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

背景

普通消息发送前,会话准备会递归检查所有技能包的附属文件,未选择技能也会产生整包扫描成本。改为发现阶段读取并缓存 SKILL.md 元数据,显式选择技能时再校验所选包。

主要改动

  • 会话目录和 Composer 技能候选列表使用轻量读取;通过 Pi 的 skillsOverride 复用已验证的元数据,避免重复读取。
  • 分离入口文档与完整包缓存,检查文件身份与路径变化;刷新后的目录不被旧解析结果覆盖,管理页整包检查不覆盖轻量目录。
  • 物化结束后再次检查 Space 绑定与安装状态,拒绝软链接越界及加载期间的撤销。
  • 兼容旧整包 revision,在队列消费、重试和最终启动时校验并转换引用;保留安装、更新及所选包的完整校验。

验证

在本 PR 分支的 Linux 本地环境完成:

  • pnpm lint:fix、pnpm type-check、git diff --check 通过。
  • pnpm --filter @uselexora/lexora-buddy test:2493 项通过、13 项跳过。
  • 回归覆盖文件及来源目录被软链接替换、加载期间撤销 Space、新旧引用与资源变更,以及真实 Pi 会话仅披露批准的元数据。

未执行 Windows/macOS 实机和 Electron 界面验收;本次没有视觉变更。

兼容与风险

不迁移或重写历史输入、冻结的 prompt 和用户技能文件。旧引用仍按整包语义校验,新目录引用使用文档 revision,物化后附带 packageRevision。外部新增技能通过列表刷新发现;缓存不替代使用时的路径与授权检查。

@QAyong

QAyong commented Sep 27, 2026

Copy link
Copy Markdown
Contributor Author

bug体现:本人安装14个skills ,使用过程当中,第一次对话长时间转圈,然后直接失败,第二次发送才成功,现在解决,也符合pi 按需和渐进式加载

@shanyuhai123 shanyuhai123 changed the title fix(buddy): avoid full skill scan during chat preparation perf(buddy): 按需加载技能并缓存元数据 Sep 28, 2026
@shanyuhai123

Copy link
Copy Markdown
Contributor

非常好的 PR,之前我本地 skill 不是很多,没有发现这个问题。我在你的基础上做了个兼容修复。

@shanyuhai123
shanyuhai123 merged commit e32835d into useLexora:master Sep 28, 2026
8 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.

2 participants