cargo-rail v0.18.0
0.18.0 - 2026-07-19
-
Capture complete, stable source state for deterministic planning from Git worktrees or declared Cargo filesystem roots; reject concurrent Git, byte, directory, or metadata drift; keep historical ranges object-only; support nested and no-Git Cargo workspaces; and exclude resolved Cargo and cargo-rail generated state.
-
Preserve every Cargo package as an exact
PackageId-keyed graph node and build dependency edges from Cargo's resolved graph, retaining distinct versions, renamed dependencies, dependency kinds, and target conditions while keeping inactive declarations out of resolved topology and confining package-name lookup to ambiguity-aware workspace selection. -
Add lazy exact Cargo resolution views keyed by package, feature, target, toolchain, and sanitized Cargo configuration; replace filename heuristics with deterministic PackageId ownership; and introduce opt-in immutable workspace snapshots over exact source, manifests, lockfile, configuration, toolchain, and target inputs without slowing native/default commands.
-
Replace hard-coded run surfaces with a bounded, snapshot-bound action graph. Built-in and repository actions now share
one shell-free expansion and stable topological order across local execution, JSON/GitHub CI plans, and version-2
decision receipts. Repository generators declare exclusive outputs plus separate check/regenerate commands; paths,
dependencies, tokens, environment capabilities, cycles, and portable ownership collisions fail closed before
execution. Ownership validation remains fast at the configured action/path limits, and command startup retains safe
stack headroom on Windows as the action CLI grows. -
Make rail.toml sparse, add config explain and semantic migrations, and replace invalid option matrices with typed policies.
BREAKING CHANGES
- run: [breaking] replace surfaces with a bounded action graph (71a5972)
- config: [breaking] make repository policy sparse (577f55b)
Features
- workspace: bind commands to canonical snapshots (7b70568)
- workspace: establish exact resolution snapshots (fec7444)
- workspace: stabilize source and package identity (5399da4)
- planner: capture complete worktree source state (9de889f)