feat(insights): add a metric catalog for discoverability

Metrics with zero data stay hidden from the dashboard and Insights nav
by design — that keeps the daily views uncluttered but leaves no
reachable surface telling a sparse-device-kit account which
capabilities exist at all. Add /insights/catalog: every metric domain
grouped by category, each row showing whether the account has data
for it and what would supply it, with a connect CTA into
settings/integrations when absent and device-sourceable.

Reuses the existing tab-strip gating (hasMetricData over the shared
analytics/comprehensive/workouts/nutrients reads) and the per-metric
empty-state copy already shown on each sub-page, so names, sources,
and presence can't drift from what's shown elsewhere. Adds one quiet,
always-visible pill at the tail of the Insights tab strip as the entry
point — no new loud nav destination.
This commit is contained in:
Marc-André Bombeck committed 2026-07-17 23:50:06 +02:00
1 parent 5f253f7d09
commit bf1c052797
9 files changed
+656

No files matched your search

@@ -551,6 +551,19 @@ function buildTabs(
labelKey: SUB_PAGE_TABS[slug].labelKey,
});
}
// 2026-07-17 discoverability audit (R1) — a quiet, always-present pill
// trailing every other pill, linking to the "what can HealthLog track"
// catalog. Unlike every metric pill above, it carries no availability
// gate (like Overview / Recovery): the catalog's whole purpose is
// listing the metrics that AREN'T visible elsewhere yet, so gating its
// own entry point on data would defeat it.
entries.push({
kind: "link",
href: `${INSIGHTS_OVERVIEW_PATH}/catalog`,
labelKey: "insights.navCatalog",
});
return entries;
}