M8 LOCAL BUILD COMPLETE · GATE-M8 NOT PASSED

The internal operations consolefor the Tier 0 family — humans sign off on what agents hold

ops-console is the post-login workbench where the Tier 0 family's internal operations run. Agents execute orders, refunds, content and listings upstream; the console is where a human sees the holds, approves or rejects them, and reads the business. One environment password and an HMAC-signed cookie, two roles, no user table, no registration, zero keys in the browser. It is not merchant-facing, not a SaaS, and not open to sign-up.

  • 5capabilities
  • 2roles
  • 20sapproval refresh
APPROVAL FLOWWEBHOOK → HUMAN → EXECUTE
STEP 1Feishu / WeChat / email notify
IM CARDWebhook card in IM
STEP 2opens the held item
DEEP LINKApproval deep link
STEP 3approve / reject
HUMAN DECISIONWorkbench decision
STEP 4via zeus and commerce APIs
UPSTREAM APIUpstream execution
ZEUS /APPROVAL ENDPOINTthe same channel agents wait on
D2/D3 held  423 → approve / reject → result flows back
workbench polls the queue every 20s while open
CONSOLE FAILURE BOUNDARYUI down = upstream keeps running
browser holds only an HMAC cookie — zero upstream keys
console stopped  zeus & commerce APIs keep running
  • IM notification
  • approval deep link
  • human decision
  • upstream execute
static flow diagram — not a live status feed
capabilities

Five things the workbench does

Everything the console writes goes through the upstream services; everything it reads is reused from existing dashboards. The workbench is a lens and a decision seat, never a second copy of business state.

SESSION & RBAC

Minimal session, no user table

One environment password plus an HMAC-signed cookie. Two roles — owner and operator. There is no account table, no registration, no password-reset flow, and no upstream key ever reaches the browser.

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

Approval workbench

D1–D3 holds queue as cards: approve or reject. Results flow back consistently through the zeus /approval endpoint — the same channel agents wait on — and the workbench refreshes on a 20s poll while the queue is open.

  • approve / reject
  • zeus /approval
  • 20s polling
READ-ONLY

Business dashboard

A read-only view reusing the commerce dashboard: orders, refunds, content and net amount. It shows no cost data — the console reads; upstream services decide and write.

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

Notifications with deep links

Every hold arrives as a webhook card in the IM client carrying an approval deep link. The IM client only notifies — approve and reject never happen inside IM; the link opens the workbench on the held item.

  • Feishu / WeChat / email
  • approval deep links
  • notify-only IM
CONTROLLED WRITES

Role-gated writes

D3 listing changes are owner-only; D2 refunds are open to both roles; manual stock adjustments are available where the flow allows. Every write executes through commerce endpoints — the console never mutates storage directly.

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

Machine readouts are fixed identifiers: owner / operator roles, D1–D3 grades, the zeus /approval endpoint, the 20s poll interval. The console itself stores no business records; all state lives in zeus and commerce.

design principles

Small by construction; safe to switch off

01

ONE PROCESS = ONE DEPLOYMENT

A single-process Astro 7 SSR (node standalone) with React 19 interactive islands. One process is one deployment unit: one config, one restart, one thing to reason about.

02

TOKENS STAY SERVER-SIDE

Upstream bearer tokens live on the server only. The browser holds nothing but an HMAC cookie; there is no path for the client to call zeus or commerce directly.

03

BLAST RADIUS IS THE UI

Shutting the console down does not affect the underlying zeus and commerce APIs. The workbench is a lens on upstream services, not a dependency of them.

The console exists to put a human in the loop — never to become another system the loop depends on.

build in public

M8 is green locally; GATE-M8 is not passed

The workbench is feature-complete and fully verified on the local build. What remains is external acceptance — days of live operation, real notification endpoints, production authentication and a real deployment. No gate is claimed early.

  1. M8 ops console & notificationsLOCAL GREEN

    Local development complete. Every local verification is green: Vitest 40/40, astro check 0 errors, verify-batch1 29/0, the notify path OK, verify-batch2 21/0. The workbench runs end to end locally.

  2. GATE-M8 live acceptanceGATE OPEN

    Not passed. The items below are external — they cannot be settled inside this repository, and none of them is claimed as done.

ACCEPTANCE BOARD
  • local verificationGREEN · 40/40 · CHECK 0 · 29/0 · NOTIFY · 21/0
  • live operations7 CONSECUTIVE DAYS PENDING
  • webhook URLsFEISHU / WECHAT / EMAIL PENDING
  • production authCLOUDFLARE ACCESS / GITHUB OIDC PENDING
  • live deploymentDOMAIN · TLS · REAL SHOP — DEPENDS ON M6

Never claimed as live: no real shop connection, no production webhooks, no production authentication. The planned URL https://ops-console.bayjf.com is a placeholder until GATE-M8 passes.