Files
TrueGrowth/openspec/changes/add-suno-lyrics-task-and-canvas-flow/tasks.md

1.9 KiB

1. Architecture

  • 1.1 为 Suno 请求增加 sunoAction,并定义 music / lyrics 两类执行动作
  • 1.2 为任务结果增加 resultKind 与歌词结果字段,解除“所有 audio 任务都有媒体 URL”的假设
  • 1.3 明确歌词结果的统一 markdown / text 画布格式

2. Provider Routing And Service Layer

  • 2.1 为 Suno audio binding metadata 增加 lyrics 动作描述
  • 2.2 实现 POST /suno/submit/lyrics
  • 2.3 复用 GET /suno/fetch/{task_id},并新增歌词结果标准化提取:
    • text
    • title
    • tags
    • providerTaskId
  • 2.4 让 musiclyrics 共用轮询框架,但分别走各自的 submit body 与 result extractor

3. Task Queue And Persistence

  • 3.1 调整 TaskResult、任务存储读写和恢复逻辑,支持无 URL 的歌词结果
  • 3.2 调整任务队列 item 展示,使歌词任务显示动作、标题、标签和歌词摘要
  • 3.3 为歌词任务补齐重试、刷新恢复和搜索行为
  • 3.4 为歌词任务增加队列操作:
    • 复制歌词
    • 插入画布

4. UI And Canvas

  • 4.1 在音频模式中增加 music / lyrics 动作切换
  • 4.2 在 lyrics 动作下隐藏音乐专属参数:
    • mv
    • title
    • tags
    • continueSource
    • continueClipId
    • continueAt
  • 4.3 调整手动“插入到画布”路径,让歌词结果走文本插入而不是音频节点
  • 4.4 调整自动插入路径,按 resultKind 在音频节点和文本插入之间分流

5. Verification

  • 5.1 验证歌词任务能正确提交到 /suno/submit/lyrics
  • 5.2 验证 /suno/fetch/{task_id} 返回歌词结果时能正确完成任务
  • 5.3 验证刷新页面后歌词任务仍可恢复与展示
  • 5.4 验证歌词任务在队列中可复制、可插入,且不会被误渲染为音频卡片
  • 5.5 验证音乐生成既有链路不回归