# SendTo release smoke test

Use this checklist before publishing a full SendTo package or refreshing the public archive.

## Bundled tools

- Run `Check-BundledEncoderUpdates.ps1` from the package root.
- Confirm `yt-dlp.exe`, FFmpeg, FLAC, LAME, opus-tools, and vgmstream are current or explicitly reviewed.
- Keep the generated encoder-update report in `E:\Software\Misc` for release notes/history.

## Package metadata

- Update `.sendto.json` with the new version, archive name, archive URL, published date, and user-facing notes.
- Build the `.7z` package with the internal `.sendto.json` in package form, without the final `size` and `sha256` fields.
- After the archive is built, calculate its exact byte size and SHA-256.
- Update the public/server `.sendto.json` values with that final size and SHA-256.

## Public download checks

- Upload the new archive and public `.sendto.json` to `3.onj.me:public_html/programs`.
- Update `https://onj.me/sendto` so it redirects to the new archive.
- Keep at most one previous `.htaccess` backup on the server. Do not create a growing pile of timestamped backups.
- Remove older full SendTo archives from `3.onj.me:public_html/programs` after the new archive and manifest are verified. Keep only the current full archive plus bootstrap/core packages that are still in use.
- Verify `curl -I https://onj.me/sendto` reports a redirect to the new archive.
- Verify `curl -I https://3.onj.me/programs/<archiveName>` reports `200 OK` and the expected `Content-Length`.
- Verify `https://3.onj.me/programs/.sendto.json` reports the same archive name, size, and SHA-256 as the local archive.

## Installed/update path

- Extract or install the previous public package in a disposable temp folder.
- Run its updater against the public manifest.
- Confirm it downloads and verifies the new archive, preserves user-owned `path.txt`, and installs the expected `encoders` and `shortcuts` contents.
- Confirm the update scripts handle missing 7-Zip cleanly: if `7z.exe` is not found in PATH or the standard Program Files locations, the script should offer to install `7zip.7zip` through winget before downloading/extracting the SendTo archive.

## Cleanup

- Remove disposable extracted packages and temp downloads after the smoke test.
- Keep only the current full SendTo archive in `E:\Software\Misc`; remove older full archive files once the public upload is verified.
- Check `D:\projects\Codex\temp\sendto-*` and remove staging/extracted verification folders after release.
