Mova0.6 pre-release⌕
☰
home / docs / tools / External module overlays

External module overlays

Mova's animals and the Octopus, the large language model that develops Mova, are described in the sea animals of Mova.

mova-module-overlay composes an approved public source tree with explicitly bound replacement/addition files held in a separate customization directory. It writes a fresh source tree and a deterministic receipt. It never edits upstream, executes a build, launches a worker, or evaluates shell hooks.

Build this standalone tool with at most two jobs:

cargo build --manifest-path tools/module-overlay/Cargo.toml --jobs 2

Its three commands are:

mova-module-overlay snapshot PUBLIC_SOURCE REVISION_LABEL NEW_BASE_JSON
mova-module-overlay check PUBLIC_SOURCE CUSTOM_ROOT MANIFEST_REL
mova-module-overlay stage PUBLIC_SOURCE CUSTOM_ROOT MANIFEST_REL NEW_TREE

check prints a structured base-drift report and exits 3 for an incompatible base. Invalid manifests/unsafe inputs fail separately. stage requires an unchanged bound base and a nonexistent output. Neither command runs Cargo. The receipt provides explicit cargo check and cargo build argv with two jobs for each declared Cargo manifest; run them deliberately from the composed root.

See the architecture and upgrade workflow. The checked-in example contains a tiny public upstream, external customizations, exact hashes, an abstract Whale planning crate and an illustrative Octopus task plan. The tiny upstream is not a Mova distribution.

To exercise it, choose a fresh output outside the example input directories:

mova-module-overlay check tools/module-overlay/examples/upstream tools/module-overlay/examples/custom manifest.json
mova-module-overlay stage tools/module-overlay/examples/upstream tools/module-overlay/examples/custom manifest.json NEW_TREE

Then, from NEW_TREE, run the recipe explicitly:

cargo check --manifest-path tools/example-whale/Cargo.toml --jobs 2
cargo test --manifest-path tools/example-whale/Cargo.toml --jobs 2

The Whale example plans four review steps. It does not fetch papers, generate articles, check plagiarism, or start a service. Its Rust source is stored as a text customization artifact and becomes src/lib.rs only in the composed tree.

registry-entries.json is a standalone component registry for the three Rust owners and their composed parent. Its adjacent groupants and exact syntax projections are source-bound. A main-repository integrator must attach the parent node to the central ownership tree and update that tree's transitive bindings; combining disconnected registry fragments is intentionally rejected. Standalone component validation does not claim whole-Mova registration or verification.

This page in Markdown → https://md.mova.elamur.ai/free/en/docs/tools/module-overlay/