feat(studio): channel pill in sidebar + Featured strip in Store (v0.20.0)

Sidebar:
- New active-channel pill below the connection pill,
  color-coded so production deployments look visibly
  different from local-dev. Click opens Settings; tooltip
  explains the channel taxonomy. Polled in lockstep with the
  health probe so it tracks CLI-driven `fai channel switch`.

Store:
- Featured strip above the main grid renders editorial
  picks as bigger hero tiles with a subtle gradient
  backdrop, version + status pills, and a one-click
  Install. Hidden the moment the operator types in the
  search box or picks any filter — the result list is the
  answer they want, not editorial chrome.

StoreItem now carries the `featured` flag so the page can
filter without an extra round-trip.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-05-07 21:05:15 +02:00
parent 04cc12bc54
commit 26691b7471
5 changed files with 341 additions and 9 deletions

View file

@ -390,6 +390,7 @@ class HubService {
bestVersion: e.bestVersion,
status: e.status,
installed: e.installed,
featured: e.featured,
),
)
.toList();
@ -1060,6 +1061,10 @@ class StoreItem {
/// "published", "alpha", "planned", or empty when unknown.
final String status;
final bool installed;
/// True iff the store-index marks this entry as editorially
/// featured (curated quarterly in the bundled seed.yaml).
/// Drives the "Featured" strip at the top of the Store page.
final bool featured;
const StoreItem({
required this.name,
@ -1076,5 +1081,6 @@ class StoreItem {
required this.bestVersion,
required this.status,
required this.installed,
required this.featured,
});
}