Conversation
Timelock alerts were stored under their uppercase Telegram routing key (YEARN_TIMELOCK, CAP, 3JANE, ...), but protocol pages query the alerts API with an exact-match lowercase key (yearn, cap, 3jane, comp, ethplus), so no timelock alert ever appeared on the website. Keep routing unchanged and pass the website key as origin_protocol. The internal Yearn mirror keeps its own key to avoid duplicate rows on the Yearn page. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Timelock alerts never appear on https://curation.yearn.fi/monitoring/ protocol pages (e.g.
/monitoring/yearn/).timelock_alerts.pypasses its uppercase Telegram routing key (YEARN_TIMELOCK,CAP,3JANE,INFINIFI,AAVE, …) tosend_telegram_message, which also stores it as the alert'sprotocol. The website queriesGET /v1/alerts?protocol=<key>&source=protocolwith an exact-match key taken from each page'sdata-api-protocol(yearn,cap,3jane,comp,ethplus, …), so every timelock alert was filtered out.Live API confirms it:
protocol=YEARN_TIMELOCKreturns the missing Yearn timelock alerts;protocol=yearndoes not.Fix
origin_protocolparameter: the lowercased routing key, with exceptionsYEARN_TIMELOCK → yearn,RTOKEN → ethplus,LRT → pegs.YEARN_TIMELOCK_INTERNALmirror keeps its own key so the Yearn page doesn't show each alert twice.Open questions / follow-ups
LRT → pegsis a guess. Thelrt-pegs(andmaple) pages currently have no alert table.pegsmatches what the lrt-pegs scripts use.monitoring.db(not run):/monitoring/timelock/stays empty forsource=protocol: it queriesprotocol=timelock, and an alert has one protocol key. Showing alerts there too needs a frontend/API change (multi-key filter or a metadata tag).Testing
pytest tests/test_timelock_alerts.py tests/test_monitoring_config.py: 21 passedruff check: clean🤖 Generated with Claude Code