一键导入
verify
Verify Snakie changes end-to-end on this headless Pi — web build in headless Chromium via puppeteer-core; desktop renderer via the browser preview.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Verify Snakie changes end-to-end on this headless Pi — web build in headless Chromium via puppeteer-core; desktop renderer via the browser preview.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | verify |
| description | Verify Snakie changes end-to-end on this headless Pi — web build in headless Chromium via puppeteer-core; desktop renderer via the browser preview. |
No display, no hardware. Two surfaces are drivable:
npm run build:web # emits dist-web/ (index.html + board.html)
python3 -m http.server 5174 -d dist-web # serve (0.0.0.0 — user can also preview)
Drive with puppeteer-core + system Chromium (/usr/bin/chromium, no
playwright/puppeteer download needed on ARM64):
import puppeteer from 'puppeteer-core'
const browser = await puppeteer.launch({
executablePath: '/usr/bin/chromium',
headless: 'new',
args: ['--no-sandbox', '--disable-dev-shm-usage']
})
Install puppeteer-core in the session scratchpad, NOT the repo.
Gotchas learned the hard way:
aria-label/title "New file") before looking for .monaco-editor.button[aria-label="Toggle Board View"]; it opens
board.html as a popup — grab it via browser.once('targetcreated', …).BroadcastChannel('snakie.board.v1') — you can post
{t:'request'} from any page and observe the {t:'source', payload} reply.keyboard.press in .catch().page.on('dialog', d => d.accept()) BEFORE clicking anything —
the app uses window.confirm, which blocks the page and times out CDP.evaluateOnNewDocument deleting
showDirectoryPicker/showOpenFilePicker/showSaveFilePicker — the app
then falls back to the OPFS Projects/ folder.--use-angle=swiftshader --enable-unsafe-swiftshader in the launch args.vite.preview.config.mjs serves the renderer with the no-op window.api
fallback on :5174 (npx vite --config vite.preview.config.mjs). Good for
layout/UI checks only — device/fs features are inert. Real Electron behavior
(preload, IPC, serial) cannot be verified on this box; say so rather than
faking it.