Files
flowmaster-mission-control-…/README.md
T
canvas-bot 58026b2486
build-and-publish / test (pull_request) Has been cancelled
build-and-publish / image (pull_request) Has been cancelled
feat(canvas): strip demo data, EA2 is the only source
- Remove src/data/synthetic.ts + its test (AR refund, HCM onboarding,
  GL close, Service Ops blueprints were hand-modelled fakes).
- Remove DataMode='snapshot'; the store now boots straight into live
  EA2 with no fallback. EA2 errors surface as toasts, not fake data.
- Topbar / Settings / CommandBar wording: 'SNAPSHOT'/'LIVE' becomes
  the unambiguous 'EA2' badge. No more user-facing mode switch.
- package.json name flowmaster-mission-control-demo → flowmaster-canvas.
- README rewritten — no longer calls the product a demo.
- store.test: drop the two tests that relied on synthetic scenarios
  always being present; add one asserting an EA2-empty response leaves
  the store cleanly empty (no error-stuck state).

All 23 vitest tests pass. tsc + vite build green. Bundle dropped
from ~238 kB gz → ~234 kB gz.
2026-06-15 01:08:28 +04:00

62 lines
2.1 KiB
Markdown

# FlowMaster — Canvas
**Live at https://canvas.flow-master.ai** · operations cockpit for every process the company runs.
Canvas is the FlowMaster operator surface. Industrial-blueprint doctrine:
paper canvas, navy frame, amber accent, 1px hairlines, square edges,
monospace operational density. People, Finance, Procurement, and IT in
one frame.
## What it is
- React 19 single-page app (Vite + ReactFlow + cmdk + framer-motion +
zustand + dagre).
- Connected directly to EA2 in the browser via the API client at
`src/lib/api.ts`. There is one data source: live EA2. No bundled
snapshot, no synthetic blueprints.
- Scenes: Landing, Mission Control, Run History, Process Studio, Hubs,
Agent, Settings, Login, SSO callback.
- Agent scene has a chat surface with per-tenant local memory (`src/lib/agentMemory.ts`)
and three intents: navigate, retain a fact, start a process draft.
- Hubs surface departmental lenses (People, Finance, Procurement, IT).
- Three view-as personas (CEO, Head of People, Head of IT) re-sign in
under the persona's email so the operator UI reflects the seat.
## Run, test, build
```bash
pnpm install
# dev (with backend proxy for live mode)
pnpm dev # → http://127.0.0.1:5173
# tests
pnpm test # vitest
# build
pnpm build # tsc + vite, single chunk ~234 KB gz
```
## Deploy
Deployment is tracked in `FM06/flowmaster-ops`, overlay
`manifests/overlays/demo/`:
- `mc-deployment.yaml` — replicated nginx Deployment
- `mc-service.yaml` — ClusterIP service on port 80
- `mc-ingress.yaml` — Traefik ingress at `canvas.flow-master.ai` with
cert-manager DNS-01 cert
nginx in the image reverse-proxies `/api/*` to `https://demo.flow-master.ai`
so the SPA is same-origin (no CORS).
```bash
pnpm build
docker buildx build --platform linux/amd64 \
-f Dockerfile.runtime \
-t gitea.flow-master.ai/shad/mission-control-demo:sha-<git> \
--load .
docker push gitea.flow-master.ai/shad/mission-control-demo:sha-<git>
# Then bump the image pin in manifests/overlays/demo/mc-deployment.yaml.
```