From 8d766161e8c1bca7f0dabbc1ac206596c7945f2f Mon Sep 17 00:00:00 2001 From: martbost Date: Fri, 14 Aug 2026 10:47:45 -0500 Subject: [PATCH] Auto-sync queue levels from on-chain upgrades MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a queue member's MemberUpgraded event lands, their Level in the rotation queue updates automatically (same op as the admin dropdown), with a Telegram note. Current queue trued up against the chain: four entries corrected (30, 35, 46 up to Ascensus; 56 down to Scintilla — it had been set optimistically). Co-Authored-By: Claude Fable 5 --- server.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server.js b/server.js index b662b60..a6f1341 100644 --- a/server.js +++ b/server.js @@ -469,4 +469,17 @@ chain.startIndexer(evt=>{ } } }catch(e){console.error('auto-direct error',e.message)} + // Queue level sync: when a queue member upgrades on-chain, their Level in the + // rotation queue follows automatically (same op as the admin level dropdown). + try{ + if(evt.type==='upgraded'&&evt.id!=null){ + const sponsors=getSponsors(); + const idx=sponsors.findIndex(x=>String(x.id)===String(evt.id)); + if(idx>=0&&LEVELS.includes(evt.levelName)&&sponsors[idx].level!==evt.levelName){ + sponsors[idx].level=evt.levelName; + saveSponsors(sponsors); + sendTelegram(`🤖 AUTO-LEVEL: queue sponsor #${sponsors[idx].id}${sponsors[idx].name?` (${sponsors[idx].name})`:''} upgraded on-chain — queue level updated to ${evt.levelName}.`); + } + } + }catch(e){console.error('auto-level error',e.message)} });