Project status

Source: docs/status.md
On this page

What MSO Cloud ships today, what is in beta and what is planned, one row per capability. Every row names the evidence it was graded against, and no grade is rounded up.

Last verified: 24 September 2026 · platform release 0.3

Status vocabulary#

Status Meaning
shipped In production and protected by a gate or test; proven against a live source or a live organization.
beta Usable and enabled per organization, with a limit named in the row; not yet proven against a live provider, or may change.
planned Decided or designed, not built. No date is promised.
closed Deliberately not offered, by policy rather than for lack of time. Used only on the autonomy ladder.

A row changes status only when its evidence changes. Evidence names a repository path, a gate (verify:data, verify:rls, audit:all) or a screen path.

Capabilities#

Data in

Capability Status Since Evidence Page
Marketplace seller API sync: TikTok Shop, Lazada (orders, creators, inventory, with a look-back window for restated days) shipped 2026-07 packages/connectors/tiktok-shop, packages/connectors/lazada Connect a marketplace
Marketplace seller API sync: Shopee. Not yet verified against a live seller account. beta 2026-06 packages/connectors/shopee Connect a marketplace
Seller export upload: Shopee and Lazada CSV/XLSX, mapped through versioned templates shipped by 2026-06 packages/connectors/csv-shopee, packages/connectors/csv-lazada; screen /connectors/uploads Upload CSV or Excel files
Marketing connectors: Google Ads, Meta Ads, GA4, Google Search Console, Brevo, LinkedIn Page shipped 2026-07-24 packages/connectors/{google-ads,meta-ads,ga4,google-search-console,brevo,linkedin-page} Connect marketing sources
Marketing connectors: TikTok Ads, Shopee Ads API. Not yet verified against a live ad account; Shopee Ads also accepts file upload. beta 2026-07 packages/connectors/tiktok-ads, packages/connectors/shopee-ads Connect marketing sources
TikTok affiliate API, warehouse connector, Bitrix24, Facebook Page Insights planned — catalogue card without a sync driver, packages/plugin-host/src/registry.ts Connectors and data planes
Google Sheets: one sheet, several tabs, several datasets, same mapping contract as file upload shipped 2026-07-21 packages/connectors/google-sheets Connect Google Sheets
Organization datasets from Sheets or XLSX (HR, finance, operations), schema declared by the organization shipped 2026-09-03 apps/web/src/server/datasets/org-dataset-resolver.ts Organization datasets and measures
HR system dataset connector (Odoo HRM). Fixture-tested only; enabled per organization by a platform administrator. beta 2026-09-10 packages/connectors/odoo Connectors and data planes
Third-party market estimates: labelled as estimates, periodic refresh, kept out of first-party KPIs and decision measurement shipped 2026-06-25 packages/plugin-host/src/verticals.ts (estimate plane) Market Intelligence
Social listening feeds (mentions, trends) delivered through a shared spreadsheet shipped 2026-07-21 packages/connectors/google-sheets Social Intelligence
Content Intelligence corpus: file upload plus mapping; no API connector in this family shipped 2026-07-31 screen /content-intelligence/taxonomy Content Intelligence and the taxonomy studio
Data validation: upload the organization's own file and reconcile it per order and per day shipped 2026-06-05 screen /validation Data validation

Analysis

Capability Status Since Evidence Page
Report pages as configuration, each declaring what may be edited shipped 2026-07-25 surface.ts beside each dashboard route under apps/web/src/app/(dashboard) Dashboards
Layout editor: drag, resize, add and remove cards, drafts, phone editing shipped 2026-07-21 apps/web/src/app/(dashboard)/_components/layout-editor-control.tsx, apps/web/e2e/layout-editor-perf.spec.ts Layout Editor and Layout Studio
Dashboard packs installed as data; pack cards survive pack upgrades shipped 2026-09-03 audit:all (dashboard template and dataset pack registry checks) Organization datasets and measures
Page filter bar; a card that cannot honour a filter says so on the card shipped 2026-09-03 audit:all (filter bar scope check) Dashboards
Explore with period comparison (previous period, year ago, custom) shipped by 2026-07 screen /explore Explore and period comparison
Data assistant: answers only for data planes the organization has; a number not traceable to a supplied fact is dropped shipped by 2026-06 apps/web/src/app/api/chat, packages/agent-eval Data assistant
Organization-owned model connections with ordered failover; "not ready" instead of an error when a key fails shipped 2026-06-23 packages/ai Configure AI and the data assistant
AI card: an AI summary on any dashboard, with configurable prompt and data scope shipped 2026-08-31 packages/ai Dashboards
Exports: CSV, Excel and PDF per report; whole-dashboard and whole-deck PDF shipped by 2026-07; PDF of whole pages 2026-08-22 packages/exports Exports: CSV, Excel, PDF
Commerce operating screens: orders, products, inventory, creators, creator directory, data pipeline shipped 2026-04 screens /orders, /products, /inventory, /creators, /pipeline; verify:data Commerce operations
eCom reports: commerce performance, payout reconciliation, LIVE commerce, cohort/RFM/KOL; each needs a marketplace connector, LIVE commerce is opt-in per organization shipped 2026-04 screens /reports/commerce-performance, /reports/settlement, /reports/live-commerce, /reports/cohort-rfm-kol; verify:data eCom reports
Marketplace overview reports, one page per marketplace; each reads that marketplace's connection (Shopee API sync is beta, see above) shipped 2026-05 screens /reports/marketplace/* Marketplace overviews
Role workspaces and the retail report pack, opt-in per organization shipped by 2026-07 screens /workspaces/* Role workspaces
KPI and budget plans bound to a measuring source; actuals appear once an owner confirms the source shipped 2026-07-31 packages/metrics Marketing performance
Finance pack (P&L measures). Measures compute; variance-table and waterfall card kinds are not built. beta 2026-09-12 apps/web/src/server/dataset-packs/finance-pnl.json Organization datasets and measures
Marketing performance: ads, campaigns, web, search, email, social, leads, KPI and budget; measured on leads for lead-generation organizations shipped 2026-07-24 screens /marketing-performance/* Marketing performance
Market Intelligence views: category, competitor, creator, product, livestream, shown with an estimate badge; opt-in shipped 2026-06-25 screens /market-intelligence/* Market Intelligence
Social listening, trends and overview pages shipped 2026-07-21 screens /social-intelligence/* Social Intelligence
Content Intelligence decks: presentation as data, insight editor, share links; AI insight drafts need human approval before publishing shipped 2026-07-31 screens /content-intelligence, /content-intelligence/layout-studio Content Intelligence and the taxonomy studio
Taxonomy studio: rename groups, aliases, unclassified tracking shipped 2026-07-31 screen /content-intelligence/taxonomy Content Intelligence and the taxonomy studio
Data assistant inside Content Intelligence workspaces shipped 2026-09-23 apps/web/src/app/api/chat Data assistant

Decision engine

Capability Status Since Evidence Page
Declarative rules with a per-condition receipt, including why a playbook was not chosen; a missing signal never matches shipped 2026-07; "why not" 2026-09-04 packages/metrics/src/playbook-rules.ts The decision engine
Versioned signal registry and an append-only ledger of fired signals, with the reason a signal was withheld shipped 2026-07; ledger 2026-09-19 packages/metrics/src/signal-registry.ts; verify:rls (append-only ledger check) From signal to decision
Morning brief over ranked signals for every activated domain that declares a reader (not Market Intelligence, finance or Content Intelligence); platform-infrastructure alerts never reach it shipped 2026-09-12 screen /briefing Signals and the morning brief
Signal feedback weight: repeated dismissals may only demote a signal. The brief has no dismiss or mark-as-acted button yet. beta 2026-09-19 packages/metrics/src/signal-stats.ts Read and act on the morning brief
Decision lifecycle (proposed, approved, activated, measured) with owner approval and an audit record; abstains while the conversion feed has no data shipped 2026-07-25 apps/web/src/server/routers/offtake.ts Decision engine screens
Definable conversion: the organization chooses the outcome a decision is measured on (orders, GMV, AOV, leads, deals, deal value) shipped 2026-07-31 packages/metrics/src/conversion.ts Measurement and honest numbers
Action queue: proposals wait for approval; an approved action becomes manual steps for a person shipped 2026-04 screen /action-queue; packages/actions/src/index.ts Decision engine screens
Weekly scan that turns marketing findings into measurable proposals, for organizations that enabled the loop and declared a conversion shipped 2026-07-31; scheduled 2026-08-28 packages/metrics Decision engine screens
Weekly action memo, opt-in per domain shipped 2026-05 screen /decisions/weekly-memo Decision engine screens
Playbook library filtered by organization type, including the industrial marketing catalogue shipped 2026-08-28; type filter 2026-09-04 packages/metrics/src/playbook-scope.ts Marketing playbooks
Loop console for the platform administrator: what the engine did, rule authoring shipped 2026-09-21 screen /admin/orgs/<slug>/mso-playbooks Platform administration
Episodic memory and track-record ranking; below a minimum of confirmed cases the ranking is unchanged and rates are hidden. Moves no evidence grade. shipped 2026-08-28 packages/metrics/src/decision-memory.ts, packages/metrics/src/playbook-stats-rank.ts Decision engine screens
Impact estimate: observational before-and-after readouts; pre-registration, placebo checks and standard errors exist; not randomized beta 2026-08-30 packages/metrics/src/experiments.ts, packages/metrics/src/experiments-registry.ts Measurement and honest numbers
Learned policy with off-policy evaluation. Evaluation exists and refuses on current logs, because selection is still deterministic. beta 2026-08-30 packages/metrics/src/policy.ts, packages/metrics/src/ope.ts The decision engine
Replay of a decision from its frozen inputs, with a verdict of identical, divergent or unreplayable shipped 2026-08-30 packages/metrics/src/decision-replay.ts; decision-replay build gate in verify:rls Measurement and honest numbers
Drift and calibration monitoring shipped by 2026-08 packages/metrics/src/drift.ts Measurement and honest numbers
Champion and challenger: named policy versions, a promotion gate, human-approved promotion and rollback; drift demotes a challenger, never the champion. No promotion has run yet. beta 2026-08-30 packages/metrics/src/policy-versions.ts The decision engine
Outbound activation of audiences to external destinations. Every run is a dry run. beta by 2026-07 screen /activation Audiences, activation and service cases
Audience segments and service cases. Opt-in per organization and off by default; not yet run by a live organization. beta 2026-05 screens /audiences, /service-cases; packages/plugin-host/src/registry.ts Audiences, activation and service cases
Causal compute service (media-mix, uplift, conformal intervals) planned — not built The decision engine
Agent memory with scope, validity and supersession; one trace from agent step to decision planned — not built The decision engine

Administration

Capability Status Since Evidence Page
Members and roles: owner, admin, editor, viewer, plus platform super admin; capabilities enforced server-side shipped 2026-04 apps/web/src/lib/rbac.ts Roles and capabilities matrix
Brands: brand-scoped connections and data, brand-level access inside an organization shipped 2026-08-06 verify:rls (brand isolation check) Multi-brand workspaces
Envelope-encrypted connector credentials, never displayed after save shipped by 2026-07 packages/crypto Tenancy and security
Identity masking: term registry, per-role scope, AI-drafted candidates shipped 2026-09-19 packages/mask; screen /settings/masking Identity masking
Notifications: in-app centre, preferences and digest shipped 2026-09-07; digest 2026-09-23 packages/notify Notifications
Notification channels: web push, email, Telegram, Zalo. Need platform configuration, and every channel except email needs the user to link an account; the default is in-app only. beta 2026-09-07 packages/notify-channels, packages/notify-zalo Notifications
Password, magic link, passkeys, two-factor codes, session management, API tokens shipped by 2026-06 apps/web/src/auth; screens /settings/security, /settings/sessions, /settings/api-tokens Organization settings
LDAP / Active Directory login per organization, enabled by a platform administrator shipped 2026-08-22 apps/web/src/auth/ldap.ts; screen /settings/ldap Set up LDAP/AD login
OpenID Connect login per organization. Not yet proven against a live identity provider. beta 2026-09-03 apps/web/src/auth/oidc.ts; screen /settings/oidc Tenancy and security
White-label: branded sign-in and PDF footer brand under one entitlement per organization; a custom domain is verified separately and shows the platform sign-in without the entitlement. Custom domain not yet proven live. beta 2026-09-21 screen /settings/login-page Enable white-label
Organization archive and self-service restore, with a mandatory safety snapshot; secrets are excluded from archives shipped 2026-07-15; self-service 2026-08-05 screen /settings/backup Back up and restore an organization
Scheduled organization backups to a destination the organization chooses. No scheduled destination has run in production yet. beta 2026-08-05 screen /settings/backup Back up and restore an organization
MCP server: the assistant's tools from MCP clients; token minted per organization by a platform administrator; third-party market tools excluded shipped by 2026-05 apps/mcp-server, apps/web/src/app/api/mcp MCP server

Platform

Capability Status Since Evidence Page
Tenant isolation enforced in the database (row-level security) for the web app and background workers shipped 2026-07-15 verify:rls Tenancy and security
Metric reconciliation against externally held ground truth: first-party marketplace, marketing, organization-dataset and discussion-corpus metrics; third-party estimates are out of scope by design shipped by 2026-06 verify:data Measurement and honest numbers
Static audits and reconciliation gates on every push shipped by 2026-06 audit:all, verify How the platform is engineered
A subdomain per organization; the host decides the organization before any data is read shipped 2026-07-21 apps/web/src/server/request-org.ts Tenancy and security
Organization provisioning from blueprints, with a dry-run plan; features follow the organization type, no per-customer code shipped 2026-09-19 apps/web/src/server/org-blueprints/plan.ts; audit:all (blueprint validity check) Provision a new organization
Features and connectors as plugins with dependency gates shipped by 2026-07 packages/plugin-host/src/registry.ts Organization types
Platform console with the organization in the URL and searchable directories shipped 2026-09-21 screens /admin/orgs/<slug>/* Platform administration

Evidence ladder (L0–L5)#

How far a number the decision engine produces can be trusted. The ladder is independent of the autonomy ladder: a higher evidence grade grants no autonomy.

Level Capability Status Graded Evidence Still needed to move up
L0 Reproducible playbook and decision kernel shipped 2026-09-18 packages/metrics/src/offtake.test.ts against a frozen simulation log —
L1 Declarative rules with a per-condition receipt shipped 2026-09-18 packages/metrics/src/playbook-rules.ts —
L2 Signal schema, version and provenance, snapshotted per decision; fired-signal ledger shipped 2026-09-24 packages/metrics/src/signal-registry.ts —
L3 Intervention impact with a valid control. Today: observational before-and-after readouts that disclose they are confounded and a lower bound. beta 2026-09-24 packages/metrics/src/experiments.ts A randomized or reviewed quasi-experimental design with assignment, exposure, window and estimand stored before the readout
L4 Learned policy with off-policy evaluation. Each decision logs its candidates, chosen action, probability, logging policy and a reward window declared in advance. Estimators, intervals and effective-sample-size checks exist and refuse on today's deterministic logs. beta 2026-09-24 packages/metrics/src/policy.ts, packages/metrics/src/ope.ts Randomized selection that records its own probability, so evaluation can produce a number
L5 Replay, drift and calibration, champion and challenger. Replay is a build gate; drift and calibration are monitored; promotion with approval and rollback exists in code and has not run. beta; replay shipped, promotion has not run 2026-09-24 packages/metrics/src/decision-replay.ts, packages/metrics/src/policy-versions.ts A pinned data watermark so replay covers inputs as well as the kernel; a deletion audit for memory

Autonomy ladder (A0–A4)#

How much the platform may act on its own. The platform recommends and records; a person decides and acts.

Level Capability Status Graded Evidence
A0 Explain: read governed facts and explain a receipt shipped 2026-09-24 Data assistant
A1 Propose: assemble evidence into a typed draft proposal beta 2026-09-24 the marketing loop's proposal path and weekly scan, packages/metrics
A2 Prepare: a bounded plan plus an approval request planned 2026-09-24 no module
A3 Execute approved: dispatch an approved action to a marketplace or ad account closed 2026-09-24 packages/actions/src/index.ts approves and records; connectors hand the action back as manual steps
A4 Bounded auto-execute inside policy limits closed 2026-09-24 closed by policy

MSO adoption ladder#

The customer's frame, not the platform's build status: how mature an organization's own marketing operation is. Level 3 supports human judgement and does not replace it.

Level Operating model Character
PRE-MSO Execution systems Disconnected, manual, fragmented
1A Adaptive execution A closed loop begins, still within each channel
1B Unified intelligence Connected across channels, contextualized
2 Memory systems Compounding intelligence; the organization stops restarting
3 Adaptive intelligence Reasoning support, human plus system decisioning

Not answerable today#

  • Which signal produced which decision. The decision record carries the link and the code that fills it landed on 2026-09-19; until recorded decisions carry it, no query answers the question.
  • The causal lift of an intervention. Readouts are observational; see L3.
  • The expected value of a learned policy before it runs. Selection is deterministic, so off-policy evaluation refuses.
  • Whether a replayed decision would read the same input values today. Replay pins the kernel, not the data window.