All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bump
@metamask/superstructfrom^3.1.0to^3.4.1(#9754)
- Add
AiDigestController.fetchFrontPageItem(id)(and the underlyingAiDigestService.fetchFrontPageItem) which fetches a single market overview "front page" by id fromGET /market-overview/front-page/:id, exposed via theAiDigestController:fetchFrontPageItemmessenger action (#9394) - Add
MarketOverviewFrontPageandMarketOverviewItemtypes (#9394)
- Bump
@metamask/utilsfrom^11.9.0to^11.11.0(#9074) - Bump
@metamask/messengerfrom^1.2.0to^2.0.0(#9392)
- Bump
@metamask/messengerfrom^1.0.0to^1.2.0(#8364, #8373, #8632) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457)
RelatedAsset.nameandRelatedAsset.sourceAssetIdare now optional in both the superstruct schema and TypeScript type, so arelatedAssetmissing either field no longer causesfetchMarketOverviewto throwAPI_INVALID_RESPONSE. (#8920)
RelatedAsset.caip19is now optional (string[] | undefined) to match the live API, which omits the field for perps-only synthetic assets (e.g. ETHFI).AiDigestService.fetchMarketOverviewnormalises absentcaip19values to[]so consumers always receive astring[]. (#8326)
- Bump
@metamask/base-controllerfrom^9.0.0to^9.0.1(#8317) - Bump
@metamask/messengerfrom^0.3.0to^1.0.0(#8317)
RelatedAsset.hlPerpsMarketis nowstring[](optional) instead ofstringto match the/market-overviewAPI payload shape.AiDigestService.fetchMarketOverviewnow validateshlPerpsMarketas an array of strings and rejects string values. (#8308)
MarketInsightsReportnow includes a requireddigestIdfield containing the unique UUID returned in the/asset-summaryAPI response envelope. (#8283)AiDigestServicenow requires the{ id, digest }/{ id, report }envelope shape and exposesidasdigestIdon the returned report objects; bare (non-enveloped) responses are no longer accepted. (#8283)
AiDigestService.searchDigestnow uses the universalassetquery parameter instead of the previouscaipAssetType/hlPerpsMarketbranching logic. The public TypeScript API is unchanged; any identifier (CAIP-19, ticker, name, perps market id) can be passed as before. (#8263)RelatedAsset.hlPerpsMarketnow covers all HyperLiquid market identifiers — both regular crypto tokens (BTC,ETH) and purely synthetic perps assets (xyz:TSLA). No separate field is needed; clients usecaip19presence to decide the icon resolution strategy. (#8263)
- Export new
RelatedAssettype representing a rich asset object returned inMarketOverviewTrend.relatedAssets. (#8218)
MarketOverviewTrend.relatedAssetsis nowRelatedAsset[]instead ofstring[]. Each entry includesname,symbol,caip19,sourceAssetId, and optionalhlPerpsMarketfields. (#8218)MarketOverview.headline,summary, andsourceshave been removed; they are not part of the/market-overviewAPI response. (#8218)MarketOverviewTrend.categoryandimpactare now optional to match the live API response shape. (#8218)AiDigestService.fetchMarketOverviewnow accepts both flatMarketOverviewand{ report: MarketOverview }enveloped responses, matching the live API shape. (#8218)
AiDigestService.searchDigestandAiDigestController.fetchMarketInsightsnow accept any string identifier rather than only CAIP-19 asset types. CAIP-19 identifiers continue to use thecaipAssetTypequery parameter; all other strings (e.g. perps market symbols likeETH) use the newhlPerpsMarketquery parameter. (#8182)- Rename
caip19Idparameter toassetIdentifierinDigestService.searchDigest,MarketInsightsEntry, andAiDigestController.fetchMarketInsights. (#8182) - Replace
INVALID_CAIP_ASSET_TYPEerror message constant withINVALID_ASSET_IDENTIFIERinAiDigestControllerErrorMessage. (#8182)
- Add
fetchMarketOverviewmethod toAiDigestService, with superstruct validation of theMarketOverviewresponse shape. (#8109) - Export new shared sub-types
Article,Tweet,Source,AIResponseMetadata,MarketOverview,MarketOverviewEntry,MarketOverviewTrend, andAiDigestControllerFetchMarketOverviewAction. (#8109)
- Strengthen
AiDigestServiceresponse validation using nestedsuperstructschemas for market insights payloads, including deep validation oftrends/sourcesitems and support for optional top-levelsocialentries while allowing additional unknown API fields for forward compatibility. (#8006) - Rename shared sub-types
MarketInsightsArticle,MarketInsightsTweet, andMarketInsightsSourcetoArticle,Tweet, andSource; original names are kept as type aliases for backward compatibility. (#8109) - Tighten
MarketInsightsTrend.categoryandMarketInsightsTrend.impactto closed string unions matching the API spec;Source.typeis also now a closed union ('news' | 'data' | 'social'). (#8109) - Update
searchDigestendpoint from/digeststo/asset-summary. (#8109) - Add optional
metadatafield toMarketInsightsReport. (#8109)
- Initial release (#7693)
- Add
AiDigestControllerfor fetching and caching AI-generated asset digests (#7746) - Add Market Insights support to
AiDigestControllerwithfetchMarketInsightsaction (#7930) - Add
searchDigestmethod toAiDigestServicefor calling the GET endpoint (currently mocked) (#7930)
- Validate
searchDigestAPI responses and throw when the payload does not match the expectedMarketInsightsReportshape. - Normalize
searchDigestresponses from either direct report payloads ordigestenvelope payloads.
- Remove legacy digest APIs and digest cache from
AiDigestControllerandAiDigestService; only market insights APIs remain.- Removes
fetchDigest,clearDigest, andclearAllDigestsactions from the controller action surface. - Removes
DigestData/DigestEntrytypes and thedigestsstate branch.
- Removes