rogee
|
0879d9fd25
|
refactor(schema): 迁移 043 schema 收敛——42→19 张表,统一迁移 runner
- 迁移 043 一次到位:runtime_instance/environment_binding 并入 browser_env(账号即环境)、
credential_reference 并入 social_account、work_source/metric_plan 并入 creator_work、
sync 租约并入 creator_collection_checkpoint(kind='sync')、audit_event 瘦列、
creator_settings 去转写列、TRUNCATE 账号域(竞品采集数据无损保留)
- 统一迁移 runner:environment.Open 串起 001 账号基座 + hub 链 + 038 creator 版本回填
(v+1000) + creator 1017-1042 + 043;account/creator Open 不再迁移
- 三域 store SQL 全量适配:CreateBoundEnv 就绪门禁、SetRuntimeCleanupPending fence
语义(未知代 MissingRuntimeID 允许登记并释放活跃实例)、metric_plan 列并入 work、
checkpoint sync 租约、deletion 链路重写
- api 适配:envView 去 runtime_instance_id、audit filter 去任务列、browser_env 单表查询
- 测试:迁移 043 形态探针、迁移不可变映射新路径、legacy 迁移重放子测试重写、
fence/出口生命周期/单来源 upsert 语义覆盖;CREATORHUB_POSTGRES_TEST_URL 全绿,
environment 70%/creator 67.5% 覆盖率,tsc 通过
|
2026-09-28 19:48:55 +08:00 |
|
rogee
|
4b8cd264cc
|
test(account): 清理测试中任务表引用
|
2026-09-28 17:17:12 +08:00 |
|
rogee
|
ab7b91387c
|
refactor(creator): 删除删除链路对运营表的引用
|
2026-09-28 17:16:05 +08:00 |
|
rogee
|
c567080248
|
refactor(api): 删除运营链路与 runtime_use_lease
删除任务链(drafts/confirmations/tasks/attempts)、creator 运营链(策略/事件/操作/会话/消息/监听器/素材/关系)、runtime_use_lease 机制及其 API/UI;taskstate 包与对应测试一并移除。
|
2026-09-28 17:14:00 +08:00 |
|
rogee
|
c2bccba352
|
refactor(web): 删除前端空转链路(任务中心/草稿/attempt/运营工作台/素材面板)
- 删页面目录 tasks/ drafts/ attempts/ creator/workbench/
- 竞品页移除素材处理 Drawer 与素材操作
- metadata 菜单与页头规则同步收敛
- api.ts/listQuery.ts 移除对应 resource 与函数
- 固定表头测试文件清单同步
|
2026-09-28 15:54:32 +08:00 |
|
rogee
|
35f2ebd44c
|
chore: merge feature/account-bound-runtime web ui fixes
douyin-release-gate / verify (push) Failing after 3m30s
|
2026-09-28 15:38:25 +08:00 |
|
rogee
|
0a988fb1b3
|
fix(web): conditional table scroll and fixed first column
|
2026-09-28 15:28:31 +08:00 |
|
rogee
|
7ed542df4f
|
fix(web): unify list tables with fixed header, fixed actions and pagination
|
2026-09-28 15:20:55 +08:00 |
|
rogee
|
630a4feab1
|
fix(web): use text buttons for table row actions
|
2026-09-28 14:33:54 +08:00 |
|
rogee
|
5b2756fea8
|
fix(web): spacing for monitoring account tags and square larger avatar
|
2026-09-28 14:24:49 +08:00 |
|
rogee
|
6958330a5f
|
fix(web): hide title for untitled works
douyin-release-gate / verify (push) Failing after 3m9s
|
2026-09-28 12:56:43 +08:00 |
|
rogee
|
5dcabcb3cd
|
fix(web): split monitoring account metrics into columns
|
2026-09-28 12:52:18 +08:00 |
|
rogee
|
ae7dec7e88
|
fix(web): restore monitoring account table without platform account key
|
2026-09-28 12:44:38 +08:00 |
|
rogee
|
b625562c9a
|
fix(web): 作品卡指标 GRID 上移至封面正下方内容上方,ICON 移到数字下方
douyin-release-gate / verify (push) Failing after 3m13s
- WorkStatsGrid 移到卡片 body 顶部(紧贴封面边框行),标题/描述/发布时间在其下
- 每列改为数字在上(14px 加粗)、图标+标签在下(11px 辅助色),单列纵向展示
- 单测断言同步更新,node --test 4 例全绿,tsc/antd lint 通过
|
2026-09-28 11:57:46 +08:00 |
|
rogee
|
77e79982fa
|
fix(gateway): douyinpic 图片 fetch 改 credentials omit——修复封面缓存全量 502
douyinpic CDN 恒返回 Access-Control-Allow-Origin:'*',跨站 fetch 带 credentials:'include'
按 CORS 规范必被拒(TypeError Failed to fetch),封面回填全部失败、creator_work_cover 落 0 行。
公共图片不需要 cookies,改 credentials:'omit' 后浏览器内 fetch 200,回填链路恢复。
验证:test_gateway 55 例全绿;实测 anon 浏览器 image fetch 200 image/jpeg;强制同步后
creator_work_cover 落 7/7(该账号全部作品),/works/:id/cover 正常输出 JPEG。
|
2026-09-28 11:57:28 +08:00 |
|
rogee
|
c7fc67626e
|
fix(web): 趋势图改用 colorField,折线分色并显示指标图例
|
2026-09-28 11:47:16 +08:00 |
|
rogee
|
7f69f487b5
|
fix(web): 账号画像标题去上边距,移除标题下多余的抖音号信息行
douyin-release-gate / verify (push) Failing after 3m13s
|
2026-09-28 11:24:04 +08:00 |
|
rogee
|
a576018560
|
refactor(web): 监控账号详情页移除页头按钮左侧账号标识展示区
douyin-release-gate / verify (push) Failing after 30s
|
2026-09-28 11:21:46 +08:00 |
|
rogee
|
8748f899d4
|
feat(web): 监控作品卡片展示描述,观看/点赞/评论/分享全宽 GRID 贴封面下方
douyin-release-gate / verify (push) Failing after 3m20s
- WorksGallery 卡片封面改走本地缓存 /works/:id/cover(WorkCover 与竞品分析页同链路,
替换会过期的 douyinpic 签名 URL)
- 卡片新增作品描述(body,两行省略)
- 指标从标题下横排小字改为封面下方全宽四列 GRID(观看/点赞/评论/分享,上值下图标行)
- WorksGallery 为监控账号详情与自有账号详情共用,两处同步生效
- 测试:works-gallery-card 3 例 + 既有 1 例全绿,tsc/antd lint 通过
|
2026-09-28 11:19:52 +08:00 |
|
rogee
|
733b2d4b95
|
Merge branch 'fix/competitor-page-review-20260928'
|
2026-09-28 11:15:01 +08:00 |
|
rogee
|
bf4ded45b1
|
fix(web): 作品统计 Drawer 移除顶部封面图
|
2026-09-28 11:14:22 +08:00 |
|
rogee
|
2d68570465
|
fix(web): 作品统计评论列表改两列——作者时间合并列、内容完整换行显示
|
2026-09-28 11:09:07 +08:00 |
|
rogee
|
8fe66f24a0
|
fix(web): remove duplicate monitoring row spacing and border
|
2026-09-28 10:48:56 +08:00 |
|
rogee
|
143f3b263e
|
fix(creator): 竞品分析页走查修复——封面本地缓存、作者名、指标全宽行、数量入卡片标题
- 后端:works 采集解析 author.nickname 与 video.cover.url_list(migration 042 新增
creator_work_cover 本地缓存表);竞品同步成功后回填缺失封面(单次上限 40,余量自愈)
- 网关:新增 /douyin/image 浏览器内 fetch 图片端点(douyinpic CDN 白名单、4MB 限额)
- API:GET /api/creator/works/:id/cover 输出本地缓存封面(private 缓存头)
- 前端:封面改读本地缓存(认证 fetch + blob);点赞/评论/分享全宽行贴封面下方;
作者名独立展示;'下次采集'移除;作品总数移入卡片标题右侧 extra
- '已核验' 状态标签补充 Tooltip 释义(发布时间已从平台数据成功解析核验)
测试:douyin 解析 3 例、cover 存储 PG 集成 1 例、网关 image 3 例全绿
|
2026-09-28 10:39:56 +08:00 |
|
rogee
|
5e391b70e9
|
fix(environment): 迁移不可变规则落地——034 违规补齐改为新迁移 037,修复 browser_env.image_version 残留导致的创建环境 500
douyin-release-gate / verify (push) Failing after 3m10s
- 迁移 037(幂等):补删 browser_env.image_version、audit_event 镜像列、browser_image 表
- 恢复 034 为引入时原版(撤销 6cd4cdc 的原地修改)
- 新增 migrations immutable 单测:迁移文件引入后不得改内容,要改就新增版本号
- web: 指纹种子字段中文化 + 指纹参数 400 错误映射为具体中文提示
|
2026-09-28 10:32:37 +08:00 |
|
rogee
|
85ffe6906f
|
fix(browsers): 表单校验报错文案可读化——seed/端口用完整中文句子替代裸数字区间
|
2026-09-28 09:48:08 +08:00 |
|
rogee
|
6953c32434
|
fix(gateway): 端口冲突报错友好化——Python 层 EADDRINUSE 一行化,dev 脚本启动前预检并给出占用进程与处理建议
|
2026-09-28 09:33:05 +08:00 |
|
rogee
|
03f6145a61
|
fix(creator): 修复导入页列表 SQL —— join 缺别名导致 /accounts/import 一进来就 500
- ListCompetitorShareJobsWithAuthor 的 LEFT JOIN creator_competitor 缺 AS competitor
别名,ON 条件引用 competitor.id 直接报 missing FROM-clause entry(42P01)
- competitorShareJobFilter 过滤条件误用原表名 creator_competitor_share_job,
与查询别名 share_job 不符,带 platform/status 参数时会再报缺列
- 新增集成测试 TestListCompetitorShareJobsWithAuthorSQL 覆盖 join 作者回填
与 platform/status 过滤(此前该 SQL 无任何测试,bug 逃逸)
|
2026-09-28 09:19:02 +08:00 |
|
rogee
|
2baa2e8406
|
Merge branch 'fix/ui-review-20260927'——UI 走查问题全量修复:详情页 Flex vertical、工作台假加载、列表按钮规范、App.useApp 统一、任务筛选下拉、竞品素材 Drawer
douyin-release-gate / verify (push) Failing after 3m9s
|
2026-09-28 08:57:20 +08:00 |
|
rogee
|
5acc89edf4
|
fix(ui): 我的账号操作列去掉与账号名重复的「查看账号」入口(走查 P2-#10)
|
2026-09-28 07:37:13 +08:00 |
|
rogee
|
1a46ec0231
|
fix(ui): 竞品分析素材流程改 Drawer、日期筛选取 DatePicker、选择素材按钮降级并区分已选中态(走查 P2-#13)
|
2026-09-28 07:35:39 +08:00 |
|
rogee
|
a30e99a160
|
fix(ui): 创建环境表单 Space wrap 改 Row/Col 栅格,窄屏换行稳定(走查 P2-#11)
|
2026-09-28 07:32:20 +08:00 |
|
rogee
|
637900c5fd
|
fix(ui): 账号详情页 pending 态页头保留返回入口;同步/编辑加空态防护(走查 P2-#9)
|
2026-09-28 07:30:32 +08:00 |
|
rogee
|
08093a2e38
|
fix(ui): Select showSearch 新 API(optionFilterProp 迁移)
|
2026-09-28 07:26:29 +08:00 |
|
rogee
|
c5369bdc3c
|
fix(ui): 任务中心账号筛选改下拉、任务/账号 ID 可复制(走查 P2-#8)
|
2026-09-28 07:25:52 +08:00 |
|
rogee
|
b9490a0c1c
|
fix(ui): 监控账号列表行 hover 反馈(主题 token)、强制同步按钮 loading(走查 P2-#7)
|
2026-09-28 07:25:02 +08:00 |
|
rogee
|
bb388112a7
|
fix(ui): metadata 清理旧路径 /competitors 与 gateways 详情死规则,补竞品账号详情规则(走查 P1-#5)
|
2026-09-28 07:22:51 +08:00 |
|
rogee
|
96a4692c96
|
refactor(ui): 全站 message.useMessage 统一 App.useApp,删除 contextHolder(走查 P1-#4)
|
2026-09-28 07:22:18 +08:00 |
|
rogee
|
e52d8c797b
|
fix(ui): 我的账号列表按钮进 Card 右上角、补刷新、删平台列(走查 P1-#3/#6)
|
2026-09-28 07:20:17 +08:00 |
|
rogee
|
01624ace01
|
fix(ui): 工作台移除永久 loading 骨架,改 Empty 说明(走查 P0-#2)
|
2026-09-28 07:19:37 +08:00 |
|
rogee
|
4d1bf90943
|
fix(ui): 详情页 Flex 补 vertical,恢复纵向卡片布局(走查 P0-#1)
|
2026-09-28 07:19:02 +08:00 |
|
rogee
|
f68dd0a729
|
Merge branch 'feature/owned-account-monitoring'——自有账号数据监控:播放量入库、粉丝时序快照、监控 API 与前端接入
douyin-release-gate / verify (push) Failing after 3m26s
|
2026-09-27 22:20:45 +08:00 |
|
rogee
|
8c1fce3819
|
test(creator): 账号监控视图与采集状态集成断言(聚合/下次窗口/failed 错误可见)
|
2026-09-27 22:20:45 +08:00 |
|
rogee
|
fb1db68f13
|
feat(web): 自有账号监控接入——详情页账号数据/作品数据/采集状态/强制同步,列表作品统计列
- 账号详情页:账号状态卡加作品采集行(状态 Tag + 上次完成 + 下次窗口 + 最后错误);新增账号数据 Card(粉丝/关注/获赞/作品总数当前值 + 趋势折线);接入共享 WorksGallery(source_type='owned');页头槽加强制同步按钮
- 我的账号列表:改走 monitor-views 聚合接口,加作品数据列(作品数/最近发布)
|
2026-09-27 22:11:02 +08:00 |
|
rogee
|
127c3e70ee
|
refactor(web): 作品网格与 Drawer 抽取为共享 WorksGallery,接入播放序列与评论列表
- components/creator/WorksGallery:作品 Card 网格(分页+爆品筛选)+ Drawer(详情/增长曲线含播放/指标表含播放列/评论分页列表)
- 监控账号详情页改用共享组件,sourceType='competitor'
|
2026-09-27 22:08:25 +08:00 |
|
rogee
|
3f1e2d39f4
|
feat(creator): 自有账号监控后端——播放量入库、账号粉丝时序快照、监控 API
- migration 040/041:creator_work 与 creator_work_metric 加 play_count;新建 creator_account_metric 时序快照表
- douyin:详情接口解析 play_count;self profile 扩展解析粉丝/关注/获赞/作品数(flexibleInt 兼容字符串)
- creator store:PlayCount 全链路(UpsertWork COALESCE/RecordMetric/ListMetrics);RecordAccountMetric/ListAccountMetrics/ListAccountMonitorViews/GetAccountCollectionStatus
- controlplane:syncCreatorOwned 成功路径末尾记账号画像快照(失败 errors.Join 不吞错);新增 monitor-views/collection-status/metrics/sync 四个路由;creatorError 补 account.ErrNotFound→404
- 测试:integration/douyin/api 断言播放量落库与 COALESCE 语义、快照覆盖语义、路由 happy path 与 409/503/404 语义
|
2026-09-27 22:05:01 +08:00 |
|
rogee
|
01d1d44a15
|
feat(creator): 竞品作品指标采集改用匿名浏览器并新增收藏数与爆品增速
douyin-release-gate / verify (push) Failing after 3m23s
- 指标采集不再依赖已登录自有账号:竞品作品到期后经匿名浏览器拉取
抖音作品详情接口(detail 返回完整点赞/收藏/转发/评论快照)
- 补采收藏数:creator_work 与 creator_work_metric 新增 collect_count
(迁移 039),works 列表与 detail 解析均映射该字段
- 新增点赞增速:LoadWorksGrowth 按时间窗计算基线增量(full/partial
覆盖标注),works API 支持 growth_hours/min_likes_growth 筛选排序
- 前端监控详情页:作品卡片展示 24h 点赞增量、支持按增量筛选爆品;
作品 Drawer 新增增长曲线折线图(@ant-design/charts)与收藏列
|
2026-09-27 19:44:49 +08:00 |
|
rogee
|
d1aae0a60f
|
refactor(web): 强制同步按钮直调竞品 sync API,移除自有账号执行身份依赖
douyin-release-gate / verify (push) Failing after 3m43s
竞品同步已改用匿名浏览器,前端不再自动挑选自有账号作为执行身份
|
2026-09-27 15:43:08 +08:00 |
|
rogee
|
221ed65e32
|
feat(creator): 竞品作品同步改用匿名浏览器并限制并发
- 竞品同步不再依赖自有采集账号:每次同步按名额(并发上限 2)创建匿名浏览器,
导航至抖音首页等待访客 cookie 稳定后经网关受限 fetch 拉取作品
- 调度器对到期竞品并发同步,名额耗尽时排队等待
- 平台风控语义(实测,与公开爬虫项目一致):作品列表匿名仅能取第一页
(16-20 条),后续页一律空 envelope;空 envelope 视为正常分页终止
- 评论解析适配真实响应:reply_id="0" 为顶层评论、作者取 user 对象、
纯图片评论(text 空但带 image_list)记为「[图片]」
- fetch 签名与白名单:注入 byted_acrawler.frontierSign 的 a_bogus,
网关放宽响应上限至 8MB 并允许签名参数
|
2026-09-27 15:43:03 +08:00 |
|
rogee
|
dbb675c658
|
feat(web): 强制同步按钮(列表+详情);test: 强制同步语义断言(force 立即执行并刷新 next_sync_at)
douyin-release-gate / verify (push) Failing after 3m1s
|
2026-09-27 13:34:57 +08:00 |
|