v0.31.2 — aprender-mcp publish fix (v0.31.1 yank re-publish)
Summary
Re-publish of v0.31.1 with the aprender-mcp `cargo install` fix.
v0.31.1 was yanked because `cargo install aprender@0.31.1` panicked at build time — aprender-mcp's build.rs read `../../contracts/apr-mcp-tool-schemas-v1.yaml`, which lives in the monorepo tree but not in the published tarball.
What's Changed
aprender-mcp publish fix (#910)
- Bundle `contracts/apr-mcp-tool-schemas-v1.yaml` inside the crate via `Cargo.toml` `include = ["contracts/*.yaml"]`.
- build.rs now reads `CARGO_MANIFEST_DIR/contracts/` — no `..` escape.
- Drift-guard test `contract_copy_matches_workspace_root` asserts in-crate and workspace-root copies stay byte-identical.
Poka-Yoke prevention
- New `scripts/check_build_rs_paths.sh` — static check that flags any `build.rs` joining `".."` with `panic!`/`unwrap_or_else(…panic)` unless it has an `.exists()` guard or `ALLOW_ESCAPE` annotation.
- Wired into `make tier3` (pre-push) and `.github/workflows/ci.yml` `workspace-test` job.
Version bump (#911)
- 71 `Cargo.toml` files + `Cargo.lock` bumped 0.31.1 → 0.31.2.
Install
```sh
cargo install aprender --version 0.31.2
apr --version
```
Previous versions
- v0.31.1 — YANKED from crates.io (build.rs path escape broke `cargo install`).
- v0.31.0 — current max non-yanked before this release.