M8 本地构建完成 · GATE-M8 未过

Tier 0 产品族的内部运营控制台——人签核Agent 持住的事

ops-console 是 Tier 0 产品族登录后使用的内部运营工作台。订单、退款、内容与上架由 Agent 在上游执行;控制台是人看到这些持住事项、批准或拒绝、并读业务数字的地方。单环境密码 + HMAC 签名 Cookie,两个角色,没有用户表、没有注册流程,浏览器里没有任何密钥。它不面向商家、不是 SaaS、也不开放注册。

  • 5项能力
  • 2个角色
  • 20s审批刷新
审批流转WEBHOOK → 人 → 执行
第 1 步飞书 / 微信 / 邮件通知
IM CARDIM 中的 webhook 卡片
第 2 步打开被持住的事项
DEEP LINK审批深链
第 3 步批准 / 拒绝
HUMAN DECISION工作台决策
第 4 步经 zeus 与 commerce API
UPSTREAM API上游执行
ZEUS /APPROVAL 端点与 Agent 等待的同一条通道
D2/D3 held  423 → approve / reject → result flows back
workbench polls the queue every 20s while open
控制台失效边界界面宕了,上游照常运行
browser holds only an HMAC cookie — zero upstream keys
console stopped  zeus & commerce APIs keep running
  • IM 通知
  • 审批深链
  • 人做决策
  • 上游执行
静态流程图,非实时状态
能力

工作台做五件事

控制台写的每一项都走上游服务;读的每一块都复用现有看板。工作台是透镜和决策席,不是业务状态的第二份拷贝。

会话与 RBAC

极简会话,没有用户表

一个环境密码 + HMAC 签名 Cookie。两个角色——owner 与 operator。没有账号表、没有注册、没有重置密码流程,上游密钥永远不进浏览器。

  • single env password
  • HMAC-signed cookie
  • owner / operator
  • zero keys in browser
D1–D3 队列

审批工作台

D1–D3 的持住事项排成卡片:批准或拒绝。结果一致地经 zeus /approval 端点回传——与 Agent 等待的是同一条通道——队列开启时工作台按 20 秒轮询刷新。

  • approve / reject
  • zeus /approval
  • 20s polling
只读

业务看板

复用电商看板的只读视图:订单、退款、内容与净额。不含成本数据——控制台只读,上游服务负责决策与写入。

  • orders · refunds · content
  • net amount only
  • no cost data
WEBHOOK 卡片

带深链的通知

每一条持住事项都以 webhook 卡片出现在 IM 客户端里,带审批深链。IM 只通知——批准与拒绝永远不在 IM 里发生;深链把人带到工作台对应的事项上。

  • Feishu / WeChat / email
  • approval deep links
  • notify-only IM
受控写入

按角色授权的写入

D3 上架变更仅 owner 可操作;D2 退款两个角色都可操作;流程允许的环节支持手工库存调整。每一次写入都经 commerce 端点执行——控制台绝不直接改存储。

  • D3 listing: owner-only
  • D2 refunds: both roles
  • manual stock adjust
  • via commerce endpoints

机器读数为固定标识:owner / operator 角色、D1–D3 分级、zeus /approval 端点、20 秒轮询间隔。控制台本身不存业务记录,所有状态都在 zeus 与 commerce 里。

设计原则

刻意做小,随时能关掉

01

单进程 = 单部署单元

单进程 Astro 7 SSR(node standalone)+ React 19 交互岛。一个进程就是一个部署单元:一份配置、一次重启、一个要操心的东西。

02

令牌只在服务端

上游 bearer 令牌只存在于服务端。浏览器里除了 HMAC Cookie 什么都没有;客户端没有任何路径可以直接调用 zeus 或 commerce。

03

爆炸半径就是界面

关掉控制台不影响底层 zeus 与 commerce API。工作台是上游服务的透镜,不是它们的依赖。

控制台的存在是为了把人放进回路——永远不要变成回路所依赖的另一个系统。

公开进度

M8 本地全绿;GATE-M8 尚未过门

工作台功能完整、本地验证全绿。剩下的都是外部验收——连续 live 天数、真实通知端点、生产鉴权与真实部署。不提前宣称过门。

  1. M8 运营控制台与通知本地全绿

    本地开发完成。所有本地验证全绿:Vitest 40/40、astro check 0 错误、verify-batch1 29/0、notify 通路 OK、verify-batch2 21/0。工作台在本地端到端可运行。

  2. GATE-M8 线上验收门未过

    未过。下面这些事项都是外部的——在这个仓库里无法了结,也绝不宣称已完成。

验收板
  • 本地验证全绿 · 40/40 · CHECK 0 · 29/0 · NOTIFY · 21/0
  • 连续 live 运营待满连续 7 天
  • webhook 地址飞书 / 微信 / 邮件 待接入
  • 生产鉴权CLOUDFLARE ACCESS / GITHUB OIDC 待接入
  • 现网部署域名 · TLS · 真实店铺——依赖 M6

绝不冒充已上线:没有真实店铺连接、没有生产 webhook、没有生产鉴权。规划地址 https://ops-console.bayjf.com 在 GATE-M8 过门前仅为占位。