fix(core): 删脚本分镜联动删故事板帧 + 演员库自取 person + 分镜编辑行抽组件

- views.py: delete-script-segment 同步删对应 StoryboardFrame(原 SET_NULL 留孤儿帧致故事板仍显示已删的场),并重排剩余帧 sort_order
- actor-library.tsx: 演员库改自取 person 资产(全局 assets 已懒加载不再全量预载,否则演员库全空),保存后 reload 即时入列
- pipeline.tsx: 抽出 EditableShotField 组件、PromptBox 参数化
- 附 perf-report 产物

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zyc
2026-06-17 19:18:15 +08:00
co-authored by Claude Opus 4.8
parent f1bc5933ef
commit c62abed536
5 changed files with 174 additions and 182 deletions
+54 -101
View File
@@ -1,11 +1,11 @@
{
"ts": "2026-06-17T10:24:13.586Z",
"ts": "2026-06-17T10:57:57.302Z",
"base": "http://127.0.0.1:5174",
"apiChecks": [
{
"name": "page_size 生效 /api/assets/",
"pass": true,
"detail": "count=227 返回=200 next=有"
"detail": "count=239 返回=200 next=有"
},
{
"name": "page_size 生效 /api/products/",
@@ -15,31 +15,31 @@
{
"name": "page_size 生效 /api/projects/",
"pass": true,
"detail": "count=19 返回=19 next=无"
"detail": "count=21 返回=21 next=无"
},
{
"name": "延迟 /api/assets/?page_size=200",
"pass": false,
"pass": true,
"soft": true,
"detail": "2235ms / 参考 1200ms (HTTP 200)"
"detail": "720ms / 参考 1200ms (HTTP 200)"
},
{
"name": "延迟 /api/products/?page_size=200",
"pass": true,
"soft": true,
"detail": "962ms / 参考 1200ms (HTTP 200)"
"detail": "597ms / 参考 1200ms (HTTP 200)"
},
{
"name": "延迟 /api/projects/?page_size=200",
"pass": false,
"soft": true,
"detail": "2703ms / 参考 1200ms (HTTP 200)"
"detail": "2004ms / 参考 1200ms (HTTP 200)"
},
{
"name": "延迟 /api/ops/notifications/?page_size=100",
"pass": false,
"soft": true,
"detail": "1959ms / 参考 1200ms (HTTP 200)"
"detail": "1228ms / 参考 1200ms (HTTP 200)"
}
],
"pageFailed": 0,
@@ -47,9 +47,9 @@
{
"name": "dashboard",
"route": "http://127.0.0.1:5174/dashboard",
"unique": 9,
"unique": 6,
"budget": 14,
"rawRequests": 11,
"rawRequests": 7,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -58,15 +58,11 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100",
"GET /api/ops/notifications/?page_size=1",
"GET /api/assets/summary/"
],
"elapsedMs": 6445,
"elapsedMs": 5557,
"problems": [],
"warnings": [],
"pass": true
@@ -74,9 +70,9 @@
{
"name": "products",
"route": "http://127.0.0.1:5174/products",
"unique": 8,
"unique": 5,
"budget": 6,
"rawRequests": 10,
"rawRequests": 6,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -85,26 +81,20 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100"
"GET /api/ops/notifications/?page_size=1"
],
"elapsedMs": 3892,
"elapsedMs": 3488,
"problems": [],
"warnings": [
"首屏接口数 8 > 预算 6(架构性过量拉取,待决策)"
],
"warnings": [],
"pass": true
},
{
"name": "projects",
"route": "http://127.0.0.1:5174/projects",
"unique": 8,
"unique": 5,
"budget": 6,
"rawRequests": 10,
"rawRequests": 6,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -113,26 +103,20 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100"
"GET /api/ops/notifications/?page_size=1"
],
"elapsedMs": 3765,
"elapsedMs": 3502,
"problems": [],
"warnings": [
"首屏接口数 8 > 预算 6(架构性过量拉取,待决策)"
],
"warnings": [],
"pass": true
},
{
"name": "library",
"route": "http://127.0.0.1:5174/library",
"unique": 11,
"unique": 8,
"budget": 8,
"rawRequests": 14,
"rawRequests": 10,
"waterfall": 0,
"duplicates": [
{
@@ -147,20 +131,14 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100",
"GET /api/ops/notifications/?page_size=1",
"GET /api/assets/summary/",
"GET /api/assets/facets/?meta_keys=gender,age,role&tab=people"
],
"elapsedMs": 6012,
"elapsedMs": 5728,
"problems": [],
"warnings": [
"首屏接口数 11 > 预算 8(架构性过量拉取,待决策)"
],
"warnings": [],
"pass": true
},
{
@@ -168,28 +146,22 @@
"route": "http://127.0.0.1:5174/account",
"unique": 8,
"budget": 8,
"rawRequests": 11,
"rawRequests": 9,
"waterfall": 0,
"duplicates": [
{
"key": "GET /api/billing/ledgers/?page=1&page_size=10",
"n": 2
}
],
"duplicates": [],
"failed": [],
"breakdown": [
"GET /api/billing/ledgers/?page=1&page_size=10 ×2",
"GET /api/auth/me/",
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/ai/models/",
"GET /api/ops/notifications/?page_size=1",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100"
"GET /api/billing/ledgers/?page=1&page_size=10"
],
"elapsedMs": 5753,
"elapsedMs": 5743,
"problems": [],
"warnings": [],
"pass": true
@@ -197,9 +169,9 @@
{
"name": "team",
"route": "http://127.0.0.1:5174/team",
"unique": 8,
"unique": 6,
"budget": 4,
"rawRequests": 10,
"rawRequests": 8,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -208,26 +180,24 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=1",
"GET /api/auth/team/members/",
"GET /api/ops/notifications/?page_size=100"
],
"elapsedMs": 3555,
"elapsedMs": 5500,
"problems": [],
"warnings": [
"首屏接口数 8 > 预算 4(架构性过量拉取,待决策)"
"首屏接口数 6 > 预算 4(架构性过量拉取,待决策)"
],
"pass": true
},
{
"name": "messages",
"route": "http://127.0.0.1:5174/messages",
"unique": 8,
"unique": 5,
"budget": 4,
"rawRequests": 11,
"rawRequests": 7,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -236,27 +206,23 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100",
"GET /api/ops/notifications/?page_size=1",
"GET /api/ops/notifications/?page=1&page_size=10"
],
"elapsedMs": 3468,
"elapsedMs": 3485,
"problems": [],
"warnings": [
"首屏接口数 8 > 预算 4(架构性过量拉取,待决策)"
"首屏接口数 5 > 预算 4(架构性过量拉取,待决策)"
],
"pass": true
},
{
"name": "productDetail",
"route": "http://127.0.0.1:5174/products/045ad8d6-8b15-486b-a4a9-f6968eb1555f",
"unique": 9,
"unique": 6,
"budget": 8,
"rawRequests": 11,
"rawRequests": 7,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -265,27 +231,21 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100",
"GET /api/ops/notifications/?page_size=1",
"GET /api/assets/?page_size=200&product=045ad8d6-8b15-486b-a4a9-f6968eb1555f"
],
"elapsedMs": 5956,
"elapsedMs": 5755,
"problems": [],
"warnings": [
"首屏接口数 9 > 预算 8(架构性过量拉取,待决策)"
],
"warnings": [],
"pass": true
},
{
"name": "pipeline",
"route": "http://127.0.0.1:5174/pipeline/1048451e-3b4a-4b66-a8f4-cb865096de2f",
"unique": 11,
"unique": 7,
"budget": 10,
"rawRequests": 13,
"rawRequests": 8,
"waterfall": 0,
"duplicates": [],
"failed": [],
@@ -295,20 +255,13 @@
"GET /api/products/",
"GET /api/projects/",
"GET /api/billing/summary/",
"GET /api/billing/ledgers/?page=1&page_size=10",
"GET /api/billing/trend/",
"GET /api/auth/team/members/",
"GET /api/ai/models/",
"GET /api/ai/tasks/",
"GET /api/ops/notifications/?page_size=100",
"POST /api/projects/1048451e-3b4a-4b66-a8f4-cb865096de2f/generate-base-asset/",
"GET /api/ops/notifications/?page_size=1",
"GET /api/projects/1048451e-3b4a-4b66-a8f4-cb865096de2f/pending-assets/"
],
"elapsedMs": 5702,
"elapsedMs": 6015,
"problems": [],
"warnings": [
"首屏接口数 11 > 预算 10(架构性过量拉取,待决策)"
],
"warnings": [],
"pass": true
}
]