# Testing and acceptance ## Automated checks ```bash npm test npm run package:test bash -n packaging/*.sh python3 -m py_compile apps/control-center/main.py computer-use/py/*.py git diff --check ``` The Node suite covers daemon infrastructure, QVAC ownership, network policy, observer behavior, computer-use safety, runtime tools, and voice behavior. The vendored harness test is included in the root test command. `test/brand.test.js` checks tokens, SVG marks, HoneyPeer/AGPL fields, and St-safe HUD CSS (no `/* */`, no `alpha(`, no `icon-size`). `test/license.test.js` checks the AGPL license files. `test/gnome-extension.test.js` covers tray HUD behavior (Chat/Thinking tabs, hold-to-talk, expanded session, panel name versus state chip). ## Host acceptance | Area | Procedure | Expected result | | --- | --- | --- | | GPU | `npm run gpu-doctor` | QVAC reports a usable GPU and profile fit | | Portals | `npm run cu-doctor` | portal, PipeWire, AT-SPI, and libei checks pass | | Voice | [voice acceptance](voice-acceptance.md) | wake, VAD, TTS, anti-feedback, cancel pass | | Computer use | [CU acceptance](cu-acceptance.md) | observe, act, abort, lock kill pass | | Packaging | `npm run package:test` | `.deb`, zip, checksum all validate | | Gitea | push a test commit to a branch/workflow | CI completes without release side effects | ## Release gate Before a permanent tag, run the package smoke test, verify the rolling artifact on the target Ubuntu GNOME release, execute the typed and voice demos, and record GPU doctor output. Do not call a CPU diagnostic result a successful inference acceptance.