# Source dependencies | Entry | Purpose | | --- | --- | | `README.md` | Source checkout, version selection, and update instructions | | [aster](aster/README.md) | `endorphin-aster-vm` source submodule; provides the Endor frontend, compiler, objects, and VM | ## Checkout The Aster submodule URL is `ssh://git@gitea.entroia.com:22222/Zayden-Jung/endorphin-aster-vm.git`. The repository owner in this URL is separate from the authentication identity. For this host, use only the dedicated `codex-bot` SSH identity. Set `GIT_SSH_COMMAND` to the environment's isolated SSH command before network operations: it must disable inherited SSH configuration (`-F /dev/null`), use `IdentitiesOnly=yes`, select the dedicated bot key with `-i`, and use port 22222. Do not fall back to the repository owner's credentials. The key path belongs in the checkout environment, not in tracked project files. From the Tessera repository root, after cloning or checking out another Tessera revision: ```bash git submodule update --init --recursive git submodule status ``` Initialization fetches Aster source at the commit recorded by Tessera. It does not build Aster or download Cargo packages. A normal clone without submodule initialization does not populate `vendor/aster`. ## Cargo integration Tessera's root `Cargo.toml` references the submodule's `crates/frontend`, `crates/compiler`, and `crates/core` directories. Aster's workspace supplies their inherited package settings and internal dependencies. Keep the submodule's workspace intact; do not copy its crates into Tessera's workspace. The Git submodule entry selects Aster's source revision. Tessera's root `Cargo.lock` records the combined application dependency graph; the lockfile inside Aster belongs to its standalone workspace. Updating Aster's lockfile does not replace Tessera's lockfile. In the designated build environment, building Tessera also builds the required Aster libraries. A separate Aster executable or service is unnecessary. Runtime validation runs locally using the commands in the [project guide](../README.md#validation); initializing the submodule alone does not validate compilation or Endor execution. ## Updating Aster Select an explicit, published Aster commit. From the Tessera root, with the bot SSH command configured for network operations: ```bash git -C vendor/aster fetch origin git -C vendor/aster checkout --detach ``` Review the Aster changes and reconcile Tessera's dependencies and lockfile as needed; build and validate the integration locally. Commit `vendor/aster` in Tessera along with any integration changes; that records the new Aster commit. Aster updates do not automatically advance Tessera's recorded revision. If Aster itself needs development, make and publish those commits in its own repository first. Configure the repository-local author as `Codex Bot` / `codex-bot@gitea.entroia.local` before committing on this host. Then select the published commit in Tessera. Do not point a shared Tessera revision at an unpublished Aster commit, and do not add Tessera-specific patches to Aster as part of this embedding work.