# Native packaging `build-macos-app.sh` builds the release executable with the normal Cargo lockfile and creates `target/release/Tessera.app`. It uses the local Rust toolchain; no mirror or Docker configuration is installed, and no automated tests run. Additional arguments are forwarded to Cargo, such as `--offline` to reuse an already populated cache or temporary `--config` options for a dependency mirror when official crates.io is unavailable. Defaults remain the official source. The local bundle has identifier `com.entroia.tessera` and can be opened from Finder. It is a development app, without a distribution signature or notarization. The CI workflow only checks this script's shell syntax on Linux; native bundle construction and window presentation are verified on macOS. Return to the [project guide](../README.md). ## Remote verification [verify-ci.sh](verify-ci.sh) runs only on the Linux ces-control host. It builds the source-independent [toolchain image](../Dockerfile.ci), mounts the checkout read-only and retains Cargo downloads/build output in project-specific Docker volumes. CI_CACHE_SCOPE selects main/manual or a PR cache namespace. It acquires a host lock and removes its own container on interruption; cached volumes survive. See [workflow details](../.gitea/workflows/README.md) for invalidation and triggers.