You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Listening to a local music library still requires active playlist and queue management. Flow should offer a passive, coherent radio experience: the listener tunes into a Channel, music continues in Programmes, and a Host adds short spoken Interludes and responds to typed requests without taking over low-level Player controls.
V1 product
Flow keeps two playback modes:
Radio Mode — Programme-driven playback from a selected Channel.
Only one mode is active. Playing a Library Track enters Classic Mode; tuning into a Channel enters Radio Mode.
Radio uses the domain terms Channel, Host, CandidateSet, Programme, Segment, Interlude, Intervention, and Session Context. “Agent” is only the Host implementation style. V1 has no tool loop, Player-control tools, long-term memory, or model-owned chat history.
Primary flow
The listener configures a DeepSeek API key and TTS API key in secure device storage. Both are required before provider-backed Radio is enabled.
The listener enters a Channel. Library returns a CandidateSet matching its structured Channel Style.
Programme Manager supplies CandidateSet, bounded Session Context, generation reason, optional Intervention, Generation ID, and AbortSignal to Host.
Host makes one structured DeepSeek planning call, validates the result in deterministic code, synthesises Interludes through an injected TTS provider, materialises local playable URIs, and atomically returns a complete Programme.
The same expo-audio player plays Track and Interlude Segments. During an Interlude, lock-screen text identifies the Host/Channel while preserving the previous Track artwork.
Programme Manager prepares a background refill near Programme end so playback can continue.
Host and Programme rules
Direct DeepSeek API through AI SDK Core, model deepseek-v4-flash, Thinking disabled.
V1 supports one model provider and BYOK; no Flow-hosted proxy, key custody, billing, or quotas.
Host Policy is versioned and application-owned. Model/user text cannot override it.
Programme music targets 30–45 minutes, usually 7–12 Tracks, subject to available CandidateSet duration.
A Programme may select only CandidateSet Tracks and cannot repeat a Track within that Programme.
Programme Manager deterministically withholds recent/current Programme Tracks, then reintroduces least-recent Tracks only when required.
Channel entry and Intervention may contain one opening/acknowledgement Interlude. Background refill may not.
Transition Interludes occur after 2–3 Tracks. A Programme cannot end with an Interlude.
Host returns a complete playable Programme; Player never receives partially synthesised Segments.
Interventions
V1 input is text only:
Track Request — current Segment finishes; optional acknowledgement Interlude; requested Track is first in the replacement Programme.
Mood Change — current Segment finishes; replacement Programme responds to the requested style shift.
Free Instruction — current Segment finishes; replacement Programme follows the bounded instruction where compatible with Host Policy.
Timeline records user turns, Host acknowledgements/Interludes, and Track-start events in memory for the current session. Persistent history and speech-to-text are later work.
Failure and lifecycle behavior
Invalid/empty model output: bounded retry, then deterministic music-only Programme.
Individual TTS failure: bounded retry, then omit only that Interlude.
Latest Generation ID wins. New Channel or Intervention aborts stale work; cancellation propagates through model, TTS, and cache and must not trigger fallback.
Generated TTS returns bytes plus media type. Mobile cache materialises a native file URI; Web will use a Blob URL.
Problem
Listening to a local music library still requires active playlist and queue management. Flow should offer a passive, coherent radio experience: the listener tunes into a Channel, music continues in Programmes, and a Host adds short spoken Interludes and responds to typed requests without taking over low-level Player controls.
V1 product
Flow keeps two playback modes:
Only one mode is active. Playing a Library Track enters Classic Mode; tuning into a Channel enters Radio Mode.
Radio uses the domain terms
Channel,Host,CandidateSet,Programme,Segment,Interlude,Intervention, andSession Context. “Agent” is only the Host implementation style. V1 has no tool loop, Player-control tools, long-term memory, or model-owned chat history.Primary flow
expo-audioplayer plays Track and Interlude Segments. During an Interlude, lock-screen text identifies the Host/Channel while preserving the previous Track artwork.Host and Programme rules
deepseek-v4-flash, Thinking disabled.Interventions
V1 input is text only:
Timeline records user turns, Host acknowledgements/Interludes, and Track-start events in memory for the current session. Persistent history and speech-to-text are later work.
Failure and lifecycle behavior
V1 UI
Architecture ownership
Success criteria
Child work and references
Out of scope