commit 635a58f0302f9e396be5ef1c132dd12f55c1c0be
parent 6f7b6560575260691c06536ce368170f03fca446
Author: triesap <tyson@radroots.org>
Date: Thu, 9 Jul 2026 08:40:34 +0000
docs: clarify transport preview behavior
- Document first-class no-wait delivery plans without fabricated target receipts.
- Clarify Reticulum preview push receipts report preview or deferred state with zero network attempts.
- Preserve the existing SDK README structure and product API wording.
- Keep Nostr and proxy publishing ownership described at the signed outbox boundary.
Diffstat:
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/crates/sdk/README b/crates/sdk/README
@@ -23,7 +23,9 @@ that prepared plan, ingests it into the local event store, queues signed outbox
typed `ListingEnqueueReceipt`. `sdk.listings().enqueue_publish(...)` is the convenience path that
prepares once and delegates to `enqueue_prepared_publish(...)`. Farm and trade write methods follow
the same configured signer pattern. The enqueue path uses typed transport target and idempotency
-inputs; omitted idempotency keys are derived deterministically.
+inputs; omitted idempotency keys are derived deterministically. `SatisfactionPolicy::NoWait` records
+first-class no-wait delivery plans, so enqueue-only product workflows can complete without accepted
+or delivered transport targets and without fabricated target delivery receipts.
Explicit signer injection remains available under `*_with_explicit_signer` method names for
controlled adapter-level tests and advanced integration checks. Those methods are not the primary
@@ -35,10 +37,12 @@ clock at enqueue time. Listing enqueue receipts report mutation state with the p
`StoredAndQueued` and `AlreadyQueued`.
`sdk.sync().push_outbox(...)` is the product sync entrypoint. It publishes queued signed outbox work
-when `transport-nostr-runtime` is enabled. Push time uses the delivery targets already stored on each queued
-outbox event, so already queued work does not require a configured builder profile. Nostr transport
-publishing and the `radrootsd-proxy` Publish Proxy transport consume signed outbox events; neither
-transport owns signing. `push_outbox_with_adapter(...)` remains available for tests and controlled
+when `transport-nostr-runtime` is enabled. Push time uses the delivery targets already stored on each
+queued outbox event, so already queued work does not require a configured builder profile. Reticulum
+preview work reports explicit preview-unavailable or deferred receipt state with zero network
+attempts; it does not deliver and does not fall back to another transport. Nostr transport publishing
+and the `radrootsd-proxy` Publish Proxy transport consume signed outbox events; neither transport
+owns signing. `push_outbox_with_adapter(...)` remains available for tests and controlled
adapter-level substrate checks. `radrootsd-proxy` adds daemon-resolved publishing through
`publish.event`.