rogee
|
a9ac84f459
|
feat(accounts): 创建账号表单支持指纹浏览器环境配置
douyin-release-gate / verify (push) Failing after 4m3s
- 前端创建页折叠区块:平台/品牌/版本/语言/时区/硬件并发/关闭伪装维度,留空使用默认
- 后端 accountRequest 增加 fingerprint,校验前置 400(避免账号已建、绑定失败的中间态)
- seed 服务端从账号派生、proxy 由网络出口管理,两者不接受表单值
- 补建端点支持携带指纹重试;start 自愈补建保持零值指纹
- PG 集成测试:指纹落库/非法值拒绝不建号/补建指纹重试
|
2026-09-29 14:49:59 +08:00 |
|
rogee
|
a94bdf7921
|
feat(gateway): 网关健康状态——后台定时探活只保留最近一次结果并在列表展示
- 迁移 1043:gateway 表加 health_status/last_check_reason/last_checked_at
- Store.RecordGatewayCheck 覆盖写最近一次探活结果,Create/Update/List/Get 全量返回健康字段
- api.RecordGatewayHealthChecks 并发探 /healthz:连接失败或 5xx 判离线,其余判在线(401 等异常写入原因供排查)
- workers 每 30 秒一轮,app 启动接线
- 网关管理列表新增健康状态列:在线/离线/未检查 Tag,原因与检查时间收进 Tooltip
|
2026-09-29 14:47:49 +08:00 |
|
rogee
|
09a039eed2
|
fix(gateway): 删除/清理代际放行——runtime_id 为空或 sentinel 时不再与 released 残留代冲突 409
douyin-release-gate / verify (push) Failing after 4m30s
- pause 后(只剩 released 记录)账号删除链路:控制面以空/哨兵 runtime_id 发 DELETE,
_find_record_for_generation 不再回落命中 released 旧代,remove/purge 静默无副作用返回
- running 等实物代仍严格 fence(真实代 DELETE 行为不变)
- 回归:sentinel remove noop + purge released profile 两用例
|
2026-09-28 23:54:32 +08:00 |
|
rogee
|
ddd1396629
|
docs(plan): 三阶段迭代完成状态标注(Phase 3 数字主键重构合入)
|
2026-09-28 23:16:02 +08:00 |
|
rogee
|
2e96ed49b8
|
test(api): 审计过滤端点 PG 集成测试(auditFilter 参数校验与分页)
|
2026-09-28 23:04:55 +08:00 |
|
rogee
|
25098b9f81
|
fix(web): 出口重绑改走 POST /browsers/:alias/rebind(原 /network-exits/:id/rebind 无对应后端路由)
|
2026-09-28 22:30:36 +08:00 |
|
rogee
|
799087fcb1
|
test(api): 账号删除链路 PG 集成测试 + 测试直写 SQL 适配 044 列名(social_account/browser_env/audit_event)
|
2026-09-28 22:30:31 +08:00 |
|
rogee
|
fba7ee6236
|
refactor(creator): store SQL 适配 044 数字主键——WHERE 走文本 UNIQUE 列、metric 插入经 work_id 子查询
|
2026-09-28 22:30:23 +08:00 |
|
rogee
|
65d0801290
|
feat(schema): 044 数字主键——全表 bigint IDENTITY、文本标识降级 UNIQUE、FK 重指
- 迁移 044:9 张表换 bigint IDENTITY 主键,account_id/exit_id/competitor_id/work_id/comment_id/job_id/rule_id 降级 UNIQUE;
引用表 FK 重指 bigint;checkpoint 删派生文本 id;creator_settings 布尔 PK 换 bigint identity + 单行表达式唯一索引;
social_account.profile_id 死列删除
- seed 派生改 SQL:CreateBoundEnv 用 jsonb_set(account.id+1000),deriveSeed 删除;Fingerprint.Validate 允许 Seed=0(派生态)
- 三域 store SQL 列名适配;appendAudit/审计过滤经 JOIN 读回文本标识;UPDATE..RETURNING..FROM 拆两段式
- 对外 API 契约不变:模型/JSON/URL 全部保持文本 ID
- account 域补 PG 生命周期集成测试(列表/凭据解析/暂停吊销恢复/审计过滤/删除链路),覆盖率 22.4%→73.9%
|
2026-09-28 22:30:14 +08:00 |
|
rogee
|
7dea052e55
|
feat(web): 账号即环境 UI 收敛——删 /browsers 页面,环境并入账号详情
- 删除 /browsers 列表/创建/详情页与菜单项,运行环境不再是独立资源
- 账号详情:GET /api/phase-a/accounts/:id 内联 environment 字段
(网关/出口/绑定版本/运行实例/不可调度原因),固定资源卡直接展示
- 状态卡两态开关:暂停→「启动账号」(start=resume+启动环境),
运行中→「暂停账号」(联动停环境);出口重绑卡片内完成
(POST /network-exits/:id/rebind 返回内联 environment,出口切换不再跳环境页)
- 删除 creator/settings 残留的转写服务字段(后端 settings 无此列)
- helpers.ts accountReadiness 改用 runtime_id/runtime_cleanup_pending
- network-exits 列表绑定账号列改由账号列表内联数据驱动
- 全量验证:go test ./...(PG)全绿、tsc --noEmit 通过、max build 通过、
node --test 12/12 通过
|
2026-09-28 20:30:23 +08:00 |
|
rogee
|
bcc33fe497
|
feat(accounts): 账号即环境——创建即绑定、幂等补建、start 组合接口
- POST /api/phase-a/accounts 创建成功即绑定环境:alias=账号文本 ID、
唯一网关自动取(缺失 404/多网关 409)、出口直连、seed 由账号 ID 派生
(deriveSeed,数字主键落地后改 bigint id+1000);绑定失败 503 透传 account_id
- POST /api/phase-a/accounts/:id/environment 幂等补建:已绑定原样返回
- POST /api/phase-a/accounts/:id/start = resume + 启动环境(环境缺失自愈补建,
审计对齐全);吊销账号 start → 409 readiness blocked;停止沿用 pause
- 测试:deriveSeed 纯单测(确定性/值域/固定向量)+ PG 集成覆盖
绑定失败恢复、补建幂等、seed 断言、start 激活与冲突分支;
RegisterAccountRoutes 参数升级为 HubStore,路由矩阵登记新端点
|
2026-09-28 20:10:50 +08:00 |
|
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 |
|