Skip to content

release: v0.5.0 — macOS vz 完整支援 + 預設啟用 + 動態解析度#130

Merged
TimLai666 merged 2 commits into
mainfrom
feat/vz-default-on
Jul 19, 2026
Merged

release: v0.5.0 — macOS vz 完整支援 + 預設啟用 + 動態解析度#130
TimLai666 merged 2 commits into
mainfrom
feat/vz-default-on

Conversation

@TimLai666

Copy link
Copy Markdown
Owner

為什麼

實機驗證於 2026-07 在 Apple Silicon(macOS 26)全綠後,vz 後端已非「實驗性」。CHEFER_VZ_EXPERIMENTAL env 鎖當初的理由(實機驗證前不假裝能跑)已消失。更關鍵:macOS 上 vz 是唯一執行後端,鎖著等於使用者雙擊預設不能跑,違背 chefer「下載一個檔就能跑」的核心。

改了什麼

  • crates/vmm-backend/src/vz.rs / lib.rs:移除 availability() 開頭的 CHEFER_VZ_EXPERIMENTAL env 鎖。保留底下四道把關——host arch、內嵌 appliance、內嵌 helper(含 entitlement)、macOS 13+——缺任一即誠實回報 Unavailable
  • scripts/vz-smoke.sh:清掉四處已無作用的 CHEFER_VZ_EXPERIMENTAL=1 前綴。
  • README.md / docs/DESIGN.md / docs/HANDOFF-macos-vz.md:改為「預設啟用」,補 HID/關窗已驗證與 Intel caveat。

Intel 取捨(明確記錄)

Intel(x86_64)走完全相同的 Rust/Swift 程式路徑、只換 appliance arch,但實機 VZ 開機僅在 Apple Silicon 驗過(GHA runner 兩種 arch 都開不了 VZ guest)。此差異以文件註記,不另上 runtime 鎖——鎖會擋掉很可能可行的路徑。

同批帶入:HID/關窗實機驗證回填

本輪以 computer-use 驅動實機視窗完成、README/DESIGN 一併更新:

  • HID:guest 內 xev 記到指標 motion、按鍵 press/release、忠實且各異的 keycode(數字排 10/11/12/13 一對一),證明 NSEvent → VZ USB HID → guest evdev 鏈完整。字母鍵在 macOS 端被輸入法(注音)轉換屬 host artifact,非 chefer。
  • 關窗:紅鈕 → windowWillClose → vm.stop → exit(0),runtime 回 exit code = 0,無殘留 helper/VM。

驗證

  • cargo fmt --check 乾淨、cargo clippy --workspace 0 警告cargo test 全 ok。
  • 功能實證:一個 app 不設任何環境變數執行 → VM 開機、服務跑、exit 7 正確傳播(先前會回報 experimental/unavailable)。
  • bash -n scripts/vz-smoke.sh 通過。

🤖 Generated with Claude Code

TimLai666 and others added 2 commits July 19, 2026 13:20
實機驗證於 2026-07 在 Apple Silicon(macOS 26)全綠後,vz 已非實驗性。
移除 availability() 開頭的 CHEFER_VZ_EXPERIMENTAL env 鎖:macOS 上 vz 是
唯一執行後端,鎖著等於雙擊預設不能跑,違背單檔精神。availability() 改為
純依真實前提判定(host arch / 內嵌 appliance / 內嵌 helper / macOS 13+),
缺任一即誠實回報 Unavailable。

Intel(x86_64)走完全相同的程式路徑、只換 appliance arch,但實機 VZ 開機
僅在 Apple Silicon 驗過(GHA runner 兩種 arch 都開不了 VZ guest);此差異
以文件註記,不另上 runtime 鎖(否則會擋掉很可能可行的路徑)。

同批補上這輪以 computer-use 驅動實機視窗完成的 HID/關窗驗證回填:
- HID:guest 內 xev 記到指標 motion、按鍵 press/release、忠實且各異的 keycode
  (數字排 10/11/12/13 一對一),證明 NSEvent→VZ USB HID→guest evdev 鏈完整;
  字母鍵在 macOS 端被輸入法(注音)轉換屬 host artifact,非 chefer。
- 關窗:紅鈕 → windowWillClose → vm.stop → exit(0),無殘留 helper/VM。

Changed:
- crates/vmm-backend/src/vz.rs, lib.rs:移除 env 鎖 + 註解改寫
- scripts/vz-smoke.sh:清掉已無作用的 CHEFER_VZ_EXPERIMENTAL=1 前綴
- README.md / docs/DESIGN.md / docs/HANDOFF-macos-vz.md:改為預設啟用、
  補 HID/關窗已驗證、Intel caveat

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
user-facing crates(chefer-cli/runtime/pack/assembler/bundle、vmm-backend、
guest-agent)與一起出貨的 whp-helper 皆 bump 至 0.5.0;inline path-dep 版本約束
同步更新以保持 workspace 可解析。appcipe-spec / appcipe-normalize 的**自身**版本
維持 0.1.0(跟隨 appcipe.yml spec 版本,非 release)。

本版重點:macOS vz 後端完整實機驗證並預設啟用(移除 CHEFER_VZ_EXPERIMENTAL)、
VM GUI 執行中動態解析度 + HiDPI、容器內 DNS 注入,以及實機揪出的一批修復
(arm64 initramfs busybox 交叉建置、tar mode 還原、埠代理讓位)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TimLai666 TimLai666 changed the title feat(vz): macOS 後端預設啟用——移除 CHEFER_VZ_EXPERIMENTAL env 鎖 release: v0.5.0 — macOS vz 完整支援 + 預設啟用 + 動態解析度 Jul 19, 2026
@TimLai666
TimLai666 merged commit a44cb60 into main Jul 19, 2026
18 checks passed
@TimLai666
TimLai666 deleted the feat/vz-default-on branch July 19, 2026 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant