Skip to content

T-P4LZ-reconcile-rust-toolchain-and-isolate-crates

Status: closed/done · Impact: high · Complexity: medium

Make pumice’s Rust crates compile under moon’s rust toolchain as an isolated cargo unit under apps/pumice, and resolve the Rust version divergence between pumice (pins 1.93.0 exact) and this workspace (tracks stable). This is the polyglot proof D-0012-monorepo-tooling wanted — the rust toolchain finally driving a real project.

.moon/toolchain.yml declares rust: stable but no project consumes it. Pumice’s crates use relative path deps and a git dep on rust-ontogen pinned by rev, and pumice’s mise.toml pins rust = 1.93.0 with a tauri-cli postinstall.

FactSourceImplication
Workspace tracks stable.moon/toolchain.ymlDivergence with pumice’s exact pin
Pumice pins 1.93.0 + tauri-cli installapps/pumice/mise.tomlMust relax or pin locally
rust-ontogen git dep by revapps/pumice/src-tauri/Cargo.tomlKept; needs network at build
No workspace Cargo.tomlrepo scanCrates stay an isolated unit in Phase 1

Build pumice’s crates as an isolated cargo unit (no workspace-wide Cargo.toml) under moon’s rust toolchain, choosing one Rust version story: relax pumice to stable, or pin apps/pumice locally via rust-toolchain.toml.

  1. Confirm the crates build standalone. Run cargo build /cargo clippy /cargo test for apps/pumice/src-tauri and the crates/*; confirm the rust-ontogen git dep resolves.
  2. Resolve the version. Prefer relaxing pumice to stable (aligns with the workspace); if pumice needs the exact toolchain, add apps/pumice/rust-toolchain.toml pinning 1.93.0 so moon’s rust toolchain and CI honor it locally without forcing the whole workspace.
  3. Wire the moon rust tasks. In apps/pumice/moon.yml, express rust-check /rust-test/rust-lint tasks (clippy -D warnings, cargo fmt --check) under the rust/system toolchain, mirroring pumice’s just recipes.
  4. Decide tauri-cli provisioning. Pumice installs tauri-cli via mise postinstall; decide whether moon/CI provisions it or the app keeps its mise step.
LocationKindChange
apps/pumice/rust-toolchain.tomlnew (conditional)Local pin if 1.93.0 is required
apps/pumice/mise.tomleditRelax/align the Rust version story
apps/pumice/moon.ymleditAdd rust check/test/lint tasks
  • AC-1: cargo build succeeds for pumice’s crates as an isolated unit under apps/pumice (the rust-ontogen git dep resolves).
  • AC-2: The Rust version divergence is resolved (relaxed to stable or pinned locally) and documented.
  • AC-3: moon run pumice:rust-check (clippy -D warnings) exits 0 under moon’s rust/system toolchain.
  • AC-4: moon builds both apps/dashboard (TS) and apps/pumice (Rust) — the polyglot proof.
  • Promoting shared crates to packages/rustT-X8CF (Phase 2).
  • Codegen pipeline modelingT-R9WT.
  • CI system-dep provisioningT-T2HB.
  • T-K3PN (hard): the vendored crates are what this builds.

T-K3PN


← Back to Tasks