e5ac4faf7b
New workflow: when a vX.Y.Z tag is pushed (or workflow_dispatch runs with a tag input), reads .github/forge-posts/<tag>.md for the DE bullet body plus frontmatter (subtitle, versionsnatur), pulls the matching English block from HellionChat.yaml, builds the Discord webhook embed and posts it to the Hellion Forge #changelog channel. Decoupled from release.yml — a fail here doesn't block the release, and a fail there doesn't block the announce. Hard caps at 5500 chars total (title + description + footer); major releases that exceed that get a clear fail message and stay manual. Tag is read via env: TAG_NAME and validated against ^v\d+\.\d+\.\d+$ before any string interpolation; frontmatter is regex-parsed with explicit length caps (subtitle 60, versionsnatur 40). Curl posts the payload via stdin so the secret never appears in process args. Single retry on transient 5xx after 30s, hard fail on 4xx.