ygl-trees 0.76.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/apps/cli/src/bin.js +15 -0
- package/dist/bundle/bin.cjs +258 -297
- package/dist/bundle/text-Bce0wNAD.cjs +172 -0
- package/dist/packages/core/database/src/plugin.js +32 -0
- package/dist/packages/knowledge/skills/src/skill-cmds.js +38 -5
- package/dist/packages/ops/tools/src/plugins.js +31 -2
- package/docs/plugin-authoring.md +19 -0
- package/llms.txt +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.77.0(2026-10-17)plugin 安全加固 + DEP0190 消除
|
|
4
|
+
- **P0 修复**:plugin install 坏路径不再被记录——存在性校验 + package.json name 校验(a2a 7aa5c871)
|
|
5
|
+
- **P0 修复**:StartupError 时 plugin 命令走 degraded mode——坏插件不再砖死 home,plugin remove 自愈可用
|
|
6
|
+
- **P1 修复**:启动失败退出码 rc=1(修复前 rc=0,违反冻结契约)
|
|
7
|
+
- **P2 修复**:包名从 package.json 读取真实 name(不再退化为 basename)
|
|
8
|
+
- **DEP0190 消除**:pnpm spawn 改用 cmd /c 显式调用(不再传 args 给 shell:true)
|
|
9
|
+
|
|
10
|
+
## 0.76.1(2026-10-17)--ai 多 Agent 支持 + ctx.emit 桥接
|
|
11
|
+
- **skill link --ai <agent>**:一键连接到多种 AI Agent 的技能目录——pi(~/.pi/agent/skills/) · claude · cursor · windsurf · custom(--to)
|
|
12
|
+
- **ctx.emit 桥接**:eventbus 内部事件自动转发到 Cordis ctx.emit——插件可用 ctx.on("ygl") 监听(文档承诺兑现)
|
|
13
|
+
- **plugin-authoring.md**:补 ctx.on 事件监听用法
|
|
14
|
+
|
|
3
15
|
## 0.76.0(2026-10-17)Cordis 深化——生命周期+事件驱动(A2A 任务 fedc7ab9)
|
|
4
16
|
- **生命周期真实化**:DatabaseService 补 stop() 钩子(关 SQLite + 释放 .ygllock + 关 ORM);bin.ts finally 走 Service.stop() 链(fallback DB 仍手动收口);3 项单测证明 boot→stop 后资源释放
|
|
5
17
|
- **事件驱动真实化**:新建 eventbus(EventEmitter 单例);logEvent 落表后同步 emitEvent(node.unlock/kb.add/claim.resolve 等);webui SSE 升级为事件驱动即时推送(1.5s 轮询保留为兜底)
|
package/README.md
CHANGED
|
@@ -163,7 +163,7 @@ agent brief 状态 + 建议动作 + 健康度(脏索引、存量
|
|
|
163
163
|
|
|
164
164
|
`skill import <SKILL.md>` 直接解析 frontmatter。
|
|
165
165
|
|
|
166
|
-
`skill link [--global]` 一键软连接到 `.agents/skills/`(DSH/Claude 等 Agent 的技能发现路径即刻可用)。
|
|
166
|
+
`skill link [--global] [--ai pi|claude|cursor|windsurf]` 一键软连接到 `.agents/skills/`(DSH/Claude 等 Agent 的技能发现路径即刻可用)。
|
|
167
167
|
|
|
168
168
|
### rel:关联织物(把研究资产挂到树节点)
|
|
169
169
|
|
package/dist/apps/cli/src/bin.js
CHANGED
|
@@ -374,6 +374,21 @@ async function main(argv) {
|
|
|
374
374
|
}
|
|
375
375
|
catch (e) {
|
|
376
376
|
if (e instanceof startup_diagnostics_1.StartupError) {
|
|
377
|
+
// P0 fix (a2a 7aa5c871): a bad plugin entry must not brick the home —
|
|
378
|
+
// plugin remove/install must work even when other plugins fail to load.
|
|
379
|
+
// If the command is plugin-related, proceed with a degraded boot.
|
|
380
|
+
if (group === "plugin") {
|
|
381
|
+
const pluginCmds = await Promise.resolve().then(() => __importStar(require("./plugin")));
|
|
382
|
+
const { dbPath } = await Promise.resolve().then(() => __importStar(require("../../../packages/core/database/src/db")));
|
|
383
|
+
const dbFile2 = dbPath(home);
|
|
384
|
+
// Minimal env — no plugins, direct DB access
|
|
385
|
+
const env2 = {
|
|
386
|
+
home, dbFile: dbFile2, ctx,
|
|
387
|
+
db: null, store: null, cordis: null,
|
|
388
|
+
};
|
|
389
|
+
(0, fmt_1.out)(ctx, (0, fmt_1.paint)(fmt_1.C.yellow, " ! degraded mode: user plugins failed to load — plugin commands only", ctx.color));
|
|
390
|
+
return pluginCmds.runPluginCommand(env2, action || "list", args._.slice(2), args);
|
|
391
|
+
}
|
|
377
392
|
(0, startup_diagnostics_1.reportStartupFailure)(e, home, VERSION);
|
|
378
393
|
return 1;
|
|
379
394
|
}
|