Skip to content

Reference: Multi-Platform Build Flows

This page is the Diataxis reference entry for the current multi-platform build matrix that underpins the Git LFS migration.

Canonical Source

What This Reference Covers

  • source web build and explicit full-graph build behavior
  • desktop Tauri dev/bundle flow and sidecar ownership
  • Android Capacitor packaging flow
  • Android Tauri native runtime/build flow
  • GitHub Release, npm publish, and docs-site delivery pipelines

Current High-Signal Conclusions

  • The default source build contract is runtime-first.
  • Explicit full-mode remains supported, and Tauri full bundles now preserve that mode through beforeBuildCommand.
  • Desktop bundles still treat sidecar binaries as a separate bootstrap concern.
  • Mobile packaging and mobile runtime capability must be evaluated separately.
  • Docs and npm publish pipelines are already compatible with the current no-new-LFS direction.
  • Release smoke on 2026-04-08 already proved the workflow can cold-create and seed the project-controlled godot-mirror-v4.3-stable tag before desktop bundle jobs run.
  • The current release workflow now pins the mirrored Windows, Linux, and macOS Godot archives with fixed SHA256 values before use.
  • The same release workflow now exposes allow_godot_upstream_fallback so mirror-only smoke runs can disable upstream fallback without changing the default release path.
  • A non-blocking release-governance risk remains: GitHub Actions currently warns that actions/upload-artifact@v4 and softprops/action-gh-release@v2 are still Node 20-targeted.

Use This Reference When

  • deciding whether a migration item is safe across desktop, mobile, publish, and release surfaces
  • checking whether a build command is runtime-first or explicit full-mode
  • verifying whether a platform still depends on repo-head LFS assets

Mobile Slim Contract (2026-08-17)

mobile-slim is now a real packaging profile, not only an export label.

  • npm run mobile:prepare:slim builds the runtime-first frontend, stages only dist/mobile-slim/frontend, removes generated graph payloads, desktop-only Mermaid/GPU assets, SVG files, model files, and binary sidecars, then emits dist/mobile-slim/mobile-slim-manifest.json.
  • The same staged directory is consumed by Capacitor through NOTE_CONNECTION_MOBILE_WEB_DIR and by Tauri Android through src-tauri/tauri.android.conf.json. Tauri Android no longer builds a Node sidecar on the slim path.
  • The mobile runtime loads the local graph_data.json through the storage boundary and exposes bounded exact lookup, neighbor inspection, and directed shortest-path operations through queryKnowledgeBaseExact() and findKnowledgePath(). The analyzer retains projected node metadata, not document bodies.
  • mobile-slim declares local ingest and exact query as available, remote inference as optional, SVG materialization as unsupported, a 25 MiB estimated compressed asset gate, and a 256 MiB low-memory RSS gate.
  • The static verifier reports estimated ZIP-deflate bytes and fails on forbidden artifacts. RSS is not-measured until a device evidence JSON is supplied; a passing static gate is not a device acceptance claim.
  • Godot Pathmode is an extended opt-in (NOTE_CONNECTION_ANDROID_INCLUDE_GODOT_PATHMODE=1). The default Android runner disables generated Godot bridge files, dependency declarations, and path_mode assets so stale generated scaffolds cannot silently inflate a slim build.

This slice intentionally does not claim mobile-local LLM parity or SQLite persistence. The current mobile projection is an exact in-memory index over a bounded local graph; SQLite-backed persistence and full agent conversation parity remain subsequent phases with separate contracts.