Compare commits

...

3 commits

Author SHA1 Message Date
d0c64d75eb fix(sync): enforce THROTTLE as hard floor on threat broadcasts
Large threat deltas could bypass the 0.4 s gate entirely, sending
unbounded SendAddonMessage traffic in early combat (3.3.5 servers
disconnect chatty senders). Throttle now always applies; the
MIN_DELTA filter is checked separately afterwards.
2026-06-10 02:13:58 +02:00
3f71d66b0e ci(release): sync release.yml from coa-template
hide_archive_links is only honored by Gitea on release edit, not create —
add the PATCH step after create/lookup so auto-generated source archive
links actually stay hidden (coa-template 90874c5).
2026-06-10 02:11:46 +02:00
0f5e0c7e01 ci(release): hide auto-generated source archives (hide_archive_links) 2026-05-29 20:51:12 +02:00
2 changed files with 8 additions and 3 deletions

View file

@ -37,10 +37,14 @@ jobs:
RID=$(curl -sf -X POST -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
"$API/repos/$REPO/releases" \
-d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false}')" \
-d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false,hide_archive_links:true}')" \
| jq -r '.id')
fi
echo "release id: $RID"
# Gitea honors hide_archive_links only on edit, not create — PATCH it
# so the auto-generated Source Code (zip/tar.gz) links stay hidden.
curl -sf -X PATCH -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
"$API/repos/$REPO/releases/$RID" -d '{"hide_archive_links":true}' >/dev/null || true
# Upload every dist/*.zip. Per-asset failures don't fail the job —
# we want partial releases to still publish rather than block the
# whole pipeline on one big file.

View file

@ -34,7 +34,7 @@ local Omen = LibStub("AceAddon-3.0"):GetAddon("Omen")
if not Omen then return end
local PREFIX = "OMSYNC"
local THROTTLE = 0.4 -- min seconds between sends per (subject, mob)
local THROTTLE = 0.4 -- hard floor: min seconds between sends per (subject, mob)
local STALE = 8 -- seconds; entries older than this are ignored
local MIN_DELTA = 0.05 -- 5%; smaller changes don't trigger a send
@ -98,7 +98,8 @@ function Omen:SyncBroadcastThreat(subjectGUID, mobGUID, value, isTanking)
local age = now - prev.time
local maxV = math.max(value, prev.value, 1)
local pct = math.abs(value - prev.value) / maxV
if age < THROTTLE and pct < MIN_DELTA then return end
if age < THROTTLE then return end -- hard rate floor
if pct < MIN_DELTA then return end
end
lastSend[subjectGUID][mobGUID] = { value = value, time = now }