Run the end-to-end viewer smoke test (`tests/viewer_smoke.sh`). Spawns `rezolus view` in upload-only, file, A/B, and proxy modes, exercises the API endpoints, and verifies experiment attach/detach. Use after any change touching `src/viewer/` or before opening a viewer-related PR.
Create a feature branch, commit changes, push, and open a PR against iopsystems/rezolus
Ensure site/viewer/lib has correct symlinks to src/viewer/assets/lib
Create a release PR with version bump and changelog update