Skip to content

docs(features): document feature contracts per playbook §988 (Phase 8b, refs #195)#293

Merged
githubrobbi merged 1 commit into
mainfrom
docs/feature-rustdoc-phase-8b
May 19, 2026
Merged

docs(features): document feature contracts per playbook §988 (Phase 8b, refs #195)#293
githubrobbi merged 1 commit into
mainfrom
docs/feature-rustdoc-phase-8b

Conversation

@githubrobbi
Copy link
Copy Markdown
Collaborator

Summary

Phase 8b — feature documentation pass. Adds a # Features rustdoc section to each of the 3 feature-using crates and rewrites the inline [features] block comments in each Cargo.toml to carry the playbook §988 contract (what it enables / what deps it adds / API shape impact / semver claim).

No behavior change. Pure documentation.

Per-crate summary

Crate Feature Default? Activates Adds deps
uffs-client async yes async connect::UffsClient (tokio reactor) used by daemon + MCP dep:tokio w/ net
uffs-mcp streamable-http yes pub mod http + uffs-mcp-http binary rmcp/transport-streamable-http-server, dep:axum, dep:tower-service
uffs-cli mcp-http-probe no active probing of MCP HTTP /status inside uffs status none (uses libstd std::net::TcpStream; default-off to keep ws2_32.dll out of the thin CLI)

Verifications

  • cargo check --workspace --all-features clean.
  • cargo clippy --workspace --all-targets --all-features clean (one initial doc_lazy_continuation warning fixed by rephrasing + tower-serviceand tower-service so it no longer reads as a Markdown list marker).
  • cargo doc --no-deps --all-features for the three crates — each generates an id=\"features\" anchor on its root page.
  • scripts/dev/feature_dep_audit.sh (Phase 8a baseline tool) — the Has \# Features` rustdoc?column now reads **3 / 3** (was 0 / 3 at SHA4c6ffcf`).
  • ✅ Pre-push gate green (91 s, all 22 checks passed).

Phase-8 rules adherence

    1. No suppression hacks — no #[allow] / #[expect] added; the one clippy warning was fixed by rephrasing the doc, not silenced.
    1. Surgical, correct fixes — documentation only; zero source-code or Cargo dep changes (the [features] block contents are byte-identical, only comments changed).
    1. Preserve behavior & contracts — no API, dep graph, or feature-activation changes; semver is unchanged.
    1. Improve tests, don't dodge them — N/A (doc-only change); existing test surface compiles + passes.
    1. Document & commit well — single atomic commit; full §988 contract captured in both rustdoc and Cargo.toml; cross-link to dependency_policy.md (8c, upcoming).

Refs #195.

…b, refs #195)

Adds a `# Features` rustdoc section to each of the 3 feature-using
crates (uffs-cli, uffs-client, uffs-mcp) and rewrites the inline
`[features]` block comments in each Cargo.toml to carry the playbook
§988 contract:

  * What it enables (which code path / module / subcommand).
  * What deps it adds (`dep:` gating).
  * API shape impact (additive vs subtractive).
  * Semver claim (default-on means breaking-on-disable).

Per-crate summary:

  * uffs-client::async (default-on, additive)
    Gates `connect::UffsClient` (tokio reactor) used by uffs-daemon
    + uffs-mcp.  Adds `dep:tokio` with the `net` feature.  Sync
    surfaces (`UffsClientSync`, `protocol`, `schema`) compile
    identically with the feature off.  uffs-cli overrides with
    `default-features = false` to drop tokio + ws2_32.dll from
    the sync-CLI binary.

  * uffs-mcp::streamable-http (default-on, additive)
    Gates `pub mod http` + the `uffs-mcp-http` binary
    (`required-features = ["streamable-http"]`).  Adds
    `rmcp/transport-streamable-http-server`, `dep:axum`,
    `dep:tower-service`.  All stdio surfaces compile identically
    with the feature off.

  * uffs-cli::mcp-http-probe (default-off, additive)
    Gates the `uffs status` probe of the MCP HTTP gateway's
    `/status` endpoint.  Adds no crate-graph deps (uses libstd
    `std::net::TcpStream`) but on Windows that drags in
    ws2_32.dll, adding ~50 ms to cold-start.  Default-off because
    the CLI is the thin / fast-path binary.

Verifications:

  * `cargo check --workspace --all-features` — clean.
  * `cargo clippy --workspace --all-targets --all-features` —
    clean (one initial `doc_lazy_continuation` warning resolved
    by rephrasing `+ tower-service` to `and tower-service`).
  * `cargo doc --no-deps --all-features` for the three crates —
    generates an `id="features"` anchor on each root page.
  * `scripts/dev/feature_dep_audit.sh` (Phase 8a baseline tool) —
    `Has \`# Features\` rustdoc?` column now reads **3 / 3**
    (was 0 / 3 at SHA 4c6ffcf).

Refs #195.
@githubrobbi githubrobbi merged commit e96a776 into main May 19, 2026
21 checks passed
@githubrobbi githubrobbi deleted the docs/feature-rustdoc-phase-8b branch May 19, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant