From c326195eda81bf104825b88902f3b94262ccce40 Mon Sep 17 00:00:00 2001 From: wangzhizhou <824219521@qq.com> Date: Thu, 22 Oct 2026 09:02:45 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3=E6=9C=AC=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E9=87=8C=20CLI=20=E9=AA=8C=E6=94=B6=E7=9A=84=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E8=B0=83=E7=94=A8=E6=96=B9=E5=BC=8F=EF=BC=88`--cli=20?= =?UTF-8?q?'uv=20run=20orzmc'`=20=E8=B7=91=E4=B8=8D=E8=B5=B7=E6=9D=A5?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上一笔 #100 把路径改对了(父仓库 `scripts/accept/cli.py`),但示例命令写成了 `--cli 'uv run orzmc'` —— 实测必挂: $ python3 scripts/accept/cli.py --cli 'uv run orzmc' [FAIL] surface/no-args-prints-help stderr='error: No such file or directory (os error 2)' 原因:harness 的**每个用例都从自己的沙箱目录启动**(`cwd=`,HOME/XDG_* 也换掉), 命令串里的相对路径(`python`、`.`)按沙箱解析,那里既没有 venv 也没有 pyproject。 改成 CI 同款的稳定写法(先取 venv 里的绝对入口,25 例实测 64s): bin="$(uv run --all-packages python -c 'import shutil; print(shutil.which("orzmc"))')" uv run python ../scripts/accept/cli.py --cli "$bin" `--cli dist/orzmc --frozen` 不用改:脚本会把**已存在的文件路径** resolve 成绝对路径。 父仓库 `build_cli` 的 docstring 已补上这条 cwd 说明(纯注释)。 --- AGENTS.md | 3 ++- CONTRIBUTING.md | 5 +++-- README.md | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 818ce43..00b9b94 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -151,7 +151,8 @@ uv publish # 发布到 PyPI uv run --package orzmc-app python scripts/build.py # PyInstaller 单文件二进制 → dist/ uv run python scripts/accept_selfupdate.py # 安装器 + 自升级本地验收(跨平台,--skip-build 复用 dist/) uv run python scripts/accept_selfupdate.py --skip-build --powershell pwsh --expect-ps-major 7 # Windows:再验一遍 PS 7 -uv run python ../scripts/accept/cli.py --cli 'uv run orzmc' # CLI 行为验收(源码模式,真实进程、按规范断言) +bin="$(uv run --all-packages python -c 'import shutil; print(shutil.which("orzmc"))')" +uv run python ../scripts/accept/cli.py --cli "$bin" # CLI 行为验收(源码模式,真实进程、按规范断言) uv run python ../scripts/accept/cli.py --cli dist/orzmc --frozen # 同一套断言跑**冻结二进制**(发布前必跑) uv run python ../scripts/accept/cli.py --list-cases # 看有哪些用例/分组;--only envelope,completion 只跑一组 uv lock # 锁定依赖 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3519580..9a00603 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,8 +17,9 @@ uv run ruff check . uv run ruff format --check . uv run mypy uv run --all-packages pytest -uv run python ../scripts/accept/cli.py --cli 'uv run orzmc' # CLI 行为验收(真实进程:帮助/信封/退出码/取消/补全/MCP) -uv run python ../scripts/accept/cli.py --cli 'uv run orzmc' --state-paths ../docs/spec/state-paths.json # 额外比对补全落点 +bin="$(uv run --all-packages python -c 'import shutil; print(shutil.which("orzmc"))')" +uv run python ../scripts/accept/cli.py --cli "$bin" # CLI 行为验收(真实进程:帮助/信封/退出码/取消/补全/MCP) +uv run python ../scripts/accept/cli.py --cli "$bin" --state-paths ../docs/spec/state-paths.json # 额外比对补全落点 uv build --all-packages ``` diff --git a/README.md b/README.md index 6316e9c..198d4e4 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,8 @@ uv run python scripts/accept_selfupdate.py --skip-build --powershell pwsh --expe # CLI 行为验收(真实进程:帮助/信封/退出码/取消语义/补全/MCP;按规范断言) # 脚本在父仓库 `scripts/accept/cli.py`(一份判据,Python 与 Swift 共用) -uv run python ../scripts/accept/cli.py --cli 'uv run orzmc' +bin="$(uv run --all-packages python -c 'import shutil; print(shutil.which("orzmc"))')" +uv run python ../scripts/accept/cli.py --cli "$bin" uv run python ../scripts/accept/cli.py --cli dist/orzmc --frozen # 同一套断言跑冻结二进制(发布前必跑) # 真实下载 Minecraft / Java 并启动