# Push changelogs The user authorized Discord changelogs after new changes are successfully pushed. Maintain a concise, player-facing newest entry in `CHANGELOG.md` for each update. The `.drone.yml` pipeline can deliver it automatically for pushes to `main` from any checkout. See `docs/discord-changelog-ci.md` for activation and secret setup. On 2026-10-17 the user confirmed Drone is prepared with `discord_webhook_url` and requested a test push. Drone now owns delivery; do not run the manual helper for that push or subsequent pushes unless the user explicitly requests a fallback. Once Drone activation and its `discord_webhook_url` secret are confirmed, let Drone deliver the changelog and do not also run the manual helper. Check its delivery result when available; do not claim delivery from Git push success alone. Until Drone activation is confirmed, after each successful push to `origin/main` from this checkout: 1. Prepare a concise, player-facing changelog covering the commits in that push. Include only the changelog: describe fixes/features accurately, without server, deployment, or Git push status. Do not add operational disclaimers or footers. Phrase gameplay fixes without mentioning the server (for example, "Fixed radio station generation after an empty-session wait"). 2. Save the message to a temporary file and run `python3 tools/discord_changelog.py --commit --message-file `. 3. Report a delivery failure honestly. Do not blindly retry a pending delivery; check Discord first to avoid duplicates. The webhook credential is in `.local/discord-webhook.url` (ignored, owner-only). Never print it, commit it, or put it into changelogs or command-line arguments. The helper verifies the remote commit, disables mentions, and records delivery in `.local/discord-changelog-state.json`. Do not backfill old commits unless requested. The manual helper is a fallback assistant workflow, not a Git hook. The Drone pipeline replaces it after activation; do not configure a second Discord push webhook alongside it. Inspect Discord before retrying an uncertain CI delivery or rebuilding the same push, since builds do not share delivery state.