feat(vibe): visualize the listening profile
This commit is contained in:
@@ -109,6 +109,7 @@ async function reconcilePreview(sessionId: string, response: DurableVibeSessionR
|
||||
if (!isCurrentVibeOwner(sessionId)) return [];
|
||||
const preview = await hydratePreview(response.preview);
|
||||
if (!isCurrentVibeOwner(sessionId) || !useVibeStore.getState().setPlan(response.planVersion, preview)) return [];
|
||||
useVibeStore.getState().setProfile(response.state);
|
||||
replaceUnplayedQueue(preview);
|
||||
return preview;
|
||||
}
|
||||
@@ -321,6 +322,7 @@ export function advanceVibe(reason: VibeAdvanceReason): Promise<void> {
|
||||
return;
|
||||
}
|
||||
if (!useVibeStore.getState().setPlan(served.response.planVersion, served.preview)) return;
|
||||
useVibeStore.getState().setProfile(served.response.state);
|
||||
useVibeStore.getState().setCurrentPlanItem(served.response.now);
|
||||
replaceUnplayedQueue([served.now, ...served.preview]);
|
||||
usePlaybackStore.getState().advance();
|
||||
@@ -367,6 +369,7 @@ export function advancePastUnplayableVibeTrack(trackId: string): Promise<void> {
|
||||
return;
|
||||
}
|
||||
if (!useVibeStore.getState().setPlan(served.response.planVersion, served.preview)) return;
|
||||
useVibeStore.getState().setProfile(served.response.state);
|
||||
useVibeStore.getState().setCurrentPlanItem(served.response.now);
|
||||
replaceUnplayedQueue([served.now, ...served.preview]);
|
||||
playback.advance();
|
||||
@@ -403,6 +406,7 @@ export async function startVibeSession(seed: Track): Promise<StartedVibeSession>
|
||||
vibe.setActiveSession({ sessionId: started.sessionId, seedTrackId: seed.id });
|
||||
vibe.setCenterTrack(seed);
|
||||
vibe.setPlan(served.response.planVersion, served.preview);
|
||||
vibe.setProfile(served.response.state);
|
||||
vibe.setCurrentPlanItem(served.response.now);
|
||||
vibe.setInitialBatchStatus('idle');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user