From ff3f3d40d63156ad3a84ae90df0e232bdcd7251b Mon Sep 17 00:00:00 2001 From: lanrtop Date: Tue, 22 Sep 2026 22:01:35 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(toolchain):=20=E8=A1=A5=E9=BD=90?= =?UTF-8?q?=E7=82=BC=E5=A2=83=E8=87=AA=E8=BA=AB=E5=B7=A5=E5=85=B7=E9=93=BE?= =?UTF-8?q?=E5=A5=91=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Feature-Confirmed: true Rules-Applied: R02,R13 --- .blueprint/manifest.yaml | 2 +- .blueprint/modules/toolchain-capability-pack.md | 11 ++++++++++- .nvmrc | 1 + mise.toml | 4 ++++ package.json | 1 + 5 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 .nvmrc create mode 100644 mise.toml diff --git a/.blueprint/manifest.yaml b/.blueprint/manifest.yaml index c6e8dc2..1346add 100644 --- a/.blueprint/manifest.yaml +++ b/.blueprint/manifest.yaml @@ -475,7 +475,7 @@ modules: status: done progress: 100 updated: 2026-09-22 - note: "v1 已闭环:以项目标准声明为版本事实,mise 负责 Windows 本地解析;炼境提供诊断、受控准备和 Agent 投影,不追随 Codex bundled runtime。Enterprise 消费者试点已通过 CLI、新 Codex 会话与 Gitea main CI #529 验证;Node 24.19.0、pnpm 9.15.0 同源生效,明确不支持 WSL。" + note: "v1 与 T8 自洽补强均已闭环:以项目标准声明为版本事实,mise 负责 Windows 本地解析;Enterprise 消费者试点已通过 CLI、新 Codex 会话与 Gitea main CI #529 验证,炼境自身也已通过真实 MCP get_toolchain_status 验证 Node 24.19.0、pnpm 9.15.0 均为 ready_managed;不追随 Codex bundled runtime,明确不支持 WSL。" position: [2500, 950] edges: # 前端依赖 diff --git a/.blueprint/modules/toolchain-capability-pack.md b/.blueprint/modules/toolchain-capability-pack.md index 5989faa..3668e8c 100644 --- a/.blueprint/modules/toolchain-capability-pack.md +++ b/.blueprint/modules/toolchain-capability-pack.md @@ -132,8 +132,17 @@ Enterprise System 已精确声明 Node `24.19.0` 与 pnpm `9.15.0`,而 Codex b - acceptance: "agent_verify: [CLI] `mise exec -- node --version` → v24.19.0,`mise exec -- pnpm --version` → 9.15.0,`mise exec -- pnpm check:toolchain` → exit 0;[Gitea CI] 从 `.nvmrc` 与 packageManager 安装精确版本并在业务检查前通过 check:toolchain;package.json 与 pnpm-lock.yaml 无非预期改动;human_verify: 新 Codex 会话进入 Enterprise 后不再因 bundled pnpm 11 阻塞。" - done_note: "2026-09-22:PR #11 合并后,通过炼境 apply_onboarding_pack 为 Enterprise 写入最小 mise.toml、升级 AGENTS/skill/capability-packs,verify_onboarding 12/12;Windows 用户级安装 mise 2026.9.12 后,get_toolchain_status 为 ready_managed。消费者 CLI 实测 Node v24.19.0、pnpm 9.15.0、pnpm check:toolchain exit 0,package.json/pnpm-lock.yaml 零非预期改动;新 Codex 会话可直接通过 mise 使用项目版本,不再被 bundled pnpm 11 阻塞。Enterprise 主线经 PR #173–#175 收敛,合并提交 a2e85f50 的 Gitea main CI #529 中 agent 与 deploy-impact 成功,agent 在业务检查前完成 Node/pnpm 安装及工具链断言;纯蓝图变更未触发 API/Web 部署。" +### ✅ T8. 炼境自身工具链契约闭环 +- status: done +- complexity: M +- files: .nvmrc, package.json, mise.toml, .blueprint/modules/toolchain-capability-pack.md, .blueprint/manifest.yaml +- acceptance: "agent_verify: [CLI] `mise exec -- node --version` → v24.19.0,`mise exec -- pnpm --version` → 9.15.0;[炼境能力本体] get_toolchain_status(dev-manager-tauri) → Node/pnpm 均为 ready_managed 且 executable 指向 mise 安装目录;[项目验证] `pnpm typecheck` 与 `cargo test --lib` 通过;[Git] `git diff -- pnpm-lock.yaml` → 空。" +- decision_note: "版本事实继续使用开放标准声明:`.nvmrc` 固定 Node,package.json#packageManager 固定 pnpm;mise.toml 仅启用 idiomatic version file 读取,不复制版本,也不新增 engines 第二事实来源。" +- done_note: "2026-09-22:炼境自身新增 `.nvmrc` 24.19.0、packageManager pnpm@9.15.0 与最小 mise resolver。CLI 命中 mise 安装目录,typecheck 通过、Rust 151/151;真实启动 Tauri 后经 MCP get_toolchain_status 验收,Node/pnpm 均为 ready_managed,pnpm-lock.yaml 零改动。" +- retrospective: "【复盘】炼境自身工具链契约闭环|任务类型: 架构调整|复杂度: M|实际轮数: 2轮(预估 1 轮)|是否返工: 否|有效策略: 先以开放标准声明建立唯一事实来源,再从真实 MCP 能力入口验证而非只检查文件|遗留风险: 沙箱内 mise 无法写用户级 trusted-configs,Agent 需在受控本机环境执行验证|auto_applied_rules: R02, R13|rule_effectiveness: R02=有效, R13=有效" + ## 执行顺序 -T1 → T2 → T3;T2 → T4 → T5;T3 + T4 → T6;T3 + T4 + T6 → T7。 +T1 → T2 → T3;T2 → T4 → T5;T3 + T4 → T6;T3 + T4 + T6 → T7 → T8。 核心能力先只读、后受控写;炼境实现者验证完成后,必须由 Enterprise System 以消费者角色完成最终闭环。 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..60ade1a --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24.19.0 diff --git a/mise.toml b/mise.toml new file mode 100644 index 0000000..9aa00df --- /dev/null +++ b/mise.toml @@ -0,0 +1,4 @@ +# 炼境工具链能力包:版本事实仍由 .nvmrc 与 package.json#packageManager 持有。 +# 本文件只让 mise 读取这些标准声明,不重复保存 Node/pnpm 版本。 +[settings] +idiomatic_version_file_enable_tools = ["node", "pnpm"] diff --git a/package.json b/package.json index 7f1ae79..8322939 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "dev-manager-tauri", "private": true, "version": "0.1.19", + "packageManager": "pnpm@9.15.0", "type": "module", "scripts": { "dev": "vite", -- 2.45.2 From 23e9c297caad897c7917776308ca35a8014941df Mon Sep 17 00:00:00 2001 From: lanrtop Date: Tue, 22 Sep 2026 22:09:28 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix(ci):=20=E4=BD=BF=E7=94=A8=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=B7=A5=E5=85=B7=E9=93=BE=E7=89=88=E6=9C=AC=E5=A3=B0?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rules-Applied: R13 --- .blueprint/manifest.yaml | 6 +++--- .blueprint/modules/toolchain-capability-pack.md | 16 ++++++++-------- .gitea/workflows/pr-check.yml | 4 +--- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.blueprint/manifest.yaml b/.blueprint/manifest.yaml index 1346add..a37c02d 100644 --- a/.blueprint/manifest.yaml +++ b/.blueprint/manifest.yaml @@ -472,10 +472,10 @@ modules: - id: toolchain-capability-pack name: 项目工具链能力包 area: infra - status: done - progress: 100 + status: in_progress + progress: 87 updated: 2026-09-22 - note: "v1 与 T8 自洽补强均已闭环:以项目标准声明为版本事实,mise 负责 Windows 本地解析;Enterprise 消费者试点已通过 CLI、新 Codex 会话与 Gitea main CI #529 验证,炼境自身也已通过真实 MCP get_toolchain_status 验证 Node 24.19.0、pnpm 9.15.0 均为 ready_managed;不追随 Codex bundled runtime,明确不支持 WSL。" + note: "v1 已闭环,T8 自洽补强进行中:炼境自身本地与 MCP 工具链验证通过,首次 push CI #120 暴露 workflow 硬编码 pnpm 版本与 packageManager 重复,正将 Gitea CI 收敛到同一标准声明;不追随 Codex bundled runtime,明确不支持 WSL。" position: [2500, 950] edges: # 前端依赖 diff --git a/.blueprint/modules/toolchain-capability-pack.md b/.blueprint/modules/toolchain-capability-pack.md index 3668e8c..b3ab513 100644 --- a/.blueprint/modules/toolchain-capability-pack.md +++ b/.blueprint/modules/toolchain-capability-pack.md @@ -1,8 +1,8 @@ --- id: toolchain-capability-pack name: 项目工具链能力包 -status: done -progress: 100 +status: in_progress +progress: 87 --- ## 设计决策:项目工具链契约、解析与 Agent 执行闭环 v1 @@ -132,14 +132,14 @@ Enterprise System 已精确声明 Node `24.19.0` 与 pnpm `9.15.0`,而 Codex b - acceptance: "agent_verify: [CLI] `mise exec -- node --version` → v24.19.0,`mise exec -- pnpm --version` → 9.15.0,`mise exec -- pnpm check:toolchain` → exit 0;[Gitea CI] 从 `.nvmrc` 与 packageManager 安装精确版本并在业务检查前通过 check:toolchain;package.json 与 pnpm-lock.yaml 无非预期改动;human_verify: 新 Codex 会话进入 Enterprise 后不再因 bundled pnpm 11 阻塞。" - done_note: "2026-09-22:PR #11 合并后,通过炼境 apply_onboarding_pack 为 Enterprise 写入最小 mise.toml、升级 AGENTS/skill/capability-packs,verify_onboarding 12/12;Windows 用户级安装 mise 2026.9.12 后,get_toolchain_status 为 ready_managed。消费者 CLI 实测 Node v24.19.0、pnpm 9.15.0、pnpm check:toolchain exit 0,package.json/pnpm-lock.yaml 零非预期改动;新 Codex 会话可直接通过 mise 使用项目版本,不再被 bundled pnpm 11 阻塞。Enterprise 主线经 PR #173–#175 收敛,合并提交 a2e85f50 的 Gitea main CI #529 中 agent 与 deploy-impact 成功,agent 在业务检查前完成 Node/pnpm 安装及工具链断言;纯蓝图变更未触发 API/Web 部署。" -### ✅ T8. 炼境自身工具链契约闭环 -- status: done +### 🔵 T8. 炼境自身工具链契约闭环 +- status: in_progress - complexity: M -- files: .nvmrc, package.json, mise.toml, .blueprint/modules/toolchain-capability-pack.md, .blueprint/manifest.yaml -- acceptance: "agent_verify: [CLI] `mise exec -- node --version` → v24.19.0,`mise exec -- pnpm --version` → 9.15.0;[炼境能力本体] get_toolchain_status(dev-manager-tauri) → Node/pnpm 均为 ready_managed 且 executable 指向 mise 安装目录;[项目验证] `pnpm typecheck` 与 `cargo test --lib` 通过;[Git] `git diff -- pnpm-lock.yaml` → 空。" +- files: .nvmrc, package.json, mise.toml, .gitea/workflows/pr-check.yml, .blueprint/modules/toolchain-capability-pack.md, .blueprint/manifest.yaml +- acceptance: "agent_verify: [CLI] `mise exec -- node --version` → v24.19.0,`mise exec -- pnpm --version` → 9.15.0;[炼境能力本体] get_toolchain_status(dev-manager-tauri) → Node/pnpm 均为 ready_managed 且 executable 指向 mise 安装目录;[项目验证] `pnpm typecheck` 与 `cargo test --lib` 通过;[Gitea CI] pnpm/action-setup 与 setup-node 只消费 packageManager/.nvmrc,PR CI 通过;[Git] `git diff -- pnpm-lock.yaml` → 空。" - decision_note: "版本事实继续使用开放标准声明:`.nvmrc` 固定 Node,package.json#packageManager 固定 pnpm;mise.toml 仅启用 idiomatic version file 读取,不复制版本,也不新增 engines 第二事实来源。" -- done_note: "2026-09-22:炼境自身新增 `.nvmrc` 24.19.0、packageManager pnpm@9.15.0 与最小 mise resolver。CLI 命中 mise 安装目录,typecheck 通过、Rust 151/151;真实启动 Tauri 后经 MCP get_toolchain_status 验收,Node/pnpm 均为 ready_managed,pnpm-lock.yaml 零改动。" -- retrospective: "【复盘】炼境自身工具链契约闭环|任务类型: 架构调整|复杂度: M|实际轮数: 2轮(预估 1 轮)|是否返工: 否|有效策略: 先以开放标准声明建立唯一事实来源,再从真实 MCP 能力入口验证而非只检查文件|遗留风险: 沙箱内 mise 无法写用户级 trusted-configs,Agent 需在受控本机环境执行验证|auto_applied_rules: R02, R13|rule_effectiveness: R02=有效, R13=有效" +- done_note: "2026-09-22:本地与 MCP 验证已通过;首次 push CI #120 暴露 workflow 同时硬编码 pnpm 9 与读取 packageManager 的重复版本冲突,任务重新打开以将 CI 收敛到同一契约。" +- retrospective: "待 PR CI 完成后收口。" ## 执行顺序 diff --git a/.gitea/workflows/pr-check.yml b/.gitea/workflows/pr-check.yml index 1a2733d..9251d04 100644 --- a/.gitea/workflows/pr-check.yml +++ b/.gitea/workflows/pr-check.yml @@ -16,13 +16,11 @@ jobs: fetch-depth: 0 - uses: pnpm/action-setup@v4 - with: - version: 9 - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' + node-version-file: '.nvmrc' cache: 'pnpm' # 服务端 commit message 校验(lefthook 在 agent 沙箱内会静默失效,此为机器层硬补偿) -- 2.45.2