feat: skip DIPs rule cleanup when network data is stale#1224
Merged
MoonBoi9001 merged 3 commits intoJun 1, 2026
Merged
Conversation
The agent accepted DIPs agreements only on its 120s reconcile cycle, so under backlog they expired past the 300s deadline. This adds a dedicated 5s loop that accepts proposals in parallel (one per deployment, nonce-serialised) and creates the rule up front to deploy early.
c90d378 to
1c1fb04
Compare
The agent removes a DIPS indexing rule once the indexing-payments subgraph no longer lists a paying agreement for it. When that subgraph lags, its list is incomplete, so the agent would delete rules for live agreements. Skip the cleanup while the subgraph is behind or unreadable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4543a63 to
0b6036b
Compare
Maikol
approved these changes
May 29, 2026
Base automatically changed from
mb9/dedicated-fast-loop-for-dips-acceptance
to
main-dips
June 1, 2026 06:26
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.
TL;DR
The indexer-agent removes a DIPs indexing rule once the shared on-chain record no longer lists a paying agreement for it. When that record is lagging it can look empty even though agreements are live, so the agent would wrongly stop indexing work it is still being paid for. This skips the cleanup whenever the record is behind or can't be read, so a lagging data source can't trigger mass removal.
Motivation
The indexer-agent keeps a DIPs indexing rule for each subgraph it has a paying agreement to index, and removes a rule once the network's published record of agreements no longer backs it. That record is itself a subgraph that indexes on-chain agreement events, and like any subgraph it can fall behind the chain.
When it lags, its list of agreements is incomplete — recently-accepted ones, or in the worst case all of them, can be missing — so the removal step sees no backing agreement and deletes rules that are in fact live. The indexer then stops indexing subgraphs it is still being paid for, until the record catches up and the rules are recreated. This change skips the removal step whenever the record is behind wall-clock time by more than a short threshold, or its freshness can't be read at all.
Summary