Releases: aragon/app-backend
Releases · aragon/app-backend
Release v0.28.0
0.28.0 (2026-06-17)
Features
- networks: add support for monadMainnet in various configurations (5e3abe5)
- proposal: implement out-of-order event handling for proposals (d633df3)
- simulation: enhance simulation error handling and validate network input (a803f03)
- simulation: implement simulateDirectExecute for direct action simulations (5dc169e)
Bug Fixes
- ci: write semantic-release dry-run log to RUNNER_TEMP to keep tree clean (1d87169)
- proposal: improve out-of-order event handling and logging for proposal execution (a432007)
- proposal: normalize cancelTxInfo to null (84add54)
- proposal: normalize legacy boolean cancelTxInfo and fix schema default (0041e71)
- proposal: update event registration to use type-safe log constants (8ed9485)
- rabbitmq: enhance stubRabbitmqSend to support additional routing options (1a3514a)
- simulation: use single-network validator for simulateDirectExecute schema (87eb6c2)
- test: remove excessive timeout from tokenVoting tests (6430931)
- test: remove exclusive focus from TokenVoting integration tests (c877bce)
Performance Improvements
- db: add compound indexes covering proposal and vote list sort paths (8e5b5a6)
Release v0.27.1
Release v0.27.1
Release v0.27.0
0.27.0 (2026-06-09)
Features
- anvilRpc: implement retry logic for RPC calls and add post-reset probe (50c0989)
- api: add global firstActive on member endpoint (BE-203) (#1292) (c5d4122)
- api: add token totalSupply cache with 30-minute freshness (e1996d7)
- api: IPFS resolution for delegate statement metadata (BE-204) (#1297) (409294c)
- api: live totalSupply for escrowAdapter tokens (BE-221) (#1298) (a850e84)
- api: optimize delegators listing — two-pass log query + drop per-row VP math (#1301) (32b3211)
- api: resolve delegate statements from IPFS (BE-204) (#1291) (85e243e)
- APP-537: rename DAO fields and update related logic. Add backward compatibility (d7372d6)
- APP-539: remove deprecated fields and update logic for linked accounts (341ae13)
- batchVeHandler, capitalDistributorHandler: refactor claim handling and deduplication logic (1db90ff)
- batchVeHandler: skip full DAO simulation test (6186932)
- BE-143: skip expensive crawl in findIncrementalId when previous proposal exists (c233c6b)
- BE-163: scoped retryAll for crawler RPC errors (#1186) (76772a6)
- BE-200: integration test fixture for BE-160 governance rewards calculator (#1247) (4a06dc6)
- campaign+gauge: campaign upload API, gauge reward distribution, and delegation batch sync migration (#1128) (5385654)
- campaign: add logo field to token data structure (2bf92e8)
- campaign: add metadata extraction for createCampaign action (7d56076)
- campaign: add network field to token projection and logo field to token data type (035bb28)
- campaign: enhance campaign lifecycle tests and improve reward management logic (f45f6ed)
- campaign: handle null logo values in token projection (123539f)
- campaign: implement parsing for createCampaign action with allocation aggregation (787faf3)
- campaign: implement syncTotalsFromRewards to update claimCount and totalClaimed (63de0be)
- campaign: refactor metadata fetching to use parser functions (cb66e55)
- campaign: remove isDraft filter from findDraftByMerkleRoot method (c09ac69)
- campaign: remove isDraft filter from findDraftByMerkleRoot method (f207369)
- campaign: update test to verify non-draft CampaignMerkleRoot retrieval (1e00cb4)
- campaign: update test to verify non-draft CampaignMerkleRoot retrieval (1823dba)
- capitalFlow: accept optional toBlock parameter and skip CapitalFlow Installation tests (bd515f3)
- citrea: add mainnet deployed contract addresses (block 5471881) (d820446)
- config: reduce MAX_BLOCK_RANGE to 999 for mainnet configurations (0dc2573)
- crawler: per-network MAX_BLOCK_RANGE cap + Citrea transfer sync test (#1258) (b486d69)
- crawlers: implement batch handling for log processing (1ccd34c)
- crawlers: unused web3Helper replaced with tickContext (f37d259)
- crawler: unit test (092ea35)
- dao: add chilizMainnet to EXPLORER_LAGGING_NETWORKS set (5ffad9e)
- dao: add chilizMainnet to EXPLORER_LAGGING_NETWORKS set (62c3bdb)
- decodeAction: skip integration tests for decodeAction (aeb88e5)
- decoder: add support for nested actions in execute/createProposal calls (cb585f7)
- decoder: enhance metadata handling for nested cross-DAO updates (aae246f)
- decoder: ensure value is always a string in toRawAction function (b248f0d)
- decoder: fetch and attach proposal metadata in createProposal action (ca95567)
- decoder: simplify metadata origin key determination for actions (4038173)
- decoder: update createCampaign action to zero totals while attaching metadata (ce0624d)
- delegateChangedSync: add admin API to force sync historical delegation events (#1242) (0e6dcf2)
- delegation: enhancements to the voting power and delegation APIs with integration test (#1300) (db9ff37)
- delegationEvents: stub CoinGeckoHelper and adjust blockLimit for tests (fec2dba)
- dex-quoter: dedicated bottleneck per network for DEX RPC calls (BE-205) (cd56ddb)
- docker: revert back the cache and image building (e7d65a9)
- docker: switch to slim variant of Node.js for builder and release stages (86aecbb)
- fetchRetry: add timeout cleanup to prevent memory leaks (59e98e8)
- gauge: add endpoint for retrieving gauge reward distribution by gauge (#1254) (ba0abf3)
- governance: add governance reward start block configuration and resolve logic (3b6509a)
- governanceBatchHandler: add tests for ExitQueuedV2 event handling and DaoMetrics deduplication (771bd6e)
- governance: implement govern...
v0.26.0
v0.25.0
v0.24.0
0.24.0 (2026-02-17)
Bug Fixes
- APP-476: show subdaos proposals in all proposals (#1140) (c88787d)
- blockchain: handle partial failures in getBlockReceipts and fallback to getLogsWithoutTopics (0dd6840)
- blockchain: handle partial failures in getBlockReceipts and fallback to getLogsWithoutTopics (c8f8b6d)
- change contract detection logic (05aa3ea)
- decodeAction: enhance parameter decoding for function signatures with tuples (#1106) (2649097)
- decodeAction: remove redundant CoinGecko call for testnet tokens (#BE-131) (#1126) (7cb25d5), closes #BE-131
- metadata: resolve policyKey not mapping to processKey in policy data (#BE-132) (#1127) (03142e2), closes #BE-132
- migration: correct migration files retrieval and ensure index synchronization (f05f88c)
- migration: remove unnecessary non-null assertion in executeMigration call (7fa8da2)
- proposal: handle RPC inconsistency in
findIncrementalIdcausing proposal drop (#1107) (fb9dcbc) - proposal: update error logging to include parsed event arguments (#1116) (f8cca01)
- sync package.json and yarn.lock with development (f62b3b9)
- taskScheduler: add shutdown handler cleanup and parallelize RatesService tasks (#1119) (5ed642f)
- tests: remove unnecessary variable assignment in blockchainLogCrawler tests (b075210)
Features
- add feeType property to settings and update related logic (45cf2cf)
- aggregation: add isPolicy parameter to plugin handling (61b2c62)
- aggregation: refine match conditions for isPolicy handling in aggregation logic (342fbd9)
- APP-416: implement dispatch simulation controller and related utils for processing summaries (4cd0258)
- asset: add 'onlyParent' filter option and update DAO address handling (9b9ae88)
- asset: add spam handling fields and logic for token management (9340121)
- asset: add spamCount to pagination metadata and update related types (1d57614)
- asset: enhance asset retrieval to support multiple DAO addresses and improve pagination logic (426f9a9)
- asset: simplify TVL calculation and improve aggregate response handling (739c493)
- asset: streamline total records calculation in aggregation pipeline (57f46b9)
- asset: streamline total records calculation in aggregation pipeline (cd63981)
- asset: update amount calculation to handle null values (a99a7ff)
- blockchainLog: increment lastSync value by 1 in progress tracking (#1125) (b03600a)
- cache smart contract bytecode (#1094) (b0f421b)
- common: add additional error messages for request timeouts (d789d8d)
- common: add additional error messages for request timeouts (aa8e5e8)
- common: add error message for query exceeding max results (8a67a84)
- common: add error message for query exceeding max results (407b321)
- dao: add optional onlyParent parameter to DAO retrieval methods (dc595e1)
- dao: handle null subDaos in lookup for improved DAO retrieval (a405b53)
- dao: implement parent-child relationships for DAOs with subDaos and parentDao fields (056f326)
- dao: implement WithoutPlugins API methods for DAO retrieval and pagination (6c92a89)
- dao: refactor plugin retrieval methods to support multiple DAO addresses (01ee89a)
- db: remove unused import for NetworksEnum to clean up code (66c3002)
- debug simulation (0ab4472)
- dependencies: update package versions for improved stability and features (8eedb02)
- dispatchSimulation: combined dispatchSimulation logic into a module; added unit tests (4559148)
- ens: enhance ENS validation and expiration checks for improved accuracy (cf6ac52)
- fix: confict on dev todo (21d2c96)
- governance: add ExitCancelled event handling and resync tool for DAO governance (f480097)
- ipfs: add support for multiple IPFS gateways (#1134) (43f7bf7)
- metadata: enhance DAO metadata handling with session support and improve session management (e3058bd)
- metadata: fixed warnings (a86ab7c)
- metadata: implement metadata refetching logic and related models (3b92fad)
- metadata: implement metadata refetching mechanism with retry logic (#1081) (db61fed)
- metadata: refactor metadata handler tests to remove unused logInfo and improve clarity (0a34769)
- metadata: remove unused parent-child relationship properties from LogMetadata (06f95cf)
- metadata: simplify DAO metadata update logic and remove parent-child relationship handling (54f3cee)
- metadata: update metadata handling to parse raw data and improve test coverage ([6bd4348](https://github.com/aragon/app...
v0.23.1
v0.23.0
0.23.0 (2026-01-23)
Bug Fixes
- add 'invalid JSON' error message to common error handling (61688be)
- add 'not valid JSON' error message to common error handling (be5bfaa)
- add EnsValidator stub to RatesService index test (28a7bba)
- ens: enhance ENS validation logic and add integration tests for expired ENS handling (5fd1cfc)
- ens: enhance ENS validation logic and add integration tests for expired ENS handling (2eb1d73)
- ens: update test descriptions and adjust coverage check for accuracy (4358219)
- package: package.json (956f3f9)
- restore caret (^) version ranges for consistency (3d8e29d)
Features
- add EnsValidator for managing ENS updates and expirations (59d1e6c)
- asset: add includeSpam filter option and update related tests (1a8c194)
- conflict: fix conflict on the rate service (5455a84)
- contract: implement decodeActionBatch for batch action decoding and add related tests (53b8166)
- contract: increase decode limit from 20 to 30 (aa0d6b7)
- decoder: enhance decoding tests with additional edge cases and error handling (96fedc7)
- decoder: implement DecoderLight for batch action decoding and add related tests (d9e0078)
- decoderLight: update address handling and fix contractDecoderLight queue tests (ae983c3)
- dependencies: update package versions for improved stability and features (c4a6e04)
- gauge: add getGaugeVotes method and update metrics handling (b7edeaf)
- governance: add split and merge event handling in VeGovernance (611666e)
- governance: remove redundant comments (ccf0e0f)
- governance: restructure lockWithdraw update for clarity and completeness (3124ba5)
- index: enhance plugin processing for gauge interface type when token is not found (75c0aa7)
- index: format-fix (6707ed9)
- lib: improve code formatting and add test for veLock lock issue (af3d1ff)
- logTokenVoting: runEscrowCrawler and refactor gauge processing to include token retrieval (b8b69a1)
- logTokenVoting: streamline runEscrowCrawler logic and add warnings for missing parameters (631799d)
- logTokenVoting: use optional chaining for escrowAddress check in runEscrowCrawler (27e30e3)
- migration: rmDuplicateAssetsPeaq migration + implementation code (9db3ef3)
- migration: rmDuplicateAssetsPeaq migration + implementation code (4f1d30e)
- migration: rmDuplicateAssetsPeaq migration + implementation code (ed5716b)
- migration: rmDuplicateAssetsPeaq migration + implementation code (5ab9285)
- proxyToken: improve token creation tests and handle spam tokens (ff8275b)
- rates: implement scam token refresh mechanism and scoring system (5ac4007)
- refreshSpamTokens: adjust spamScore values in test cases for accuracy (b066373)
- refreshSpamTokens: include default spamScore in update assertions (4469b92)
- refreshSpamTokens: update spam detection stubs to return spamScore and isSpam (5ca4d0c)
- regenerate yarn.lock for Node 22.18.0 (79c1b5e)
- spamFields: enhance logo filtering by normalizing input and expanding risk keyword detection (b7b1474)
- spamFields: enhance logo filtering by normalizing input and expanding risk keyword detection (c472028)
- spamFields: enhance logo filtering logic to include Covalent logo URLs (74adaee)
- spamFields: integrate CoinGecko data for enhanced spam detection and token updates (828ca0b)
- spamFields: refine logo filtering to exclude spam tokens (cbf7e0c)
- spamFields: streamline token update logic with CoinGecko data handling (5c4c465)
- spamFields: update regex for red flags to support Unicode characters (bc41144)
- spamFields: update spam detection logic to utilize CoinGecko data and refine test cases (673b334)
- spamFields: update token creation to use collection.insertOne for spam field tests (aac57d5)
- spam: implement spam detection fields and migration for tokens (9a63ce7)
- spam: simplify addSpamFieldsToToken migration (fb16e62)
- spamTokenHandling: add integration tests for spam token handling logic (2c30b55)
- token: add tokenInfo queue handling and related tests (b66926f)
- token: enhance tokenInfo queue processing and add result validation in tests (a59dce0)
- tokenUtils: enhance spam detection to include spamScore in token updates (5e1dd88)
- tokenUtils: enhance token syncability checks for spam tokens (13f158d)
- tokenUtils: refactor spam detection to return spamScore and isSpam (56d6643)
- tokenUtils: refactor spam detection to return spamScore and isSpam (c543853)
v0.22.0
0.22.0 (2025-12-28)
Bug Fixes
- add NatspecTags interface for proper TypeScript typing with dot notation (f0883f4)
- adjust test coverage threshold for functions in package.json (b1b2fb5)
- copyIndexerConfigToTransfer: format logger messages for better readability (f76cc15)
- crawler: add handling for state-sync transaction errors and improve retry logic for rate limits (7bf70e2)
- disable useLiteralKeys rule to preserve TypeScript compatibility (859dfde)
- extract common functionality to _fetchMetadata (cb119ac)
- restore console error messages in create-migration CLI script (71a545d)
- restore console statements in CLI scripts with biome-ignore (bca9a6a)
Features
- coinGecko: add coingecko_coin_id to token price data tests (5a180eb)
- coinGecko: add coingeckoCoinId and marketCapUsd to token price data handling (460441e)
- coinGecko: add DEAD_TOKEN_VOLUME_THRESHOLD configuration option (a46d69e)
- coinGecko: add DEAD_TOKEN_VOLUME_THRESHOLD configuration option (d6b2bfc)
- coinGecko: adjust dead token threshold from 100 to 10 (ca83eac)
- coinGecko: checking total volume in 24 to detect dead tokens (63df92c)
- coinGecko: remove coingecko_coin_id and marketCapUsd from token data structures (d89c82b)
- coinGecko: remove coingecko_coin_id and marketCapUsd from token interfaces (46a1cd7)
- coinGecko: remove coingeckoCoinId and marketCapUsd from token data handling (77759f7)
- coinGecko: remove dead token detection comment from _parseToken function (853a539)
- coinGecko: update image_url to default to an empty string (de9f318)
- configIndexer: add TransferListLogService type and clean up unused types (f462f0d)
- crawler: enhance error handling and response processing in batch requests (5d530a4)
- evmExplorer: clean up imports in evmExplorerClient and web3Provider tests (2540185)
- evmExplorer: remove BlockScout references and related tests (5ae4ced)
- evmExplorer: remove BlockScout references and replace with ProxyWeb3Provider (f34a0c9)
- evmExplorer: remove BlockScout references from web3Provider (c902802)
- evmExplorer: remove BlockScout references from web3Provider (4ddf81e)
- implement gauge-voter actions decoding (98a052c)
- indexer: add support for transfer log services and enhance related type guards (54a7577)
- migration: implement copyIndexerConfigToTransfer migration with logging and error handling (bc211cd)
- provider: enhance JsonRpcProvider with logging for invalid JSON responses (89313d2)
- web3Provider: remove unused import of evmExplorerClient from tests (3468bbe)
- web3Provider: update tests to use evmExplorerClient and enhance fallbackCall stubs (e1d74eb)
- web3Provider: update tests to use fallbackCall and add new cases for source code handling (5367dc2)