Public case study
Morn
Work & Organization Control Plane
A domain-neutral control plane for governed work, durable execution and safe evolution.
Status Public Rust workspace. The README reports v1.0.0-rc.1 with local GA complete; this site quotes that status and does not re-run the suite.
What it is
Morn is a local-first AI desktop system experiment: it lets AI collaborate, plan and execute work on the user’s own machine.
It is a Rust workspace with an axum backend, a React / Vite frontend, a Tauri v2 desktop shell and a developer command-line tool.
Why it matters
Once software can act on its own, the interesting questions stop being about what it can do and start being about which effects are reversible, who approved them, and what still holds after a node dies mid-run.
Morn puts those questions inside the write path rather than in a log viewer added afterwards.
Current public status
Public Rust workspace. The repository README reports v1.0.0-rc.1 with local GA complete.
This site cites that state and does not re-run the test suite, so it claims no pass rate.
What is publicly available
- The
mornrepository — Rust, Tauri v2 and React. - The full acceptance entry point,
scripts/run_all.ps1: formatting, linting, Rust tests, frontend checks, desktop build and UI / E2E smoke. - Two external blockers stated in the README: a real harness smoke run needs real credentials, and a real data pilot needs a lawful dataset. Both are recorded as blocked rather than passed.
Notes
The behavioural claims on this page come from the public repository, and every figure is quoted from the README rather than produced here.
Implementation status
A Rust workspace with four product surfaces, a Tauri desktop shell and a scripted full verification run.
What exists today, and how you would check it. Nothing below is a rendered mockup of something that does not exist.
- Public code
- Public repository
| Component | State | Note |
|---|---|---|
| Semantic kernel | Built | Identity, workspace, policy, approval, an append-only ledger and versioned contracts in `morn-kernel`. The README states that providers and plugins cannot redefine these. |
| Operational world | Built | Objects, relations, events, state snapshots, state diffs and outcomes behind a governed action gateway with four effect classes (E0–E3). |
| Work and organisation layer | Built | Work packages, acceptance specs, durable runtimes, role slots, members and actors, with representation contracts kept as data. |
| Evolution layer | Built | Candidate / branch / evaluation / promotion with production separation, a solution compiler, certification and rollback points — `morn-evolution`, `morn-foundry`, `morn-assurance`. |
| Capability fabric | Built | Replaceable providers, runtimes and connectors behind stable contracts. Connectors may only write through governed tokens. |
| Two-node durable runtime | Built | Claim, checkpoint, lease, failover and dedupe across two nodes in `morn-node` and `morn-process`. |
| Domain SDK and pack lifecycle | Built | Install, enable, disable, upgrade and uninstall for domain packs and plugins, with preserved history and path / name safety checks. |
| Product surfaces | Built | Workbench, Studio, Console and Hub on one axum backend with a React / Vite frontend, plus a Tauri v2 desktop shell and a developer CLI. |
| Scripted full verification | Built | `scripts/run_all.ps1` covers fmt, clippy, Rust tests, frontend typecheck / lint / tests / build, the desktop build and UI + E2E smokes. |
| Test suite | Built | The README reports 218+ Rust tests with none ignored, including chaos, conformance, migration / security and end-to-end packages. This site does not re-run them, so no pass rate is claimed. |
| License | Partial | The README states "MIT OR Apache-2.0"; GitHub detects no LICENSE file, so the license status is unresolved — treated as unclear rather than settled. |
| Real DeepSeek harness smoke | Planned | Blocker B-001 in the README: a real smoke test needs an official distribution or real credentials. The Morn-side provider contract is reported to pass against fixtures. No fake success is reported. |
| BioLab real-data pilot | Planned | Blocker G4-B-002: a lawful real dataset is required. Core pipeline contracts are reported to pass with fixture-controlled records. |
How to read these states 3
- Built Implemented in code. Says nothing about how good it is.
- Partial Present but incomplete, or opened only partially.
- Planned Identified for future work. Nothing to inspect yet.
Workspace layout
morn/
├── crates/ 22 crates
│ ├── morn-kernel identity, workspace, policy, approval, ledger
│ ├── morn-world objects, relations, events, state snapshots
│ ├── morn-work work packages, acceptance specs, runtimes
│ ├── morn-organization role slots, members
│ ├── morn-actor actors and representation contracts
│ ├── morn-evolution candidate / branch / evaluation / promotion
│ ├── morn-foundry solution compiler, managed work, pilots
│ ├── morn-assurance certification, rollback points
│ ├── morn-capability replaceable providers behind contracts
│ ├── morn-harness runtime harnesses
│ ├── morn-runtime execution runtimes
│ ├── morn-integration connectors writing through governed tokens
│ ├── morn-node claim / checkpoint / lease / failover
│ ├── morn-process process intelligence
│ ├── morn-domain-sdk public SDK for domain packs
│ ├── morn-package pack and plugin lifecycle
│ ├── morn-artifact immutable, versioned artifacts
│ ├── morn-store persistence
│ ├── morn-core-tests shared core test fixtures
│ ├── morn-opint operations intelligence
│ ├── morn-cli developer CLI
│ └── morn-app server binary (http://127.0.0.1:8090)
├── frontend/ React + Vite + TypeScript (four surfaces)
├── src-tauri/ Tauri v2 desktop shell
├── domain-packs/ biolab-reference (feature-gated)
├── scripts/ run_all.ps1, domain boundary guard
├── docs/ architecture, developer guide, deployment, security
├── reports/ Goal 1–5 and v1 GA reports
└── .github/workflows/ CI: fmt / clippy / backend / frontend / E2E / desktop Twenty-two crates, ordered kernel → world / work → capability → app. The domain pack is separate and feature-gated.
Source GitHub API — huangdi97/morn tree listing, read 2026-09-18.
Documented entry points
cargo build --workspace --all-features
cargo run -p morn-app --bin server --all-features # http://127.0.0.1:8090
cd frontend && npm install && npm run dev # http://127.0.0.1:5173
cargo run -p morn-cli -- doctor
cargo run -p morn-cli -- status
# full verification: fmt / clippy / tests / frontend / Tauri / UI + E2E
powershell -ExecutionPolicy Bypass -File scripts/run_all.ps1 The quickstart is the contract: backend, frontend, CLI and the full verification script.
Source morn README.md — quoted verbatim.
Stated invariants and blockers
- Core is domain-neutral: it starts and runs with zero domain packs.
- Runtimes and providers cannot commit canonical world state directly.
- Artifacts are immutable — edits create new versions with lineage.
- Evolution never mutates production; promotion creates a rollback point.
- E3 irreversible effects require approval; E2 requires a compensation plan.
- Blocker B-001: real DeepSeek harness smoke needs real credentials.
- Blocker G4-B-002: a real BioLab data pilot needs a lawful dataset.
Source morn README.md.