heddle-devtools-0.7.0 is not a library.
heddle-devtools
Workspace-internal tooling. Not published to crates.io.
Commands
heddle-devtools grpc-ts [--check]— regenerate (or audit) the TypeScript protobuf and Connect client package for the gRPC service. With--checkthe tool generates into a tempdir and diffs against the checked-in output; used as a CI gate. Without it, writes toclients/grpc/src/gen/and syncsclients/grpc/package.jsonto theheddle-grpccrate version.heddle-devtools audit-idempotency— fail if any state-changing RPC's request message is missingstring client_operation_id = 15.heddle-devtools audit-coverage <lcov> --gate <crate>=<pct> ...— parselcov.infoand fail if any gated crate falls below its per-crate line-coverage threshold.heddle-devtools check-no-silent-default-tree-load— repo-wide audit that no code path silently loads the default working tree (see the source for the full rule).
Single-source proto contract
There is exactly one copy of service.proto in this workspace:
crates/grpc/proto/heddle/v1/service.proto
Every consumer reads from that path:
crates/grpc/build.rs— tonic-prost codegen for the Rust server and client.crates/devtools/src/main.rs::run_grpc_ts— TypeScript protobuf and Connect client package (consumed by tapestry).crates/devtools/src/main.rs::run_audit_idempotency— proto-side idempotency lint.crates/cli/tests/idempotency_lint.rs— server-side dedup lint.
This file lives inside crates/grpc/ so the crate's published tarball
contains everything cargo build needs from a fresh download. Do not
re-introduce mirror copies under proto/ or elsewhere; the historical
mirrors drifted (missing RedactionTransfer before heddle#63 r1)
because nothing audited the duplication. The regression test
heddle-devtools::tests_proto_single_source::only_canonical_proto_exists
pins the contract.