Repository navigation
fix(timelock): show operation ID in scheduled alerts, escape stale alert label - #410
Merged
Merged
Conversation
…ert label Follow-ups to #409: - Scheduled TimelockController/Compound (and unknown-type) alerts now show the full operation ID as inline code in the header, matching the stale alert's "Operation ID" line so the two can be matched. Aave/Lido/Maple keep their proposal/vote lines. - Escape the timelock label in stale-operation alerts; a Markdown special in a config label made Telegram reject the message. - Update monitoring.yaml cards and the timelock README. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Follow-ups to #409, found by a code review of that PR.
Changes
🆔 Operation ID: \0x…`in the header, in the same format as the stale-operation alert. This lets you match a stale alert to the original scheduling alert and copy the ID intogetTimestamp/cancel. The line is in the header, so it survives when long call lists are truncated, and a batch shows it once. Aave, Lido and Maple keep their own🆔 Proposal:/🆔 Vote:lines. An event with nooperationId` gets no line, instead of an empty code span.format_operationputoperation.timelock.labelinto Markdown V1 unescaped. A_,*,`or[in a config label would make Telegram reject the message and fall back to plain text. It now usesescape_markdown, astimelock_alerts.pyalready does.monitoring.yamlcards (Timelock Events, Stale Ready Operations) and the timelock README now mention the operation ID, as AGENTS.md requires.Testing
uv run pytest -q tests/test_timelock_alerts.py tests/test_timelock_stale_operations.py tests/test_monitoring_config.py: 49 passed.prek run --all-files(ruff check, ruff format, ty) passes.tests/test_safe_main.py::TestSafeApiQuota. They fail the same way onmainand are unrelated to this change.🤖 Generated with Claude Code