Releases
v0.27.0
Compare
Sorry, something went wrong.
No results found
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 governance rewards distribution and related API endpoints (af2a712 )
governance: optimize member tracking and update block timestamp retrieval (8ea4649 )
governanceRewards: add validation for lookbackDate and enhance distribution logic (6bd1c5a )
governance: update governance reward start blocks to support multiple values (427d42c )
governance: update minProposal Vp type to string in decode action and handle null responses for pastVeTokenSupply (#1304 ) (3878a58 )
governanceVeBatchHandler: adjust block range and enhance batch processing logic (b9b3ab9 )
governanceVeBatchHandler: refactor makeLog function for cleaner code (dfe9df1 )
governanceVeHandler: add tests for exit cancellation and log sorting (c761fb2 )
handlers: improve claim deduplication, batch handler safety, and test coverage (16338c6 )
hemi: add integration tests for Hemi mainnet and enhance evmExplorerClient (9eba6bb )
index: add additional indexes to member, proposal, transaction, and vote models (b42219f )
infra: add cluster mode for indexer and transfers services (BE-215) (#1278 ) (ed2c84e )
infra: add pre-release version to staging deploy notification (22adc6a )
infra: add Slack Bot Token API with threading and composite actions (089248b )
infra: add SLACK_PLATFORM_GROUP_ID for team mentions on deploy failure (a070f73 )
infra: add staging changelog to Slack for team testing (dd9ea19 )
infra: auto-sync main back to development after release (#1288 ) (14b626a )
infra: remove CHANGELOG.md, no longer generated by semantic-release (5cb99b3 )
infra: restore CHANGELOG.md + PR-based main→dev sync (#1290 ) (c38d7b6 )
integration: update 1Password CLI action to specific version (#1360 ) (3eb6002 )
ipfs: add support for Pinata public gateway and enhance metadata fetch logic (#1307 ) (99da2f7 )
ipfs: change error logging to warning for metadata fetch failures (20abd0c )
katana: add proper address for migration for katana reward (#1198 ) (95f4d01 )
logDelegateChanged: implement countActiveDelegationsForMembers method and update metrics (#1230 ) (1ddab4b )
logDelegateChanged: optimize delegation counting logic and enhance tests (#1302 ) (dbd9238 )
logger: hide RPC API keys in URLs sent to logz.io and sentry (#1257 ) (468ba33 )
logProcessing: simplify log parsing stubs and clean up test setup (62804dd )
member: add network-scoped lastActive metric on member profile (#1270 ) (b887b04 )
member: delegators API for an address by token (BE-202) (#1262 ) (ed54d74 )
member: optimize getByTokenAddress to fetch balance, voting power, and delegate in parallel (64f9aa8 )
networks: add Citrea testnet and mainnet chain support (3a8fdcc )
networks: add Hemi mainnet to networks enumeration (45930bc )
networks: add support for Hemi mainnet in various configurations (9e19349 )
pairData: add includeSubDaos parameter to control subDAO (#1157 ) (df35b10 )
pluginMetrics: add findGlobalLastActivity method and update member lastActive (fe4d87e )
pluginMetrics: improve findGlobalLastActivity method and enhance test cases (a94f133 )
proposal: change minProposerVotingPower type to string and add migration for existing data (#1299 ) (cefa079 )
proposal: improve error handling for unresolved daoId in pagination queries (63289d1 )
proxyToken: enhance token creation by stubbing on-chain reads and removing unnecessary checks (414597f )
rates: on-chain DEX quoter for token prices (BE-205) (a7be7cc )
rates: use DEX quoter to price tokens on non-CoinGecko chains (BE-205) (2d1b94f )
release: enhance release summary generation by tracking previous staging deployment (1c425c7 )
release: improve commit filtering in release summary generation (79f28b4 )
retry improvements, governance escrow fix & GaugeVoter decoding (#1190 ) (704caf1 ), closes #1186
retryRequest: update warning message for server error retries (66365d9 )
reward-generation: add configuration for early reward generation and enhance error handling (#1183 ) (437f1a9 )
tests: remove deprecated tests and clean up spec files (2f435c0 )
transaction: update index to use 'token.address' for improved query performance (e12c840 )
unit-dep: update Docker setup for unit-dep image and tests (b279f0e )
Bug Fixes
add error handling for catch-up logic and improve test coverage (d0d8e31 )
add proper field renaming; remove subdao from api contract (050b8aa )
address pr issues (80e7c6a )
api: add catch handlers to fire-and-forget promises in totalSupplyRefresh (70f9d2a )
api: block prototype-pollution via pagination date props (BE-219) (#1284 ) (07bfc2d )
api: make totalSupply refresh fire-and-forget and update tests (d021c64 )
APP-87: add pluginAddress field to Vote schema and update related queries (ed72314 )
assets: route Citrea token balances through Blockscout v2 (#1261 ) (1f629ed ), closes #2 #3
auth: correct admin token assertion to prevent null deref crash (BE-231) (b5ede10 )
auth: match stored token type IJwtAuthType.auth in admin assert (545152a )
BE-143: use $lte in findLastSavedProposal to handle same-block proposals (1bbe7a0 )
BE-155: suppress PluginSlug error log for uninstalled plugins (#1169 ) (25bd36f )
BE-156: generalize batch size error pattern for zkSync RPC (#1170 ) (01c970f )
blockchainLogCrawler: update getServiceStartBlock to return block and isExisting status (#1175 ) (8eb4ffe )
bound delegate-statement endpoint to total deadline (a406399 )
campaign: ensure stale reward IDs are preserved during payout processing (fde53ae )
campaign: ensure stale reward IDs are preserved during payout processing (9a37caa )
campaign: persist totalClaimed on existing reward docs in payoutClaimedBatch (97cbb37 )
ci: exclude package.json from biome formatter (d49bc5b )
config: set correct FROM_BLOCK for Citrea testnet and mainnet (1aad66f )
config: set OFFSET_TO_BLOCK to 4 for Citrea (match Arbitrum settings) (fbcab90 )
contract-helper: replace create with findOneAndUpdate for upsert functionality (#1181 ) (cb896e4 )
crawler: enhance error handling in crawlerErrorHandler for improved RPC error messages (#1191 ) (6c21511 )
crawlers: reset crawling flag in finally to prevent stuck re-entry guard (75a7790 )
crawlers: reset crawling flag in finally to prevent stuck re-entry guard (2c7e61e )
decode-action: biome json config fixed and formatting (dd5586e )
decode-action: improve campaign create action decoding and add error handling (ed31224 )
decode-action: improve campaign create action decoding and add error handling (63ea189 )
dex-quoter: make public APIs return null on infra/config failures (BE-205) (ef1bb5e )
extend DAO indexing status (#1243 ) (bf0a402 )
gateway: skip totalSupply update when RPC returns 0n (075e638 )
governance: correct governance reward start block for Ethereum Mainnet (cc05765 )
governance: implement delegation check and update delegateReceiverAddress in deposit method (977b2c5 )
governance: refine delegation check logic and update test handler (7948eec )
governance: update governance handling to use escrow address and improve metrics updates (031b8b3 )
governance: update token delegation snapshot timestamp for accurate voting power calculation (668143c )
handle null Blockscout URL, use Blockscout-only for Citrea, fix unit test (c22f88f )
implement guard for single active hotfix (b38b18d )
infra: address PR review feedback (d19c0d0 )
infra: align Slack notifications with frontend patterns (e706545 )
infra: cap auto workers to 1/4 of CPUs to avoid starving other services (#1281 ) (7d01f41 )
infra: cap cluster workers to 70% of CPUs (#1282 ) (f4d8c7b )
infra: deduplicate changelog entries instead of limiting (8f92ab9 )
infra: drop @platform mention from deploy slack notifications (#1279 ) (a6d9566 )
infra: limit changelog to 15 items per section with overflow count (d4db6ba )
infra: load Slack secrets directly in e2e job to avoid masked outputs (45940a5 )
infra: move Slack secrets loading before op:// env vars are set (c04a38b )
infra: prevent 1Password cross-vault conflict in Slack secrets loading (80770cf )
migration: enhance campaign create action decoding and improve logging (f4baa97 )
migration: implement campaign create action decoding migration (f2522e8 )
migration: implement campaign create action decoding migration (b5a687a )
multisig: handle out-of-order proposal events when approveProposal=true (BE-144) (3ed29a8 )
peaq: skip native crawlers and clean up duplicate transactions (db6717a )
proxyToken: ensure totalSupply is initialized to '0' in token information (0c79e38 )
proxyToken: improve token info retrieval and set default values (613b50d )
proxyToken: set default decimals to 0 for token information (c65496e )
rates: exclude fdv_usd from dead token market data check (#1249 ) (c2124d4 )
test: assert Blockscout integration tests return data instead of silently passing on null (a5bfa05 )
tests: skip RouteScan tests in unit-dep (62fd55c )
tool-launcher: remove BackfillTokenDelegation from runners list (7d23d15 )
tool-launcher: remove unused BackfillTokenDelegation import (7394af1 )
types: add Citrea networks to IConfig NODES and BLOCKSCOUT_EXPLORER_API types (ad1fa2d )
use daoDb.network and improve comment casing (c65dcda )
use environment variables for tag and version handling and release processes (4c51573 )
use environment variables for tag and version handling and release processes (8ac1ed5 )
ve: persist blockTimestamp on Lock create in deposit and split paths (06fb447 )
Performance Improvements
api: add missing indexes for slow API endpoints (f9f2063 )
models: add Plugin and LogPluginSetupProcessor indexes from #1204 (f550ea2 )
You can’t perform that action at this time.