From df6ab995d3cf747b4a0c8b85e152a5142cac48bf Mon Sep 17 00:00:00 2001 From: flemming-it Date: Thu, 7 May 2026 21:05:03 +0200 Subject: [PATCH] feat: featured flag on StoreEntry (v0.10.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Picks up the new `featured: bool` field in the StoreEntry proto. No new client method — the flag is plumbed through SearchStore. Studio reads it directly off the entry. Signed-off-by: flemming-it --- lib/src/generated/fai/v1/hub.pb.dart | 19 +++++++++++++++++++ lib/src/generated/fai/v1/hub.pbjson.dart | 3 ++- pubspec.yaml | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/src/generated/fai/v1/hub.pb.dart b/lib/src/generated/fai/v1/hub.pb.dart index d6be173..d8db226 100644 --- a/lib/src/generated/fai/v1/hub.pb.dart +++ b/lib/src/generated/fai/v1/hub.pb.dart @@ -2517,6 +2517,7 @@ class StoreEntry extends $pb.GeneratedMessage { $core.String? bestVersion, $core.String? status, $core.bool? installed, + $core.bool? featured, }) { final $result = create(); if (name != null) { @@ -2561,6 +2562,9 @@ class StoreEntry extends $pb.GeneratedMessage { if (installed != null) { $result.installed = installed; } + if (featured != null) { + $result.featured = featured; + } return $result; } StoreEntry._() : super(); @@ -2582,6 +2586,7 @@ class StoreEntry extends $pb.GeneratedMessage { ..aOS(12, _omitFieldNames ? '' : 'bestVersion') ..aOS(13, _omitFieldNames ? '' : 'status') ..aOB(14, _omitFieldNames ? '' : 'installed') + ..aOB(15, _omitFieldNames ? '' : 'featured') ..hasRequiredFields = false ; @@ -2708,6 +2713,20 @@ class StoreEntry extends $pb.GeneratedMessage { $core.bool hasInstalled() => $_has(13); @$pb.TagNumber(14) void clearInstalled() => $_clearField(14); + + /// True iff the store-index marks this module as editorially + /// featured. Studio renders featured entries in a separate + /// strip above the main grid. Curated quarterly in the hub's + /// bundled seed.yaml — same review cadence as the curated + /// model database. + @$pb.TagNumber(15) + $core.bool get featured => $_getBF(14); + @$pb.TagNumber(15) + set featured($core.bool v) { $_setBool(14, v); } + @$pb.TagNumber(15) + $core.bool hasFeatured() => $_has(14); + @$pb.TagNumber(15) + void clearFeatured() => $_clearField(15); } class ChannelStatusResponse extends $pb.GeneratedMessage { diff --git a/lib/src/generated/fai/v1/hub.pbjson.dart b/lib/src/generated/fai/v1/hub.pbjson.dart index 15b920d..8aa0e37 100644 --- a/lib/src/generated/fai/v1/hub.pbjson.dart +++ b/lib/src/generated/fai/v1/hub.pbjson.dart @@ -651,6 +651,7 @@ const StoreEntry$json = { {'1': 'best_version', '3': 12, '4': 1, '5': 9, '10': 'bestVersion'}, {'1': 'status', '3': 13, '4': 1, '5': 9, '10': 'status'}, {'1': 'installed', '3': 14, '4': 1, '5': 8, '10': 'installed'}, + {'1': 'featured', '3': 15, '4': 1, '5': 8, '10': 'featured'}, ], }; @@ -664,7 +665,7 @@ final $typed_data.Uint8List storeEntryDescriptor = $convert.base64Decode( 'JlcXVpcmVzX3NlcnZpY2VzGAkgAygJUhByZXF1aXJlc1NlcnZpY2VzEhgKB2xpY2Vuc2UYCiAB' 'KAlSB2xpY2Vuc2USHgoKcmVwb3NpdG9yeRgLIAEoCVIKcmVwb3NpdG9yeRIhCgxiZXN0X3Zlcn' 'Npb24YDCABKAlSC2Jlc3RWZXJzaW9uEhYKBnN0YXR1cxgNIAEoCVIGc3RhdHVzEhwKCWluc3Rh' - 'bGxlZBgOIAEoCFIJaW5zdGFsbGVk'); + 'bGxlZBgOIAEoCFIJaW5zdGFsbGVkEhoKCGZlYXR1cmVkGA8gASgIUghmZWF0dXJlZA=='); @$core.Deprecated('Use channelStatusResponseDescriptor instead') const ChannelStatusResponse$json = { diff --git a/pubspec.yaml b/pubspec.yaml index 1cf2504..b4f5198 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: fai_dart_sdk description: gRPC client SDK for the F∆I Platform hub. Used by F∆I Studio and Tier-3 domain apps. -version: 0.10.0 +version: 0.10.1 publish_to: 'none' repository: https://git.flemming.ws/fai/dart-sdk