#!/usr/bin/env bash # check-render.sh — **看得見的驗收**:用 headless Chrome 真的渲染一次並量像素(t193) # # 🔴 leo 2026-08-04:「既然是 Web,你做的時候**無法檢視**?例如用 chrome dev tool mcp?」 # ⇒ 對,可以。以後改完 UI 就跑這支,不要再拿沒看過的畫面交件。 # # 它驗兩件肉眼容易漏、但機器一量就知道的事: # ① lockup 底板與品牌區背景是否接合(paper-on-ink.png 自帶不透明 Ink 底板, # 背景不對就會出現一個突兀方塊——leo 截圖裡看到的就是它) # ② 深色模式的規則有沒有真的進到 build(曾發生 dist 是舊的、我卻對著舊圖除錯) set -uo pipefail cd "$(dirname "$0")" CHROME="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" [ -x "$CHROME" ] || { echo "❌ 找不到 Chrome,跳過渲染檢查"; exit 0; } [ -d frontend/dist ] || { echo "❌ 沒有 frontend/dist——先 wails build"; exit 1; } W=$(mktemp -d); trap 'rm -rf "$W"; kill %1 2>/dev/null' EXIT cp -R frontend/dist/* "$W/" cat > "$W/mock.js" <<'JS' window.go={main:{App:{GetState:async()=>({version:'v0',statusBig:'看守中',statusSub:'', syncing:false,engine:'workers-ai',geminiKey:'',extractedOK:0,accounts:[]}), SyncNow:async()=>{},PickFolder:async()=>'',AddFolder:async()=>{},RemoveFolder:async()=>{}, SetAI:async()=>{},OpenURL:()=>{},Connect:async()=>{},CheckUpdate:async()=>({})}}}; JS python3 - "$W" <<'PY' import re,sys p=sys.argv[1]+'/index.html'; s=open(p,encoding='utf-8').read() s=s.replace('src="/assets/','src="./assets/').replace('href="/assets/','href="./assets/') s=s.replace('\n