Files
ruvnet--RuView/v2/crates/wifi-densepose-bfld/Cargo.toml
T
ruv ab8d7a8583 docs(adr-118/p6.14): crate README.md + Cargo.toml readme field (327/327 GREEN)
Iter 49. Ships the crate's first README — genuinely missing artifact.
crates.io renders this file; the rendered page is what downstream
operators see when they `cargo doc --open` or browse the registry.

Added:
- v2/crates/wifi-densepose-bfld/README.md (~135 lines):
    * Three structural invariants (I1/I2/I3) table with enforcement
      mechanism per invariant
    * Quickstart snippet: in-process consumer (BfldPipeline::process)
    * Quickstart snippet: production worker (BfldPipelineHandle +
      bootstrap helpers)
    * Feature flag matrix (std / serde-json / mqtt / soul-signature)
    * Two runnable example invocations
    * Testing matrix (no_default / default / mqtt)
    * Companion artifacts pointer (ADRs, research bundle, HA
      blueprints, CI workflow)
    * ADR cross-reference table (ADR-118 through ADR-123)
    * BFLD_MQTT_BROKER env-var doc for live mosquitto opt-in

- v2/crates/wifi-densepose-bfld/Cargo.toml:
    readme = "README.md"
    (so crates.io picks it up on publish)

- v2/crates/wifi-densepose-bfld/tests/crate_readme.rs (8 tests):
    readme_documents_three_structural_invariants
    readme_documents_feature_flag_matrix
    readme_documents_both_runnable_examples
    readme_documents_three_test_invocations
    readme_references_companion_adrs_118_through_123
    readme_quickstart_uses_canonical_public_api
      (8 symbol-presence checks: BfldPipeline::new, BfldConfig::new,
       SignatureHasher::new, SensingInputs, IdentityEmbedding::from_raw,
       pipeline.process, publish_availability_online, publish_discovery,
       BfldPipelineHandle::spawn, PipelineInput)
    readme_points_at_research_bundle_and_blueprints
    readme_documents_env_gated_mosquitto_integration

ADR-124 status (iter step 0 sibling check):
- docs/adr/ADR-124-rvagent-mcp-ruvector-npm-integration.md unchanged
  at 431 lines. SENSE-BRIDGE scope remains orthogonal.

ACs progressed:
- ADR-118 §2.1 documentation surface — crates.io / cargo doc landing
  page now exists. Operators encountering wifi-densepose-bfld for the
  first time get the three structural invariants, quickstart snippets
  for both deployment patterns, feature matrix, and ADR map without
  having to read source.

Test config:
- cargo test --no-default-features → 101 passed (crate_readme cfg-out)
- cargo test                       → 327 passed (319 + 8)

Out of scope (next iter target):
- PR-readiness pivot. CHANGELOG, witness bundle, AC closeout table.
  External-resource-gated work (KIT BFId, Pi5/Nexmon) still skipped.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-24 19:58:12 -04:00

66 lines
2.2 KiB
TOML

[package]
name = "wifi-densepose-bfld"
description = "BFLD — Beamforming Feedback Layer for Detection. Privacy-gated WiFi BFI sensing primitives. See ADR-118."
readme = "README.md"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
[features]
default = ["std", "serde-json"]
std = []
# JSON serialization for BfldEvent (ADR-121 §2.1, ADR-122 §2.1). Pulls in
# serde + serde_json; tied to `std` because serde_json is std-only.
serde-json = ["std", "dep:serde", "dep:serde_json"]
# rumqttc-backed Publish trait impl. Pairs with the `mqtt` feature in
# wifi-densepose-sensing-server so the same broker connection can serve
# both publishers in the same process if desired.
mqtt = ["std", "dep:rumqttc"]
# Soul Signature integration (ADR-118 §1.4, ADR-120 §2.7, ADR-121 §2.6) —
# enables privacy_class = 1 (derived) mode and the SoulMatchOracle gate
# exemption. Disabled by default per the structural class-2 default.
soul-signature = []
[dependencies]
thiserror.workspace = true
static_assertions = "1.1"
crc = "3"
blake3 = { version = "1.5", default-features = false }
serde = { workspace = true, features = ["derive"], optional = true }
serde_json = { workspace = true, optional = true }
# MQTT publisher backend (optional). Matches the `rumqttc` choice already in
# `wifi-densepose-sensing-server` so both crates share TLS / version posture.
rumqttc = { version = "0.24", default-features = false, features = ["use-rustls"], optional = true }
[dev-dependencies]
proptest.workspace = true
# The minimal example uses BfldEvent::to_json(), which is gated on serde-json.
# Without this declaration, `cargo test --no-default-features` tries to build
# the example and fails on the missing to_json() method.
[[example]]
name = "bfld_minimal"
required-features = ["serde-json"]
# The handle example uses the std-only publish helpers and pipeline handle.
[[example]]
name = "bfld_handle"
required-features = ["std"]
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
[lints.clippy]
all = "warn"
pedantic = "warn"
nursery = "warn"
module_name_repetitions = "allow"
missing_const_for_fn = "allow"
missing_panics_doc = "allow"