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
|
2e96ed49b8
|
test(api): 审计过滤端点 PG 集成测试(auditFilter 参数校验与分页)
|
2026-09-28 23:04:55 +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
|
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
|
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
|
8c1fce3819
|
test(creator): 账号监控视图与采集状态集成断言(聚合/下次窗口/failed 错误可见)
|
2026-09-27 22:20:45 +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
|
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 |
|
rogee
|
7cb2a0a2b4
|
fix(creator): 竞品同步 blocked 状态也排下次重试,避免定时获取永久失效
|
2026-09-27 13:22:54 +08:00 |
|
rogee
|
6cd4cdc57f
|
refactor(platform): 平台收敛为抖音——移除小红书全链路,监控账号新增画像字段与卡片列表
- 移除小红书:internal/platform/xiaohongshu、controlplane XHS 分支与路由、
browser_gateway XHS 平台模块与处理器、前端平台选项;migration 038 清理
XHS 数据并将 creator_* 平台 CHECK 收紧为 douyin
- creator_competitor 新增 follower_count/following_count/aweme_count(仅
接口定义返回,暂不采集回填);列表接口返回 work_count 与
latest_published_at(creator_work_source 聚合 MAX(published_at))
- 导入页账号名称列展示作者头像(share job 列表带出 avatar_url)
- 监控账号页改 antd Listy 卡片列表(头像+粉丝/关注/作品/最近发布/同步状态);
AccountManagementList 收敛为 owned 专用
- 环境模块清理 browser_version 遗留:migration 034 补齐删列,修复 store.go
中 hub 别名悬空引用,测试 fixture 对齐新 schema
|
2026-09-24 19:30:28 +08:00 |
|
rogee
|
c8c460da82
|
feat: 账号导入列表移除块级标题、刷新改图标,新增账号名称列(成功任务回填作者名)
|
2026-09-23 17:20:20 +08:00 |
|
rogee
|
4f736cba21
|
feat: split account management
|
2026-09-21 16:44:09 +08:00 |
|
rogee
|
86a332997e
|
fix gateway share resolution and competitor identity
|
2026-09-21 12:51:58 +08:00 |
|
rogee
|
184cab3677
|
fix: randomize competitor preview gateway
|
2026-09-21 10:48:53 +08:00 |
|
rogee
|
7934435475
|
remove browser version management
|
2026-09-21 08:47:21 +08:00 |
|
rogee
|
8d35318c7e
|
feat: complete TanStack dashboard acceptance
|
2026-09-19 12:09:01 +08:00 |
|
rogee
|
2275075d7e
|
refactor: reorganize project by component
|
2026-09-18 19:00:31 +08:00 |
|
rogee
|
e8f2c192ba
|
refactor: migrate browser gateway to native xvfb
|
2026-09-18 16:50:18 +08:00 |
|
rogee
|
9ee7989f88
|
feat: allow account and competitor deletion
|
2026-09-17 16:09:17 +08:00 |
|
rogee
|
1bf905599c
|
feat: unify owned and monitored accounts
|
2026-09-17 15:18:59 +08:00 |
|
rogee
|
9095920a5b
|
fix: complete Douyin release remediation
|
2026-09-16 01:51:14 +08:00 |
|
rogee
|
977e541fef
|
feat: finish Douyin production readiness flow
|
2026-09-15 09:20:51 +08:00 |
|
rogee
|
5867aac20f
|
fix: complete Xiaohongshu read-only flow
|
2026-09-14 23:19:31 +08:00 |
|
rogee
|
4c37d0c9bf
|
feat: restore Xiaohongshu read-only collection
|
2026-09-14 20:05:32 +08:00 |
|
rogee
|
44a28954cf
|
feat: integrate creator hub douyin workflows
|
2026-09-14 19:22:07 +08:00 |
|
rogee
|
4d1dd37438
|
feat: complete CreatorHub gateway review fixes
|
2026-09-13 21:52:52 +08:00 |
|
rogee
|
860ecaf7ea
|
feat: continue CreatorHub plan01 implementation
|
2026-09-12 20:17:29 +08:00 |
|
rogee
|
ab7499655b
|
fix: store network exit credentials directly
|
2026-09-03 15:06:35 +08:00 |
|
rogee
|
a2669620da
|
fix(gateways): 支持编辑名称地址和令牌
- 新增 PUT /api/gateways/:name,支持改名、修改 Endpoint 与令牌
- 网关改名通过 PostgreSQL ON UPDATE CASCADE 原子同步环境引用
- 编辑令牌留空时保留原值,避免只改地址时意外轮换
- 网关列表增加编辑弹窗并覆盖成功、冲突、缺失与失败展示
|
2026-09-03 13:14:13 +08:00 |
|
rogee
|
1e92e16ed3
|
fix(account): close create modal on success and make cookies optional
- AccountList.createAccount 成功后关闭创建弹窗(此前只提示不关闭)
- Cookies 前端改为可选:留空代表扫码登录场景,提交时不携带该字段
- 后端 validAccount 允许空凭据(此前 http.ParseCookie("") 直接拒绝)
- CreateAccount 空凭据时跳过 keyring 写入,不产生空值记录;回滚补偿仅在实际写入过凭据时执行
验证:go test ./... / go vet ./... / 双端构建通过;web vitest 66 用例通过(新增无 cookies 创建+弹窗关闭用例);npm run build 通过
|
2026-09-02 17:00:19 +08:00 |
|
rogee
|
f054d04321
|
HH-912: simplify social account creation (#36)
|
2026-09-02 02:03:36 +08:00 |
|
rogee
|
3729ce910f
|
feat: support direct network exit for runtimes
|
2026-09-01 19:12:48 +08:00 |
|
rogee
|
ddd92eea89
|
HH-868: add fail-closed Douyin read-only connector core (#31)
|
2026-09-01 12:02:24 +08:00 |
|
rogee
|
024bf14448
|
HH-807: harden runtime coordination (#21)
|
2026-08-31 19:37:17 +08:00 |
|
rogee
|
1d9fd9f0e0
|
HH-867: 控制面单用户认证与停机通知 (#30)
|
2026-08-31 18:31:11 +08:00 |
|
rogee
|
b117cc738f
|
HH-846 / HH-799: add task recovery and audit (#27)
|
2026-08-31 13:19:54 +08:00 |
|
rogee
|
0fbfb335c4
|
HH-805: structure runtime audit and cover phase A HTTP (#29)
|
2026-08-31 12:30:59 +08:00 |
|
rogee
|
59c30d887c
|
HH-847 / HH-799: add draft review and idempotent enqueue (#24)
|
2026-08-31 09:09:47 +08:00 |
|