Skip to content

v0.4.0 — component is now app

Choose a tag to compare

@2nd1st 2nd1st released this 29 Jul 10:11
· 12 commits to main since this release

This release renames the core noun. What the engine builds is called an app, everywhere. It used to be called a component — a word borrowed from front-end frameworks, where it means a piece of a page. What this engine builds is not a piece of anything: it is a thing a person opens, keeps, and comes back to.

What breaks

  • 12 tool names change. open_componentopen_app, save_componentsave_app, list_componentslist_apps, and so on for every tool that carried the word. Per-app tools follow: open_<name> is unchanged in shape.
  • Schema keys change. The component argument is now app; the components array in results is now apps.
  • The oma runtime surface changes. oma.state.component is now oma.state.app. If you wrote an app that reads it, update that read — nothing else in window.oma moved.

Your hosts will ask you to re-authorize the tools (they are new names, so previously granted permissions do not carry over), and the first request after upgrading pays a one-time prompt-cache miss.

🔴 The store upgrade is one-way

Opening your store with 0.4.0 migrates it, and an engine at 0.3.x will refuse to open it afterwards. There is no downgrade path. If you want one, copy your store file before upgrading — the location is printed by the installer, and OMA_DB overrides it.

What the migration does for you

  • Tables, history and event types move over in one transaction; the ledger keeps its old event names, because a ledger is a record of what happened, not of what things are called now.
  • If you already had an app named app, component or loader, it is renamed onto the first free name rather than left to collide, its files and history follow it, and the ledger records where it went and why. That case is why 0.3.2 could fail to start for some stores; it is now handled during the upgrade instead.
  • Re-opening a migrated store changes nothing further.

Also

The tool surface got smaller: 48,589 → 47,890 bytes. A shorter noun in twelve tool names and every schema key adds up, and that headroom is now available for capabilities the MCP Apps spec recommends declaring.

Compatibility

Requires Node 22+ (engines.node: ">=22"). Depends on @modelcontextprotocol/ext-apps ^1.7.4 and @modelcontextprotocol/sdk ^1.30.0; the committed lockfile resolves them to 1.7.4 and 1.30.0.

The open-mcp-apps package on the npm registry is not this project — that name is held by an unrelated package. Install from this repository.