style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 50s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 54s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m20s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m39s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m10s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m6s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m6s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 2m17s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m28s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m18s
AI Code Review / AI Code Review (pull_request) Successful in 6m17s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 7m33s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m26s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 19s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Waiting to run
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 143h55m15s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 143h55m18s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 143h55m15s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 143h55m18s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 144h1m56s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 144h2m1s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 144h1m56s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 144h2m48s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 144h2m49s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 144h2m55s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 144h2m56s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 144h2m57s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 144h30m6s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 144h36m43s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 144h37m37s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 144h37m43s

This commit is contained in:
CI Bot
2026-09-10 07:20:56 +00:00
parent 3d2e94b884
commit 5ba8e4b13f
4 changed files with 10 additions and 28 deletions
@@ -484,7 +484,6 @@
margin-bottom: 12px;
}
.aa-lipsync-preview {
width: 100%;
max-width: 240px;
@@ -1249,4 +1248,3 @@
width: auto;
min-width: 300px;
}
@@ -211,14 +211,7 @@ const AiAvatarPage: React.FC = () => {
state.setIsGenerating(false)
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [
state.lipsyncJob,
state.script,
state.bRollSegments,
state.titleConfig,
state.coverConfig,
])
}, [state.lipsyncJob, state.script, state.bRollSegments, state.titleConfig, state.coverConfig])
/* ── 智能封面:调后端 MediaKit 选帧接口(#1822) ── */
const handleSmartCover = useCallback(async () => {
@@ -375,7 +368,10 @@ const AiAvatarPage: React.FC = () => {
<span className="aa-panel__toggle">▼</span>
</div>
<div className="aa-panel__body">
<PanelTitleConfig titleConfig={state.titleConfig} onUpdate={state.updateTitleConfig} />
<PanelTitleConfig
titleConfig={state.titleConfig}
onUpdate={state.updateTitleConfig}
/>
</div>
</div>
@@ -34,8 +34,7 @@ export function PanelLipsyncPreview({
onRemoveBRoll,
titleConfig,
}: PanelLipsyncPreviewProps) {
const isGenerating =
lipsyncJob?.status === "pending" || lipsyncJob?.status === "processing"
const isGenerating = lipsyncJob?.status === "pending" || lipsyncJob?.status === "processing"
const isDone = lipsyncJob?.status === "completed"
const isFailed = lipsyncJob?.status === "failed"
@@ -78,9 +77,7 @@ export function PanelLipsyncPreview({
<div className="aa-lipsync-section__title">
<span style={{ marginRight: 8 }}>🎞️ 插入画面</span>
{bRollSegments.length > 0 && (
<span className="aa-broll-badge">
🎬 {bRollSegments.length} 个画面
</span>
<span className="aa-broll-badge">🎬 {bRollSegments.length} 个画面</span>
)}
</div>
<div className="aa-lipsync-actions">
@@ -104,10 +101,7 @@ export function PanelLipsyncPreview({
alt={seg.asset.name}
/>
) : (
<span
className="aa-broll-item__thumb"
style={{ padding: "6px 4px" }}
>
<span className="aa-broll-item__thumb" style={{ padding: "6px 4px" }}>
🎬
</span>
)}
@@ -189,11 +183,7 @@ export function PanelLipsyncPreview({
<div className="aa-lipsync-actions">
{isDone ? (
<button
type="button"
className="aa-btn aa-btn--full"
onClick={onGenerateLipsync}
>
<button type="button" className="aa-btn aa-btn--full" onClick={onGenerateLipsync}>
🔄 重新生成对口型
</button>
) : isGenerating ? (
@@ -55,9 +55,7 @@ export function PanelScript({
value={scriptText}
readOnly={scriptTab === "library"}
placeholder={
scriptTab === "library"
? "点击上方按钮,从文案库选择文案…"
: "请输入数字人口播文案…"
scriptTab === "library" ? "点击上方按钮,从文案库选择文案…" : "请输入数字人口播文案…"
}
onChange={(e) => onScriptTextChange(e.target.value)}
/>