commit f4478a4fb2a758bf0862dde64aea529de3e98471
parent 65263961fe1471d6516af1848499bd95d82cf0b0
Author: triesap <tyson@radroots.org>
Date: Mon, 3 Aug 2026 13:03:50 +0000
facade: document public api contract
- Record the reviewed all-feature facade API as a pre-release baseline.
- Link the package charter and baseline from primary facade documentation.
- Document deterministic regeneration and curated API review requirements.
- Verify the snapshot, rustdoc, doctests, strict Clippy, and architecture gate.
Diffstat:
3 files changed, 134 insertions(+), 3 deletions(-)
diff --git a/crates/radroots/README.md b/crates/radroots/README.md
@@ -90,3 +90,5 @@ use radroots::sdk;
The normative package charter is the [`radroots` release-v1
specification](../../docs/specs/radroots_crates_release_v1.md#19-radroots).
+The reviewed pre-release public API is recorded in the
+[`radroots` baseline](../../docs/api/radroots-0.1.0-alpha.txt).
diff --git a/docs/api/README.md b/docs/api/README.md
@@ -5,12 +5,15 @@ They contain the simplified (`-sss`) all-features API emitted by
`cargo-public-api`; private implementation items and automatically generated
trait noise are intentionally omitted.
-Regenerate the `radroots_sdk` baseline from this repository root with:
+Regenerate either Rust front-door baseline from this repository root with:
```sh
cargo public-api -p radroots_sdk --all-features -sss --color never
+cargo public-api -p radroots --all-features -sss --color never
```
An API change is not accepted merely because the baseline can be regenerated.
-Review additions, removals, and changed signatures against the package charter
-and versioning policy before replacing a baseline.
+Review additions, removals, and changed signatures against the relevant package
+charter and versioning policy before replacing a baseline. The facade snapshot
+must remain curated: it must not contain a `radroots::sdk` module, facade-owned
+traits, or an undifferentiated copy of the advanced SDK surface.
diff --git a/docs/api/radroots-0.1.0-alpha.txt b/docs/api/radroots-0.1.0-alpha.txt
@@ -0,0 +1,126 @@
+pub mod radroots
+pub use radroots::Client
+pub use radroots::ClientBuilder
+pub use radroots::Error
+pub use radroots::Result
+pub mod radroots::client
+pub const fn radroots::client::geonames_enabled() -> bool
+pub const fn radroots::client::knowledge_enabled() -> bool
+pub const fn radroots::client::local_only() -> radroots_sdk::transport::Profile
+pub fn radroots::client::memory() -> radroots_sdk::client::ClientBuilder
+pub async fn radroots::client::native(radroots_sdk::storage::SqliteOptions) -> radroots_sdk::error::Result<radroots_sdk::client::ClientBuilder>
+pub fn radroots::client::with_nip46_signer(radroots_sdk::client::ClientBuilder, radroots_sdk::signing::Provider) -> radroots_sdk::client::ClientBuilder
+pub fn radroots::client::with_transport(radroots_sdk::client::ClientBuilder, alloc::sync::Arc<dyn radroots_transport::source::EventSource>, alloc::sync::Arc<dyn radroots_transport::sink::EventSink>) -> radroots_sdk::client::ClientBuilder
+pub mod radroots::event
+pub use radroots::event::Error
+pub use radroots::event::Event
+pub use radroots::event::EventDraft
+pub use radroots::event::EventId
+pub use radroots::event::EventKind
+pub use radroots::event::EventTag
+pub use radroots::event::SignedEvent
+pub use radroots::event::VerifiedEvent
+pub mod radroots::farm
+pub use radroots::farm::Farm
+pub use radroots::farm::FarmPublicLocation
+pub use radroots::farm::FarmRef
+pub use radroots::farm::Plan
+pub use radroots::farm::PrepareError
+pub use radroots::farm::PrepareErrorKind
+pub use radroots::farm::PrepareRequest
+pub use radroots::farm::prepare
+pub mod radroots::identity
+pub use radroots::identity::AccountId
+pub use radroots::identity::Error
+pub use radroots::identity::IdentityId
+pub use radroots::identity::Profile
+pub use radroots::identity::PublicIdentity
+pub use radroots::identity::PublicKey
+pub use radroots::identity::Username
+pub mod radroots::knowledge
+pub use radroots::knowledge::AddressableRef
+pub use radroots::knowledge::KnowledgeClaim
+pub use radroots::knowledge::KnowledgeFieldReport
+pub use radroots::knowledge::KnowledgeRelation
+pub use radroots::knowledge::KnowledgeReview
+pub use radroots::knowledge::KnowledgeSource
+pub use radroots::knowledge::KnowledgeValidationError
+pub use radroots::knowledge::WikiArticle
+pub use radroots::knowledge::WikiDTagError
+pub use radroots::knowledge::WikiMergeRequest
+pub use radroots::knowledge::WikiRedirect
+pub use radroots::knowledge::normalize_wiki_d_tag
+pub use radroots::knowledge::validate_wiki_d_tag
+pub mod radroots::listing
+pub use radroots::listing::Action
+pub use radroots::listing::EditV1
+pub use radroots::listing::Lifecycle
+pub use radroots::listing::OperationalListing
+pub use radroots::listing::OperationalListingAvailability
+pub use radroots::listing::OperationalListingBin
+pub use radroots::listing::OperationalListingDeliveryMethod
+pub use radroots::listing::OperationalListingImage
+pub use radroots::listing::OperationalListingProduct
+pub use radroots::listing::OperationalListingPublicLocation
+pub use radroots::listing::OperationalListingStatus
+pub use radroots::listing::Plan
+pub use radroots::listing::PrepareError
+pub use radroots::listing::PrepareErrorKind
+pub use radroots::listing::PrepareRequest
+pub use radroots::listing::prepare
+pub mod radroots::signing
+pub use radroots::signing::Mode
+pub use radroots::signing::Provider
+pub mod radroots::storage
+pub use radroots::storage::IntegrityStatus
+pub use radroots::storage::Operations
+pub use radroots::storage::SqliteOpenMode
+pub use radroots::storage::SqliteOptions
+pub use radroots::storage::SqlitePaths
+pub use radroots::storage::Status
+pub mod radroots::sync
+pub mod radroots::trade
+pub use radroots::trade::Currency
+pub use radroots::trade::Decimal
+pub use radroots::trade::FulfillmentProfileV1
+pub use radroots::trade::Money
+pub use radroots::trade::MutationBodyV1
+pub use radroots::trade::MutationKindV1
+pub use radroots::trade::MutationV1
+pub use radroots::trade::Percent
+pub use radroots::trade::Plan
+pub use radroots::trade::PrepareError
+pub use radroots::trade::PrepareErrorKind
+pub use radroots::trade::PrepareRequest
+pub use radroots::trade::Projection
+pub use radroots::trade::Quantity
+pub use radroots::trade::QuantityPrice
+pub use radroots::trade::ReducerIssue
+pub use radroots::trade::ReductionInput
+pub use radroots::trade::TradeCancellationProfileV1
+pub use radroots::trade::TradeCandidateLineV1
+pub use radroots::trade::TradeCandidateTermsV1
+pub use radroots::trade::TradeDecisionV1
+pub use radroots::trade::TradeEconomicAdjustmentV1
+pub use radroots::trade::TradeEconomicsProfileV1
+pub use radroots::trade::TradePrivateTermsRefV1
+pub use radroots::trade::Unit
+pub use radroots::trade::ValidationError
+pub use radroots::trade::WorkflowPlan
+pub use radroots::trade::prepare
+pub use radroots::trade::project
+pub mod radroots::transport
+pub use radroots::transport::DaemonAuth
+pub use radroots::transport::DaemonConfig
+pub use radroots::transport::DaemonDelivery
+pub use radroots::transport::DaemonError
+pub use radroots::transport::Error
+pub use radroots::transport::EventSink
+pub use radroots::transport::EventSource
+pub use radroots::transport::Profile
+pub use radroots::transport::SatisfactionClass
+pub use radroots::transport::SatisfactionPolicy
+pub use radroots::transport::Target
+pub use radroots::transport::TargetPolicy
+pub use radroots::transport::TargetSet
+pub use radroots::transport::TransportId