Parent
#39 — PRD: AI Radio — Host-driven Channel experience with chat timeline
What to build
Channel Registry 提供内置频道列表;Channel Switcher 是一个可选的切换入口(非首屏),用户进入 app 后默认沉浸式进入当前 channel,无需手动选择。
Channel Registry(@flow/radio or apps/mobile):
getChannels() → Channel[]
getChannelById(id: string) → Channel | undefined
- Ship at least three built-in Channels: 深夜电台, 晨间咖啡, 专注工作 — each with a name, a one-line descriptor, and a
ChannelStyle
Channel Switcher(mobile app):
- 不是独立的首屏,而是首页上的一个入口按钮(点击后弹出 BottomSheet 或导航到切换页面)
- 显示 Channel 列表;每张卡片展示 name + descriptor
- 切换 Channel 后返回 Radio Screen
- 当前阶段只有一个默认 channel,此功能为可选增强
Default Channel 逻辑(未来):
- 默认 channel 可基于时间/天气等上下文自动决定
- 当前阶段:硬编码默认 channel,用户打开 app 直接进入沉浸式体验
Acceptance criteria
Priority
Low — 当前阶段假设只有一个 channel,此 issue 为后续扩展准备。
Blocked by
Parent
#39 — PRD: AI Radio — Host-driven Channel experience with chat timeline
What to build
Channel Registry 提供内置频道列表;Channel Switcher 是一个可选的切换入口(非首屏),用户进入 app 后默认沉浸式进入当前 channel,无需手动选择。
Channel Registry(
@flow/radioorapps/mobile):getChannels() → Channel[]getChannelById(id: string) → Channel | undefinedChannelStyleChannel Switcher(mobile app):
Default Channel 逻辑(未来):
Acceptance criteria
getChannels/getChannelByIdexported and typed againstChannelfrom Shared types: Segment, Programme, ChatMessage #40Priority
Low — 当前阶段假设只有一个 channel,此 issue 为后续扩展准备。
Blocked by
Channel,ChannelStyle)