-
Fetches characters/garments/dance-refs alongside the library on load and joins each clip's characterId/garmentId/refDanceVideoId back to their names, so an operator can see "谁的脸 + 谁的衣服 + 哪条参考视频" per row (M.7). No composedImageId column — the one-step pipeline never produces an intermediate composed image. Extends the dressup-generate.test.js happy-path test to confirm the join resolves real names, not just matching ids. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-
POST /api/admin/batch-gen takes {characterId, garmentIds[], refDanceVideoIds?[]}, expands to one job per garment (cross-producted with refDanceVideoIds when given, else one random active dance-ref per garment like the single-generate default), and submits each through the same submitGeneration() helper the single POST /api/admin/generate route now uses — so the M.7 dedupe cache (existing characterId+ garmentId combo) is honored per combo, not just per batch. GET /api/admin/batch-gen/status?batchId= returns that batch's generationJobs records for progress polling. admin-batch-gen.html: pick one character, multiple garments, and optionally pin specific reference dances; submits the batch, polls status every 3s into a progress table, and lets failed rows be retried individually via POST /api/admin/generate. Linked from the other admin pages' nav. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> -
Table + inline edit + add-form pages matching admin.html's existing conventions, wired to the T3-T5 CRUD API and T2's upload endpoints. Cross-linked with admin.html and each other in the topbar. No browser tooling available in this environment to render/click through these, so admin-pages-flow.test.js exercises the exact API call sequence each page's JS performs (login -> upload a real file -> create with the returned URL -> list -> confirm the shape the table renders), which is where a field-name mismatch would surface.
-
Single shared password (.env ADMIN_PASSWORD) + in-memory HttpOnly session cookie, no accounts/roles — MVCP M.1/M.10's real account system supersedes this in period 3. Covers the existing /api/admin/library/* routes (previously unauthenticated, see architecture.md 1.2's tech-debt note) plus the new upload endpoint. admin.html gets a fetch() interceptor that redirects to the new admin-login.html on any 401 from /api/admin/*, rather than patching every call site.
-
Static video-gen testing tool (MiniMax native API, then fal.ai) that grew into an AI drama live channel backed by an internal H3 Console GPU cluster: shared virtual-playhead live playback, prompt submit/match/generate queue, admin CRUD for the video library, and bilingual (zh/en) semantic clip names. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>