• Extends the 跳舞直播间 (dance room) system to one independent live room
    per character, with an operator playback-management/blacklist layer
    (T39), a "我的作品" page for paid users (T38), a standalone 人衣图生成
    admin tool, and a new admin-dance-library.html page for curating the
    per-character dance clip pool with AI QC.
    
    On top of that, dance clips now have an explicit published (上架/下架)
    status: passing AI QC (or a manual admin override to "correct") auto-
    publishes a clip, failing it auto-unpublishes it, and only published
    clips are eligible for a room's random-fill pool — unreviewed/rejected
    clips stay in the library but no longer autoplay for viewers. Existing
    already-QC'd "correct" clips are backfilled to published on first boot
    so the room doesn't go quiet.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01MvkJsRcQ2qEuaFea31rBY8
    yibo authored
     
    Browse File »

  • 需求文档 7.4 节's stated floor: an expired user_paid character (T36)
    or its videos must stay individually retrievable by their owner —
    "下线=不再出现在公开直播间和其他人的衣柜/随机池里",不是"下线=消失".
    
    GET /api/dance/my-works (login required, no emailVerified gate — this
    reads your own past purchases, doesn't spend anything) returns the
    requesting user's own characters/garments (ownerUserId match) each
    joined with their generated videos from library.json. New standalone
    page my-works.html (matches live.css's visual language) renders two
    sections with inline video players (same preload="none" pattern as
    admin.html), a status badge (播放中/已下线 for characters, 衣柜中/已下架
    for garments), and a login gate for logged-out visitors — reusing
    GET /api/dance/my-works's 401 rather than duplicating dance.html's auth
    modal in a second page. Linked from dance.html's header once logged in.
    
    my-works.test.js: 401 without a session; a real user who uploaded one
    garment (T27) and one 1-segment character (T35, deliberately expired
    by test time) sees both with their videos still attached; a second,
    unrelated user sees neither.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_011DUiYs6UjxDMkfvnjtsKFo
    yibo authored
     
    Browse File »