flower-trellis 0.6.10 → 0.6.11

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "syncedAt": "2026-09-30T15:12:01.883Z",
2
+ "syncedAt": "2026-10-01T00:02:29.166Z",
3
3
  "syncedFrom": "vendor/skill-garden",
4
4
  "sourceCommit": "7d02e3d812cd817db285fc51a4656c55b497452b",
5
5
  "common": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flower-trellis",
3
- "version": "0.6.10",
3
+ "version": "0.6.11",
4
4
  "description": "一键安装/升级 Trellis 并自动融合 skill-garden 强化包(默认 Claude + agents)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -70,9 +70,9 @@
70
70
  "commit-and-tag-version": "^12.7.3"
71
71
  },
72
72
  "flowerReleaseNotes": {
73
- "version": "0.6.10",
73
+ "version": "0.6.11",
74
74
  "source": "CHANGELOG.md",
75
- "body": "### ✨ 新功能 Features\n\n* **aliyun-ops:** 新增 ACK 受控切换镜像与环境变量 ([70527ca](https://github.com/SilentFlower/flower-trellis/commit/70527ca2372c22d124a6a38ab3331be5c2119bc0))\n* **aliyun-ops:** 集成 ACK Workbench 只读查询 ([224ef02](https://github.com/SilentFlower/flower-trellis/commit/224ef029beb82e032bb4e336bdc7febe29a96982))\n* **codex:** 为 gpt-6.1-sol 添加专属工作流提示 ([5420292](https://github.com/SilentFlower/flower-trellis/commit/54202928116136d7bdc7e62e8c3e0abc109c2215))\n* **flower:** 同步新版任务 Brief 模板 ([d6702ec](https://github.com/SilentFlower/flower-trellis/commit/d6702ece1f58cb22290bce8fe02de0ea28d852e3))\n* **flower:** 批量更新后由 Flower 统一处理项目本地提交 ([110766d](https://github.com/SilentFlower/flower-trellis/commit/110766d15513de1bea41e54e9fcdfbabb25395a5))\n* **flower:** 支持批量更新多个项目 ([ef32c2e](https://github.com/SilentFlower/flower-trellis/commit/ef32c2e47dcf326c83aceb67549e3374fc68fa01))\n* **flower:** 支持自动 GC 提交默认放行 ([79ef652](https://github.com/SilentFlower/flower-trellis/commit/79ef652abf793c4b84e8b5150b4808be02ad3eec))\n* **flower:** 默认只保留一份升级备份并支持 Sol 提示 ([7704dc9](https://github.com/SilentFlower/flower-trellis/commit/7704dc9e190abc5d6e57de517e2dfc0ec31cbbae))\n* **hooks:** 优化 workflow-state 条件注入 ([ecd9555](https://github.com/SilentFlower/flower-trellis/commit/ecd9555f9c8959a3f3c862f9cda8bf8e7153fbd5))\n* **session:** 精简 SessionStart 开场注入 ([2b68c13](https://github.com/SilentFlower/flower-trellis/commit/2b68c1367199cdb3254d0adc639db20cc0b2b648))\n* **task:** 支持精确收敛未跟踪旧任务 ([4b6871e](https://github.com/SilentFlower/flower-trellis/commit/4b6871e22abc3566aca9373d480ab9bf3d516bd3))\n* **task:** 重构 Close 与物理 GC 生命周期 ([20c14f0](https://github.com/SilentFlower/flower-trellis/commit/20c14f032825eac226887c4334ef6e6e69ffc3dd))\n\n\n### 🐛 修复 Bug Fixes\n\n* **aliyun-ops:** 完善 SLS 引导与跨平台回归 ([e146855](https://github.com/SilentFlower/flower-trellis/commit/e146855122f91ef48c1155baf3aaf63681a0557b))\n* **release-ci:** 修复无依赖发布快照同步 ([a5c954a](https://github.com/SilentFlower/flower-trellis/commit/a5c954aee20d85d455f74583a0597e6b859223c3))\n* **workflow:** 阻止新会话继承旧任务 ([156e63f](https://github.com/SilentFlower/flower-trellis/commit/156e63f668d94d0a35f5f15c9b98998f4cddd411))",
75
+ "body": "### 🐛 修复 Bug Fixes\n\n* **telemetry:** 修复 Windows 遥测锁释放时的读取竞争 ([ce05278](https://github.com/SilentFlower/flower-trellis/commit/ce05278ae1f6e9e3bc73cb57819f8c254da1f436))",
76
76
  "truncated": false
77
77
  },
78
78
  "optionalDependencies": {
@@ -93,10 +93,19 @@ export function withTelemetryLock(callback, options = {}) {
93
93
  } catch (error) {
94
94
  if (error.code !== "EEXIST") throw error;
95
95
  let stat;
96
- try { stat = fs.lstatSync(lock); }
97
- catch (failure) { if (failure.code === "ENOENT" && Date.now() < deadline) continue; throw failure; }
98
- if (!stat.isDirectory() || stat.isSymbolicLink()) throw new Error("遥测锁无效");
99
- const owner = readTelemetryJson(path.join(lock, "owner.json"));
96
+ let owner;
97
+ try {
98
+ stat = fs.lstatSync(lock);
99
+ if (!stat.isDirectory() || stat.isSymbolicLink()) throw new Error("遥测锁无效");
100
+ owner = readTelemetryJson(path.join(lock, "owner.json"));
101
+ } catch (failure) {
102
+ if (!["ENOENT", "EPERM", "EACCES"].includes(failure.code)) throw failure;
103
+ // Windows 删除中的竞争锁可能暂时拒绝读取;仅在原预算内重试,重新取得锁前不写状态。
104
+ const remaining = deadline - Date.now();
105
+ if (remaining <= 0) throw new Error("遥测锁繁忙");
106
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, Math.min(10, remaining));
107
+ continue;
108
+ }
100
109
  let dead = false;
101
110
  if (Number.isSafeInteger(owner?.pid) && owner.pid > 0) {
102
111
  try { process.kill(owner.pid, 0); } catch (failure) { dead = failure.code === "ESRCH"; }