The site serves install.sh at /retrobios/i and install.ps1 at
/retrobios/i.ps1. generate_site.py writes both copies with the
installer address set to install.py at the commit the site is built
from (GITHUB_SHA in CI, HEAD locally), so the pinned SHA-256 and the
downloaded installer always come from one commit, including while a
deploy is still running.
Every command a user copies names the short address. The raw form
stays on the installer page as the fallback. Deploy Site now runs on
changes to install.sh and install.ps1. The install box weight keeps
the address length its ratio was fitted on, so no console page moves.
Merging the card and platform branches left two SHORT_HASH definitions, 8 and 12. The later one silently won, so the platform rows showed 12 characters while their tests expected 8. One constant now, 12, the card anchor's length. The copy-button selector skips buttons that carry their own data-copy, and the tests follow the merged markup.
The install box's select had a rule of its own that dropped the arrow
and read as a text field. It now takes the shared select rule and
--rb-select-arrow in both themes.
System and emulator file cards show the name, size, download, a short
SHA1 with a copy button, the setups and the emulators. The full hashes
and the other facts sit in one closed fold, each hash with a copy button.
A system's install box shows one command under the OS tabs for the
setup picked in a list, remembered across pages. Without the script the
list of every command shows, open. The Markdown the page budgets are
measured on is unchanged, so no card moves.