flower-trellis 0.6.10-beta.9 → 0.6.10
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/README.md +4 -3
- package/enhancements/0.6/.agents/skills/trellis-flower-update/SKILL.md +14 -8
- package/enhancements/0.6/.claude/skills/trellis-flower-update/SKILL.md +14 -8
- package/enhancements/MANIFEST.json +2 -2
- package/package.json +3 -3
- package/src/assets/flower_session_start.py +15 -0
- package/src/commands/update-all.js +6 -4
package/README.md
CHANGED
|
@@ -147,18 +147,19 @@ flower-trellis enable --target .
|
|
|
147
147
|
|
|
148
148
|
项目处于 disabled 时,`flower-trellis update`、`self-update` 的项目更新链,以及 `plugin add/update/remove/replay` 会临时恢复必要入口,完成写操作后再次 detach,并校验最终仍为 disabled;外部 Plugin 内容不会被当作 Trellis 入口删除。直接运行上游 `trellis update` 不经过这一控制面,可能重新生成入口,此时 `flower-trellis status` 会报告 `drifted`。`disable` 也不等同于 `uninstall`:历史数据和恢复能力会继续保留。
|
|
149
149
|
|
|
150
|
-
## Astra 与 Sol 工作流提示
|
|
150
|
+
## Astra、Sol 与 Sol 6.1 工作流提示
|
|
151
151
|
|
|
152
|
-
Codex 的 SessionStart 在 `startup`、`clear`、`compact` 时,事件输入的当前模型精确为 `gpt-6-astra` 或 `gpt-6-sol`,才会在 state
|
|
152
|
+
Codex 的 SessionStart 在 `startup`、`clear`、`compact` 时,事件输入的当前模型精确为 `gpt-6-astra`、`gpt-6-sol` 或 `gpt-6.1-sol`,才会在 state 分段追加对应模型的一份英文工作流提示。三个模型使用相同的工作流正文和各自的模型标识;其他模型(包括 5.5)、缺失模型和未知别名不会追加;普通用户轮次不重复注入。
|
|
153
153
|
|
|
154
154
|
提示用于辅助遵循技能、工作流、模板和证据陈述,效果仍需行为对照验证。它不能删除宿主或历史指令,也不保证覆盖更高优先级要求。会话中切换模型后,要等下次 SessionStart 才重新判断是否追加。
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
三个模型默认分别开启。要单独关闭某个模型的提示,在项目 `.trellis/config.yaml` 已有的 `codex` 配置下合并对应字段,保留原有字段:
|
|
157
157
|
|
|
158
158
|
```yaml
|
|
159
159
|
codex:
|
|
160
160
|
astra_workflow_hint: false
|
|
161
161
|
sol_workflow_hint: false
|
|
162
|
+
sol_6_1_workflow_hint: false
|
|
162
163
|
```
|
|
163
164
|
|
|
164
165
|
任一字段设置 `true` 或删除可恢复该模型的默认值。开关只影响后续新增提示;做无历史干扰的对照时应使用新会话。原工作流上下文继续注入,Trellis 全局禁用、resume 和非交互跳过规则保持原有行为。`no-trellis` 仍只跳过本轮 UserPromptSubmit。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: trellis-flower-update
|
|
3
|
-
description: "
|
|
3
|
+
description: "手动检查和执行单项目或父目录下多个已安装 Flower/Trellis 强化包升级。用于用户明确要求更新或升级 flower-trellis、Flower、Trellis 强化包、skill-garden 快照、项目 flower 版本追平,或自动更新提示被稍后/跳过后仍想在对话里升级时。不要用于用户说想发版、发布版本、release、打 tag、npm publish 或修改 package 版本号;这些属于项目发版流程。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Trellis Flower Update
|
|
@@ -11,9 +11,9 @@ description: "手动检查和执行已安装 Flower/Trellis 强化包升级。
|
|
|
11
11
|
|
|
12
12
|
## Workflow
|
|
13
13
|
|
|
14
|
-
1.
|
|
14
|
+
1. 确认范围。单个 Flower 项目使用该项目路径;用户给出父目录并要求批量升级时,先用 `flower-trellis update-all --root <dir> --dry-run` 清点已安装项目,再逐项目核对。批量命令目前会整项目跳过脏 Git、活动任务和非 Git 目录;这些 `skipped` 只是待复核目标,不能直接作为无法升级的结论。
|
|
15
15
|
2. 检查 `flower-trellis` 是否可执行。缺失或入口异常且目标项目存在 `.trellis/scripts/flower_update_hook.py` 时,先运行目标项目的检测脚本:`python3 <target>/.trellis/scripts/flower_update_hook.py --bootstrap-only --target <target>`(路径按当前 shell 引用,Python 命令沿用项目配置)。遵循返回的 `<flower-cli-bootstrap>`:先征得当前成员确认,再安装锁定版本并验证;当前对话已授权这次安装时不重复确认。脚本不存在时说明项目缺少安装引导入口,不猜版本安装。未安装成功则停止依赖 CLI 的步骤,不循环追问或安装。
|
|
16
|
-
3. CLI
|
|
16
|
+
3. CLI 可用后,对每个目标运行人工检查,默认强制刷新远端版本证据:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
flower-trellis self-check --json --manual --force-remote --target <target>
|
|
@@ -26,10 +26,16 @@ flower-trellis self-check --json --manual --force-remote --target <target>
|
|
|
26
26
|
- `project_unknown`:说明 CLI 未发现新版,但项目 Flower 版本无法确认。linked worktree 进入 `trellis-worktree` 的 Flower Preparation,通过 `prepare --inherit-flower --source <source>` 补齐可验证记录后重新检查;来源缺失或冲突时如实报告,不推定需要重装。
|
|
27
27
|
- `disabled` / `offline` / `skipped`:说明原因;不要靠重置缓存伪造可执行状态。
|
|
28
28
|
5. 写入前遵守确认和安全门槛:
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- `
|
|
32
|
-
|
|
29
|
+
- 用户已明确要求执行升级时,该授权覆盖所指定范围内的项目,不因每个项目的 `safety.reasons` 重复询问;用户只是询问、查看或比较版本时,只展示结果并等待确认。
|
|
30
|
+
- `safety.reasons` 是自动更新的保守门槛,不等于人工升级的最终结论。`dirty_worktree`、`active_task` 和 `not_git_repo` 均需核对实际影响,不单独阻断升级。批量命令跳过的项目也按此规则逐项处理。
|
|
31
|
+
- 对脏 Git 项目读取精确 dirty 路径,对活动任务定位其任务文件;预演 Trellis 与 Plugin 更新,必要时用 Plugin JSON dry-run 获取目标路径。比较计划写入、删除的文件及目录范围与现有改动的交集。`self-update` 默认向 Trellis 传 `--force`,精确提交和失败备份都不能挽回已被覆盖的本地内容。确认无交集后执行推荐命令,保留原有业务和任务文件;活动任务的存在本身不要求另一次确认。
|
|
32
|
+
- 非 Git 项目若属于用户指定范围,预演并核对升级器备份与恢复能力后可升级;不能用 Git 精确提交验证其结果。有交集、预演失败或内容归属不明时,只停受影响项目,查明具体路径及能否无损保留;无法证明安全则报告真实冲突,不以 `--force` 绕过。
|
|
33
|
+
- CLI 或推荐命令缺失、版本证据不足、Git 状态读取失败等原因仍需按实际原因解决。不要把 `update-all --yes` 的整项目跳过当成全部已处理。
|
|
34
|
+
6. 升级后逐项目核对版本与原有改动,分别报告完成项和实际冲突,再处理本地提交:
|
|
35
|
+
- 单项目 `self-update` 返回 `post_action: run_trellis_push_confirmation` 时,按原单项目流程进入 `trellis-push`,展示精确文件与 message 并等待确认。
|
|
36
|
+
- 用户明确要求执行父目录或多个目标的批量升级且未排除提交时,同次授权覆盖升级产物的本地精确提交;`update-all` 的 `post_action: run_flower_batch_commit` 及逐项目补齐的成功结果均由 Flower 批量流程处理,不进入 `trellis-push`,不逐仓重复询问。只检查版本或 dry-run 时不提交。
|
|
37
|
+
- 按所属 Git 仓库收集升级器实际写入的精确路径,结合安装记录、预演结果与升级前状态核对归属;仅提交已证明属于本次升级的路径。逐仓重新核对分支、HEAD、冲突、staged 与文件内容,使用精确路径提交并核对提交文件集;保留其余 staged、未暂存和未跟踪变更,不借升级完成活动任务。无变更、非 Git、detached HEAD、真实路径交集或归属不明的仓库单独待处理,其它独立仓库继续。
|
|
38
|
+
- 批量结果只汇总成功提交数、文件数与待处理原因;用户要求时再展开路径。提交失败不改变升级状态。除非用户另有明确授权,不推送。
|
|
33
39
|
|
|
34
40
|
## Rules
|
|
35
41
|
|
|
@@ -38,4 +44,4 @@ flower-trellis self-check --json --manual --force-remote --target <target>
|
|
|
38
44
|
- 不使用 `update-check reset`、`snooze` 或 `skip` 作为升级绕过手段。
|
|
39
45
|
- 不运行 `npm run release`、不打 tag、不 publish,也不修改 `package.json` 版本号。
|
|
40
46
|
- 不把 `self-check --manual` 用在 SessionStart 自动 hook;自动路径必须继续尊重提示节流。
|
|
41
|
-
-
|
|
47
|
+
- 只在将覆盖现有内容、实际授权不足或证据无法核实时停下受影响项目;不得因为整个工作区脏或存在活动任务而跳过其它可安全升级的项目。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: trellis-flower-update
|
|
3
|
-
description: "
|
|
3
|
+
description: "手动检查和执行单项目或父目录下多个已安装 Flower/Trellis 强化包升级。用于用户明确要求更新或升级 flower-trellis、Flower、Trellis 强化包、skill-garden 快照、项目 flower 版本追平,或自动更新提示被稍后/跳过后仍想在对话里升级时。不要用于用户说想发版、发布版本、release、打 tag、npm publish 或修改 package 版本号;这些属于项目发版流程。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Trellis Flower Update
|
|
@@ -11,9 +11,9 @@ description: "手动检查和执行已安装 Flower/Trellis 强化包升级。
|
|
|
11
11
|
|
|
12
12
|
## Workflow
|
|
13
13
|
|
|
14
|
-
1.
|
|
14
|
+
1. 确认范围。单个 Flower 项目使用该项目路径;用户给出父目录并要求批量升级时,先用 `flower-trellis update-all --root <dir> --dry-run` 清点已安装项目,再逐项目核对。批量命令目前会整项目跳过脏 Git、活动任务和非 Git 目录;这些 `skipped` 只是待复核目标,不能直接作为无法升级的结论。
|
|
15
15
|
2. 检查 `flower-trellis` 是否可执行。缺失或入口异常且目标项目存在 `.trellis/scripts/flower_update_hook.py` 时,先运行目标项目的检测脚本:`python3 <target>/.trellis/scripts/flower_update_hook.py --bootstrap-only --target <target>`(路径按当前 shell 引用,Python 命令沿用项目配置)。遵循返回的 `<flower-cli-bootstrap>`:先征得当前成员确认,再安装锁定版本并验证;当前对话已授权这次安装时不重复确认。脚本不存在时说明项目缺少安装引导入口,不猜版本安装。未安装成功则停止依赖 CLI 的步骤,不循环追问或安装。
|
|
16
|
-
3. CLI
|
|
16
|
+
3. CLI 可用后,对每个目标运行人工检查,默认强制刷新远端版本证据:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
flower-trellis self-check --json --manual --force-remote --target <target>
|
|
@@ -26,10 +26,16 @@ flower-trellis self-check --json --manual --force-remote --target <target>
|
|
|
26
26
|
- `project_unknown`:说明 CLI 未发现新版,但项目 Flower 版本无法确认。linked worktree 进入 `trellis-worktree` 的 Flower Preparation,通过 `prepare --inherit-flower --source <source>` 补齐可验证记录后重新检查;来源缺失或冲突时如实报告,不推定需要重装。
|
|
27
27
|
- `disabled` / `offline` / `skipped`:说明原因;不要靠重置缓存伪造可执行状态。
|
|
28
28
|
5. 写入前遵守确认和安全门槛:
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- `
|
|
32
|
-
|
|
29
|
+
- 用户已明确要求执行升级时,该授权覆盖所指定范围内的项目,不因每个项目的 `safety.reasons` 重复询问;用户只是询问、查看或比较版本时,只展示结果并等待确认。
|
|
30
|
+
- `safety.reasons` 是自动更新的保守门槛,不等于人工升级的最终结论。`dirty_worktree`、`active_task` 和 `not_git_repo` 均需核对实际影响,不单独阻断升级。批量命令跳过的项目也按此规则逐项处理。
|
|
31
|
+
- 对脏 Git 项目读取精确 dirty 路径,对活动任务定位其任务文件;预演 Trellis 与 Plugin 更新,必要时用 Plugin JSON dry-run 获取目标路径。比较计划写入、删除的文件及目录范围与现有改动的交集。`self-update` 默认向 Trellis 传 `--force`,精确提交和失败备份都不能挽回已被覆盖的本地内容。确认无交集后执行推荐命令,保留原有业务和任务文件;活动任务的存在本身不要求另一次确认。
|
|
32
|
+
- 非 Git 项目若属于用户指定范围,预演并核对升级器备份与恢复能力后可升级;不能用 Git 精确提交验证其结果。有交集、预演失败或内容归属不明时,只停受影响项目,查明具体路径及能否无损保留;无法证明安全则报告真实冲突,不以 `--force` 绕过。
|
|
33
|
+
- CLI 或推荐命令缺失、版本证据不足、Git 状态读取失败等原因仍需按实际原因解决。不要把 `update-all --yes` 的整项目跳过当成全部已处理。
|
|
34
|
+
6. 升级后逐项目核对版本与原有改动,分别报告完成项和实际冲突,再处理本地提交:
|
|
35
|
+
- 单项目 `self-update` 返回 `post_action: run_trellis_push_confirmation` 时,按原单项目流程进入 `trellis-push`,展示精确文件与 message 并等待确认。
|
|
36
|
+
- 用户明确要求执行父目录或多个目标的批量升级且未排除提交时,同次授权覆盖升级产物的本地精确提交;`update-all` 的 `post_action: run_flower_batch_commit` 及逐项目补齐的成功结果均由 Flower 批量流程处理,不进入 `trellis-push`,不逐仓重复询问。只检查版本或 dry-run 时不提交。
|
|
37
|
+
- 按所属 Git 仓库收集升级器实际写入的精确路径,结合安装记录、预演结果与升级前状态核对归属;仅提交已证明属于本次升级的路径。逐仓重新核对分支、HEAD、冲突、staged 与文件内容,使用精确路径提交并核对提交文件集;保留其余 staged、未暂存和未跟踪变更,不借升级完成活动任务。无变更、非 Git、detached HEAD、真实路径交集或归属不明的仓库单独待处理,其它独立仓库继续。
|
|
38
|
+
- 批量结果只汇总成功提交数、文件数与待处理原因;用户要求时再展开路径。提交失败不改变升级状态。除非用户另有明确授权,不推送。
|
|
33
39
|
|
|
34
40
|
## Rules
|
|
35
41
|
|
|
@@ -38,4 +44,4 @@ flower-trellis self-check --json --manual --force-remote --target <target>
|
|
|
38
44
|
- 不使用 `update-check reset`、`snooze` 或 `skip` 作为升级绕过手段。
|
|
39
45
|
- 不运行 `npm run release`、不打 tag、不 publish,也不修改 `package.json` 版本号。
|
|
40
46
|
- 不把 `self-check --manual` 用在 SessionStart 自动 hook;自动路径必须继续尊重提示节流。
|
|
41
|
-
-
|
|
47
|
+
- 只在将覆盖现有内容、实际授权不足或证据无法核实时停下受影响项目;不得因为整个工作区脏或存在活动任务而跳过其它可安全升级的项目。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"syncedAt": "2026-09-
|
|
2
|
+
"syncedAt": "2026-09-30T15:12:01.883Z",
|
|
3
3
|
"syncedFrom": "vendor/skill-garden",
|
|
4
|
-
"sourceCommit": "
|
|
4
|
+
"sourceCommit": "7d02e3d812cd817db285fc51a4656c55b497452b",
|
|
5
5
|
"common": {
|
|
6
6
|
"codexSkills": [
|
|
7
7
|
"aliyun-ops",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flower-trellis",
|
|
3
|
-
"version": "0.6.10
|
|
3
|
+
"version": "0.6.10",
|
|
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.10",
|
|
74
74
|
"source": "CHANGELOG.md",
|
|
75
|
-
"body": "### ✨ 新功能 Features\n\n* **flower:** 支持批量更新多个项目 ([ef32c2e](https://github.com/SilentFlower/flower-trellis/commit/ef32c2e47dcf326c83aceb67549e3374fc68fa01))",
|
|
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))",
|
|
76
76
|
"truncated": false
|
|
77
77
|
},
|
|
78
78
|
"optionalDependencies": {
|
|
@@ -20,6 +20,7 @@ MAX_PART_CHARS = 8000
|
|
|
20
20
|
WORKFLOW_BLOCK = re.compile(r"<trellis-workflow>\n(.*?)\n</trellis-workflow>\n*", re.DOTALL)
|
|
21
21
|
ASTRA_MODEL = "gpt-6-astra"
|
|
22
22
|
SOL_MODEL = "gpt-6-sol"
|
|
23
|
+
SOL_6_1_MODEL = "gpt-6.1-sol"
|
|
23
24
|
MODEL_HINT_MAX_BYTES = 2048
|
|
24
25
|
WORKFLOW_STATE_REFRESH_ARG = "--trellis-session-start-refresh"
|
|
25
26
|
MODEL_WORKFLOW_HINT_BODY = """Applies only while the active model is {model}; it does not apply after switching models. Perform checks internally, without a routine checklist report. Keep ordinary answers brief.
|
|
@@ -37,6 +38,9 @@ ASTRA_WORKFLOW_HINT = (f'<trellis-astra-workflow-hint model="{ASTRA_MODEL}" vers
|
|
|
37
38
|
SOL_WORKFLOW_HINT = (f'<trellis-sol-workflow-hint model="{SOL_MODEL}" version="1">\n'
|
|
38
39
|
f'{MODEL_WORKFLOW_HINT_BODY.format(model=SOL_MODEL)}\n'
|
|
39
40
|
'</trellis-sol-workflow-hint>')
|
|
41
|
+
SOL_6_1_WORKFLOW_HINT = (f'<trellis-sol-6-1-workflow-hint model="{SOL_6_1_MODEL}" version="1">\n'
|
|
42
|
+
f'{MODEL_WORKFLOW_HINT_BODY.format(model=SOL_6_1_MODEL)}\n'
|
|
43
|
+
'</trellis-sol-6-1-workflow-hint>')
|
|
40
44
|
|
|
41
45
|
|
|
42
46
|
def _model_workflow_hint(root: Path, config_key: str, hint: str, label: str) -> str:
|
|
@@ -88,6 +92,15 @@ def _sol_workflow_hint(root: Path) -> str:
|
|
|
88
92
|
return _model_workflow_hint(root, "sol_workflow_hint", SOL_WORKFLOW_HINT, "Sol")
|
|
89
93
|
|
|
90
94
|
|
|
95
|
+
def _sol_6_1_workflow_hint(root: Path) -> str:
|
|
96
|
+
"""读取 Sol 6.1 独立开关并返回提示。
|
|
97
|
+
|
|
98
|
+
@param root: 当前部署项目根目录。
|
|
99
|
+
@return: Sol 6.1 提示块;关闭时为空串。
|
|
100
|
+
"""
|
|
101
|
+
return _model_workflow_hint(root, "sol_6_1_workflow_hint", SOL_6_1_WORKFLOW_HINT, "Sol 6.1")
|
|
102
|
+
|
|
103
|
+
|
|
91
104
|
def split_workflow(summary: str) -> dict[str, str]:
|
|
92
105
|
"""按完整章节拆分工作流,保持原文和顺序。
|
|
93
106
|
|
|
@@ -319,6 +332,8 @@ def render_part(root: Path, hook: str, part: str, hook_input: dict) -> dict | No
|
|
|
319
332
|
hint_builder, label = _astra_workflow_hint, "Astra"
|
|
320
333
|
elif model == SOL_MODEL:
|
|
321
334
|
hint_builder, label = _sol_workflow_hint, "Sol"
|
|
335
|
+
elif model == SOL_6_1_MODEL:
|
|
336
|
+
hint_builder, label = _sol_6_1_workflow_hint, "Sol 6.1"
|
|
322
337
|
if hint_builder is not None:
|
|
323
338
|
try:
|
|
324
339
|
hint = hint_builder(root)
|
|
@@ -31,7 +31,7 @@ function printUpdateAllHelp() {
|
|
|
31
31
|
--no-update-check 不查询远端,仅追平已安装的 Flower/Trellis 版本
|
|
32
32
|
|
|
33
33
|
脏 Git 工作区、活动任务和版本证据缺失的项目会跳过;有跳过或失败时退出码为 1。
|
|
34
|
-
|
|
34
|
+
远端无法确认时仅使用本机版本。项目更新后需核对 Git 变更,本命令不提交或推送。`);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/** 定位 npm 全局安装的入口,保证后续子进程确实使用安装后的包。 */
|
|
@@ -110,7 +110,7 @@ function readValidatedProjectVersions(target) {
|
|
|
110
110
|
return readProjectVersions(target);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
/**
|
|
113
|
+
/** 输出逐项目状态和计数;成功结果由 Flower 批量流程接续本地提交。 */
|
|
114
114
|
function printResult(rows, options, log) {
|
|
115
115
|
const labels = {
|
|
116
116
|
planned: "待更新",
|
|
@@ -135,8 +135,10 @@ function printResult(rows, options, log) {
|
|
|
135
135
|
log(`status: ${counts.failed || counts.skipped ? "partial" : "completed"}`);
|
|
136
136
|
log(`updated_targets: ${JSON.stringify(rows.filter((row) => row.status === "updated").map((row) => row.target))}`);
|
|
137
137
|
log(`attempted_targets: ${JSON.stringify(attempted.map((row) => row.target))}`);
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
if (counts.updated > 0) {
|
|
139
|
+
log("post_action: run_flower_batch_commit");
|
|
140
|
+
log("ai_instruction: 按所属 Git 仓库核对并精确本地提交已更新项目的 Flower/Trellis 产物,保留其它变更;异常仓库单独待处理,汇总简要结果,不推送。");
|
|
141
|
+
}
|
|
140
142
|
log("</flower-update-result>");
|
|
141
143
|
}
|
|
142
144
|
}
|