Commit Graph
8 Commits
Author SHA1 Message Date
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 44a28954cf feat: integrate creator hub douyin workflows 2026-09-14 19:22:07 +08:00
rogee 83397927c2 fix: 账号列表与环境解耦;网关清理收敛已消失的旧代
- 社媒账号列表页不再拉取运行环境数据:账号是资源池,环境故障
  不应阻塞账号展示,409 横幅随之消失;「固定资源」「可调度」
  两列移除,绑定状态去运行环境页查看。详情页保持原行为。
- docker-gateway DELETE 清理:容器与登记网络均已不存在时返回
  204 而非 409,控制面 runtime_cleanup_pending 可收敛,修复
  外部清理过的旧代永久卡死;容器存活而网络消失仍 fail-closed。
2026-09-07 09:44:22 +08:00
rogee ab7499655b fix: store network exit credentials directly 2026-09-03 15:06:35 +08:00
rogee 24d2451f0c feat(accounts): TAGS 改为标签输入、账号列表改 table、内容区域全宽
- 创建账号弹窗 TAGS 字段使用 TagInput 胶囊标签输入(回车/逗号确认,退格删除,自动去重)
- 账号列表由卡片栅格改为 Table(账号/平台/授权/账号状态/固定资源/可调度)
- 布局移除 max-w-[1280px] 限制,内容区域全宽

验证:npm run test 66/66 通过,npm run build 成功,go test ./... 全 ok
2026-09-02 18:28:26 +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 7ecad93821 refactor(web): migrate frontend to React 19 + Refine v5 + shadcn/ui stack
技术栈切换(按 AGENTS.md 批准栈):react-admin/MUI → Refine v5 + shadcn/ui
(Tailwind CSS v4),Vite 8 + React 19 + react-router v7 hash 路由。

- 全部 9 个页面重写:AccountsPage/BrowsersPage(BrowserList/CreatePage/Detail)/
  BrowserImagesPage/GatewaysPage/NetworkExitsPage/TasksPage/TracePages/
  DraftPage/AuditPage;自建 lib/ui.jsx 组件库与 Layout(侧导航 + Outlet)
- 简单创建/编辑改 modal(账号/网关/镜像/出口),环境创建走独立页
  /browsers/new;列表按信息密度选表格或移动卡片双形态
- 图标统一 RemixIcon;领域动作保持显式动词(start/stop/upgrade/recycle
  等,不伪装成 CRUD update)
- LoginPage:Basic 凭证存 localStorage;401 清凭证并跳 #/login;
  AuthGate 改为渲染期读 localStorage(react-router v7 的 pushState 不触发
  hashchange,事件订阅会在导航后拿到过期状态导致登录后卡死)
- dataProvider 适配 Refine v5 契约:所有方法收单个参数对象
  ({resource, pagination, filters, meta, variables}),create/update/
  delete/deleteOne 语义对齐
- Modal 关闭时焦点还给触发元素;Select 保持原生 button/combobox 语义
- e2e 补登录前置;账号创建流程同步 modal 交互

验证:npm test 65/65 通过;覆盖率 71.5% stmts / 76.3% lines(门槛 65%);
vite build 成功;playwright e2e 9/9 通过。
2026-09-02 13:40:34 +08:00