Install guide, local KVM test rig and the clean toggle-test video #2

Merged
aporter merged 2 commits from docs/install-guide-and-vm-rig into main 2026-11-02 08:44:32 +10:00
Owner

Commits all outstanding work so it can be merged. No plugin source (src/) changes.

What's in it

  • INSTALL.md — step-by-step install on the Windows AV PC (picked up from the earlier install-guide thread), linked from the README. Adds a note that CI artifacts need a working Forgejo runner, and a troubleshooting row for the one-time first-press save failure seen on a fresh Stream Deck install (CryptGenKey in Stream Deck's log; the plugin refuses safely, the next press works).
  • testing/host/kvm/ — create and drive the Windows 11 test VM on a local Linux KVM host (the CachyOS box): vm-create.sh, host-side w/iact/wsend, Mac-side run.sh/send.sh/w.sh. VM password and SSH key are generated on that host and never leave it; all ports bind 127.0.0.1.
  • testing/vm/ — fresh-VM setup (inst, winget, vdd, sdsetup), Zoom join + popup cleanup (znew, zjoinurl, zurlall, zsetup), and the clean recording pipeline (record, guard, vf540, finish, shot). testing/README.md documents the build order and gotchas.
  • Fixes: testing/host/w now uses ssh -n (it swallowed the caller's stdin, so later commands in a piped script silently never ran); vsd-usbip-dl.ps1 no longer runs the installer with /?, which blocks forever over SSH.
  • videos/jwzoom-toggle-test-1920x540.mp4 (680 KB) — 70 s recording, no popups, no cursor: two cover/restore rounds from the default layout and one from minimised. README "Tested" links it.

Checks

  • npm run check: typecheck, 37/37 tests, build, manifest validation — pass.
  • gitleaks on the staged changes: no leaks. git diff --check clean. shellcheck -S warning clean on the new shell scripts.
  • Helpers exercised end to end on the live CachyOS VM (fresh install → displays → emulated Stream Deck → plugin → Zoom → layout → six verified key presses → recording).
  • CI isn't expected to run: there are no working Forgejo runners right now.

Review
Gate 1 skipped: docs and test tooling only, no plugin behaviour change.
Review-gate: gpt-6.1-sol (Codex) fix-then-ship. Blocking item: the fresh-VM steps ran zsetup.ps1 (which needs harness.mjs and koffi) before the harness was built/copied, and never said how to build it. Resolved in a7d660a: new step 7 builds (npx rollup -c rollup.harness.config.mjs) and copies the harness and node_modules before Zoom setup. Nits also taken: iact fails fast on a failed upload and keeps the exit status; README notes the Mac wrappers need GNU timeout. Not re-reviewed (docs-only fix).

🤖 Generated with Claude Code

Commits all outstanding work so it can be merged. No plugin source (`src/`) changes. **What's in it** - **INSTALL.md** — step-by-step install on the Windows AV PC (picked up from the earlier install-guide thread), linked from the README. Adds a note that CI artifacts need a working Forgejo runner, and a troubleshooting row for the one-time first-press save failure seen on a fresh Stream Deck install (`CryptGenKey` in Stream Deck's log; the plugin refuses safely, the next press works). - **testing/host/kvm/** — create and drive the Windows 11 test VM on a local Linux KVM host (the CachyOS box): `vm-create.sh`, host-side `w`/`iact`/`wsend`, Mac-side `run.sh`/`send.sh`/`w.sh`. VM password and SSH key are generated on that host and never leave it; all ports bind 127.0.0.1. - **testing/vm/** — fresh-VM setup (`inst`, `winget`, `vdd`, `sdsetup`), Zoom join + popup cleanup (`znew`, `zjoinurl`, `zurlall`, `zsetup`), and the clean recording pipeline (`record`, `guard`, `vf540`, `finish`, `shot`). `testing/README.md` documents the build order and gotchas. - **Fixes:** `testing/host/w` now uses `ssh -n` (it swallowed the caller's stdin, so later commands in a piped script silently never ran); `vsd-usbip-dl.ps1` no longer runs the installer with `/?`, which blocks forever over SSH. - **videos/jwzoom-toggle-test-1920x540.mp4** (680 KB) — 70 s recording, no popups, no cursor: two cover/restore rounds from the default layout and one from minimised. README "Tested" links it. **Checks** - `npm run check`: typecheck, 37/37 tests, build, manifest validation — pass. - gitleaks on the staged changes: no leaks. `git diff --check` clean. shellcheck `-S warning` clean on the new shell scripts. - Helpers exercised end to end on the live CachyOS VM (fresh install → displays → emulated Stream Deck → plugin → Zoom → layout → six verified key presses → recording). - CI isn't expected to run: there are no working Forgejo runners right now. **Review** Gate 1 skipped: docs and test tooling only, no plugin behaviour change. Review-gate: gpt-6.1-sol (Codex) fix-then-ship. Blocking item: the fresh-VM steps ran `zsetup.ps1` (which needs `harness.mjs` and koffi) before the harness was built/copied, and never said how to build it. Resolved in a7d660a: new step 7 builds (`npx rollup -c rollup.harness.config.mjs`) and copies the harness and `node_modules` before Zoom setup. Nits also taken: `iact` fails fast on a failed upload and keeps the exit status; README notes the Mac wrappers need GNU `timeout`. Not re-reviewed (docs-only fix). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- INSTALL.md: step-by-step install on the Windows AV PC (from the earlier
  install-guide thread), plus a note that CI artifacts need a working runner
  and the one-time first-press save failure seen on a fresh Stream Deck.
- testing/host/kvm: create and drive the Windows 11 test VM on a Linux KVM
  host (vm-create.sh, w/iact/wsend, Mac-side run/send/w wrappers).
- testing/vm: fresh-VM setup (inst, winget, vdd, sdsetup), Zoom join and
  popup cleanup (znew, zjoinurl, zurlall, zsetup), and the clean recording
  pipeline (record, guard, vf540, finish, shot).
- host/w: ssh -n so it no longer swallows the caller's stdin.
- vsd-usbip-dl.ps1: drop the installer '/?' call that blocks over SSH.
- videos/jwzoom-toggle-test-1920x540.mp4: 70 s recording, no popups.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Test rig README: build and copy the harness before Zoom setup; iact fails fast
Some checks failed
ci / secrets (pull_request) Successful in 7s
ci / build (pull_request) Failing after 23s
a7d660a42a
Gate 2 review (gpt-6.1-sol): zsetup.ps1 uses harness.mjs, which the fresh-VM
steps only provided afterwards and never said how to build. Also document where
the plugin package goes, that the Mac wrappers need GNU timeout, and make iact
stop on a failed upload and keep the remote exit status.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
aporter/jwzoomswitcher!2
No description provided.