docs: missing_docs sweep — 0 warnings + deny gate + publish-prep decisions (HY-02, HY-04, HY-11)
- document every public-API item across 18 files (openapi_spec model, HttpAuthScheme/HttpServiceConfig, HttpClientBuildError + SharedHttpClient accessors, RetryAfterMiddleware, GatewayDispatch, gateway error mapping, CallRequest/SchemaQuery/SubscribeStream, HttpAdapter + ALPNs + builders, decoy/healthz/state, WsSessions/WsPumps, from_openapi/from_jsonschema/from_mcp/from_wss/to_mcp, lib.rs module docs) - enforcement: #![deny(missing_docs)] at crate root — stronger than CI rustdocflags (every build incl. cfg(test), where rustdoc misses the test-support module docs) - HY-10 (opportunistic): all 8 docs.rs/alkhttp placeholder ADR links + the one relative ../docs link converted to plain text; the 10 pre-existing private/redundant intra-doc-link warnings fixed — RUSTDOCFLAGS="-D warnings" cargo doc is fully clean - HY-11 decision: docs/ + tasks/ excluded from the published package (contributor-facing design/process material; ADR references degrade to plain text uniformly). cargo publish --dry-run: 38 files, ~889 KiB, zero docs/ or tasks/ entries - HY-04 decision: keep + document — frame_channel0_chunk's unwrap is on serializing the acyclic EventEnvelope (unreachable failure); # Panics on it and the adjacent WsClient senders state the contract Verified: cargo test (299 + 5 TLS), --all-features (370 + suites), --no-default-features (299), clippy --all-targets -D warnings (default + all-features), fmt --check, cargo doc -D warnings clean, cargo publish --dry-run --allow-dirty clean. Tasks: review-001-missing-docs-sweep (final pending task; 42/42)
This commit is contained in:
@@ -50,6 +50,9 @@ const MCP_CAPABILITY_KEY: &str = "mcp";
|
||||
/// timed out. Payload is the array-of-content-blocks shape; retryable.
|
||||
const MCP_TRANSPORT_ERROR: &str = "MCP_TRANSPORT_ERROR";
|
||||
|
||||
/// The `from_mcp` adapter (mcp feature): imports a remote MCP server's
|
||||
/// tools as call-protocol operations under one namespace, with the
|
||||
/// auth token injected per-call from `Capabilities` (ADR-014).
|
||||
pub struct FromMCP {
|
||||
endpoint: String,
|
||||
auth_token: Option<Secret<String>>,
|
||||
@@ -57,6 +60,8 @@ pub struct FromMCP {
|
||||
}
|
||||
|
||||
impl FromMCP {
|
||||
/// Assemble the adapter for a streamable-HTTP MCP `endpoint`,
|
||||
/// registering its tools under `namespace`.
|
||||
pub fn new(endpoint: impl Into<String>, namespace: impl Into<String>) -> Self {
|
||||
Self {
|
||||
endpoint: endpoint.into(),
|
||||
@@ -65,19 +70,24 @@ impl FromMCP {
|
||||
}
|
||||
}
|
||||
|
||||
/// Set the auth token sent as the MCP endpoint's `Authorization:
|
||||
/// Bearer` header (wrapped in `Secret` so it never logs).
|
||||
pub fn with_auth_token(mut self, token: impl Into<String>) -> Self {
|
||||
self.auth_token = Some(Secret::new(token.into()));
|
||||
self
|
||||
}
|
||||
|
||||
/// The configured MCP endpoint URL.
|
||||
pub fn endpoint(&self) -> &str {
|
||||
&self.endpoint
|
||||
}
|
||||
|
||||
/// The namespace imported operations register under.
|
||||
pub fn namespace(&self) -> &str {
|
||||
&self.namespace
|
||||
}
|
||||
|
||||
/// The configured token, for introspection (never logged).
|
||||
pub fn auth_token(&self) -> Option<&Secret<String>> {
|
||||
self.auth_token.as_ref()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user