TaskFlow is a Manifesto showcase built as a real product UI, not a toy domain sample. MEL defines the domain, a client-owned Manifesto runtime owns state, Lineage makes state transitions visible, and both the in-app assistant and Chrome WebMCP consume the same runtime contract.
- Manifesto as the application state engine of a live UI
- MEL on the real app path through
.melimports and webpack codegen - Lineage as visible product history
- manual UI actions and assistant actions converging on one runtime
- browser-local WebMCP over the same runtime-backed capability surface
- local persistence for lineage state and assistant chat
The browser activates the Manifesto + Lineage runtime and exposes a projected UI contract through a controller. React renders that contract, the in-app assistant uses a shared tool gateway against the same runtime, and the WebMCP path publishes that same gateway to a browser host. The server only streams model output for the in-app assistant; it does not own task state.
-
Install dependencies:
pnpm install
-
Configure the assistant:
cp .env.local.example .env.local
Required env vars:
OPENAI_API_KEYOPENAI_MODEL
-
Start the app:
pnpm dev
-
Validation:
pnpm lint pnpm typecheck pnpm test pnpm build
- The client runtime is the source of truth.
- The workspace is local to one browser profile.
- Lineage and assistant chat are stored in
localStorage. - Schema hash mismatches reset stored lineage state.
- WebMCP is optional and only activates when the browser exposes
navigator.modelContext. delete_taskrequires a second-step confirmation in WebMCP.