weft-client-shim 0.2.2

Trait surface for client extensions to the Heddle CLI. OSS default is a noop impl; closed builds replace it via [patch.crates-io].
Documentation

Trait surface separating the OSS Heddle CLI from the closed heddle-client implementation.

OSS builds use [NoopWeftExtensions], which returns a friendly "hosted features not enabled" error on every method. Closed builds ship a real implementation in the heddle-client crate and inject it via Cargo features (today) or [patch.crates-io] (post-split).

Why a separate crate (and not just a trait in cli)? When the repos physically split, the OSS heddle-cli crate ships on crates.io. The closed heddle-client crate published in the private workspace depends on this shim to satisfy cli's trait bound without cli ever knowing about closed-source code. Same trait surface, two impls, no circular deps.

Trait methods are intentionally minimal — only the truly hosted-only commands (auth, support, presence) flow through here. Hybrid commands like push/pull/fetch/clone stay in cli because their git-overlay-without-hosted code paths must work in OSS-only builds too.