From ec141b32f492471ec4bb507e1be3f0a960b0c86a Mon Sep 17 00:00:00 2001
From: kami
Date: Mon, 3 Aug 2026 14:16:26 +0400
Subject: [PATCH] feat(vibe): explain recommendation signals
---
frontend/src/pages/Vibe.tsx | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/frontend/src/pages/Vibe.tsx b/frontend/src/pages/Vibe.tsx
index e71d4fa..32dc1bc 100644
--- a/frontend/src/pages/Vibe.tsx
+++ b/frontend/src/pages/Vibe.tsx
@@ -22,6 +22,19 @@ function sampleTracks(tracks: Track[], count: number): Track[] {
return sampled.slice(0, count);
}
+function VibeLearningHint() {
+ return (
+
+ How Vibe learns
+
+
Your seed track sets the first direction. From there, Vibe learns from what you finish, skip, dislike, or keep, alongside your library history and favourites.
+
It also avoids recent repeats and reshapes the upcoming queue as you listen.
+
It does not infer your location, weather, microphone input, or device activity.
+
+
+ );
+}
+
export default function Vibe() {
const { currentTrack } = usePlaybackStore();
const {
@@ -119,6 +132,8 @@ export default function Vibe() {
+
+
{error && (
{error}
@@ -200,6 +215,8 @@ export default function Vibe() {
+
+
{(empty || initialBatchStatus === 'exhausted' || initialBatchStatus === 'failed') && (
{initialBatchStatus === 'failed'