Multisig pause, packed args, keeper alerting, DAG dependency fix - #1139
Merged
ayomideadeniran merged 5 commits intoAug 31, 2026
Merged
Conversation
…unpause Replaces the hardcoded 3-of-N guardian threshold with an admin-configurable PauseThreshold, and replaces the instant admin-only unpause with a guardian-signed propose_unpause + execute_unpause flow gated by a 24h governance timelock, per issue SoroLabs#774.
Adds a compact bit-packed encode/decode module (packed_args) for task invocation arguments as a gas-optimized alternative to default XDR framing, and switches validate_args to use the real serialized byte length instead of a crude fixed-64-bytes-per-arg heuristic, per issue SoroLabs#775.
…rAlertManager Extends webhook alerting to fan out to Slack, Discord, and PagerDuty simultaneously, adds low-balance and RPC 5xx-error alert triggers plus a process-crash hook, and rate-limits repeated alerts per kind to prevent webhook spam, per issue SoroLabs#786.
…ycle bypass register() previously stored config.blocked_by verbatim without running would_create_cycle/depth checks, letting a caller pre-seed a dependency cycle or self-reference that add_dependency's validation would otherwise reject. Dependency edges must now always go through add_dependency / add_dependency_with_rule, which already enforce parent-task existence, cycle detection, and MAX_DEPENDENCY_DEPTH before a child can be blocked on a parent's execution outcome/timestamp, per issue SoroLabs#776.
|
@katefominmoore23 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
@katefominmoore23 is attempting to deploy a commit to the Ayomide Adeniran's projects Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
|
Pr under review |
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.
Summary
emergency_pause, plus a guardian-signedpropose_unpause/execute_unpauseflow gated by a 24h governance timelock (replaces instant admin-only unpause).packed_argsbit-packed encode/decode module for task invocation arguments, andvalidate_argsnow uses the real XDR-serialized size instead of a fixed 64-bytes-per-arg heuristic.KeeperAlertManagernow fans alerts out to Slack, Discord, and PagerDuty simultaneously, with new low-balance, RPC 5xx, and process-crash triggers, plus per-alert-kind rate limiting to prevent webhook spam.register()no longer stores a caller-suppliedblocked_byverbatim (which bypassed cycle/depth checks); dependency edges must go throughadd_dependency/add_dependency_with_rule.Closes #774, closes #775, closes #786, closes #776
Test plan
cargo build --target wasm32-unknown-unknown --releaseincontract/cargo testincontract/keeperAlerts.js