- .gitea/workflows/deploy.yml: test+build on every push; auto-deploy
dist/index.html to /password_manager via WebDAV on push to main (DELETE-
then-PUT to bypass stale-file cache), verifying deployed bytes match.
- Build injects __VAULT_COMMIT__ (from VITE_COMMIT_HASH=github.sha in CI,
git HEAD locally) and main.js logs console.info({ commit_hash }) on
startup so a deploy is verifiable against its source commit.