Compare commits

...

3 Commits

Author SHA1 Message Date
96f88a8dfa Merge pull request 'feat(toolchain): 补齐炼境自身工具链契约' (#15) from feat/toolchain-capability-pack-t8 into master
All checks were successful
Push & PR Check / check (push) Successful in 1m5s
2026-09-22 21:15:37 +08:00
lanrtop
23e9c297ca fix(ci): 使用项目工具链版本声明
All checks were successful
Push & PR Check / check (push) Successful in 1m7s
Push & PR Check / check (pull_request) Successful in 53s
Rules-Applied: R13
2026-09-22 22:09:28 +09:00
lanrtop
ff3f3d40d6 feat(toolchain): 补齐炼境自身工具链契约
Some checks failed
Push & PR Check / check (push) Failing after 31s
Push & PR Check / check (pull_request) Failing after 25s
Feature-Confirmed: true
Rules-Applied: R02,R13
2026-09-22 22:01:35 +09:00
6 changed files with 22 additions and 9 deletions

View File

@ -472,10 +472,10 @@ modules:
- id: toolchain-capability-pack - id: toolchain-capability-pack
name: 项目工具链能力包 name: 项目工具链能力包
area: infra area: infra
status: done status: in_progress
progress: 100 progress: 87
updated: 2026-09-22 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 自洽补强进行中:炼境自身本地与 MCP 工具链验证通过,首次 push CI #120 暴露 workflow 硬编码 pnpm 版本与 packageManager 重复,正将 Gitea CI 收敛到同一标准声明;不追随 Codex bundled runtime,明确不支持 WSL。"
position: [2500, 950] position: [2500, 950]
edges: edges:
# 前端依赖 # 前端依赖

View File

@ -1,8 +1,8 @@
--- ---
id: toolchain-capability-pack id: toolchain-capability-pack
name: 项目工具链能力包 name: 项目工具链能力包
status: done status: in_progress
progress: 100 progress: 87
--- ---
## 设计决策:项目工具链契约、解析与 Agent 执行闭环 v1 ## 设计决策:项目工具链契约、解析与 Agent 执行闭环 v1
@ -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 阻塞。" - 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 部署。" - 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: in_progress
- complexity: M
- 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:本地与 MCP 验证已通过;首次 push CI #120 暴露 workflow 同时硬编码 pnpm 9 与读取 packageManager 的重复版本冲突,任务重新打开以将 CI 收敛到同一契约。"
- retrospective: "待 PR CI 完成后收口。"
## 执行顺序 ## 执行顺序
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 以消费者角色完成最终闭环。 核心能力先只读、后受控写;炼境实现者验证完成后,必须由 Enterprise System 以消费者角色完成最终闭环。

View File

@ -16,13 +16,11 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: '20' node-version-file: '.nvmrc'
cache: 'pnpm' cache: 'pnpm'
# 服务端 commit message 校验(lefthook 在 agent 沙箱内会静默失效,此为机器层硬补偿) # 服务端 commit message 校验(lefthook 在 agent 沙箱内会静默失效,此为机器层硬补偿)

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
24.19.0

4
mise.toml Normal file
View File

@ -0,0 +1,4 @@
# 炼境工具链能力包:版本事实仍由 .nvmrc 与 package.json#packageManager 持有。
# 本文件只让 mise 读取这些标准声明,不重复保存 Node/pnpm 版本。
[settings]
idiomatic_version_file_enable_tools = ["node", "pnpm"]

View File

@ -2,6 +2,7 @@
"name": "dev-manager-tauri", "name": "dev-manager-tauri",
"private": true, "private": true,
"version": "0.1.19", "version": "0.1.19",
"packageManager": "pnpm@9.15.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",