commit 0a7e2668bc360b98a2c31b237ad26a93d7cca25d
parent 7b0e4b3ef0f7fd41a2dd13318d974d973a04fcd7
Author: triesap <tyson@radroots.org>
Date: Tue, 4 Aug 2026 20:15:48 +0000
sdk: pin unpublished lib dependencies by revision
- Resolve every cross-repository Lib crate from the pushed immutable master revision.
- Retain exact alpha versions while removing obsolete local Lib patch overrides.
- Update the lockfile to record the single reviewed Git source for 21 packages.
- Align feature-gated reducer tests with source-bound rebuild lifecycle contracts.
Diffstat:
2 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/crates/sdk/src/sync.rs b/crates/sdk/src/sync.rs
@@ -202,7 +202,9 @@ mod tests {
journal::IdempotencyKey,
memory::MemoryStorage,
outbox::LeaseOwner,
- projection::{ProjectionGeneration, ProjectionId},
+ projection::{
+ ProjectionGeneration, ProjectionId, RawSourceDigest, RebuildFailure, RebuildTicketId,
+ },
};
use radroots_sync::{
Engine, PullRequest, PushRequest,
@@ -286,14 +288,32 @@ mod tests {
self.generation
}
+ fn begin_rebuild(
+ &self,
+ _ticket_id: RebuildTicketId,
+ _source_generation: SourceGeneration,
+ _source_digest: RawSourceDigest,
+ ) -> Result<(), ReducerError> {
+ Ok(())
+ }
+
fn reduce(
&self,
events: &[StoredVisibleEvent],
prior_projected_rows: u64,
+ _rebuild_ticket: Option<RebuildTicketId>,
) -> Result<u64, ReducerError> {
assert!(events.is_empty());
Ok(prior_projected_rows)
}
+
+ fn abort_rebuild(
+ &self,
+ _ticket_id: RebuildTicketId,
+ _failure: RebuildFailure,
+ ) -> Result<(), ReducerError> {
+ Ok(())
+ }
}
fn target() -> Target {
diff --git a/crates/sdk/src/transport.rs b/crates/sdk/src/transport.rs
@@ -487,13 +487,10 @@ impl DaemonDelivery {
#[cfg(test)]
mod tests {
- use radroots_event::{SignedEvent, wire::v1::Nip01EventWire};
use radroots_transport::{
- DeliveryRequest, Error, FetchRequest, TARGET_SET_MAX_ITEMS, Target,
+ Error, TARGET_SET_MAX_ITEMS, Target,
capability::{Availability, Maturity},
policy::{SatisfactionClass, SatisfactionPolicy, TargetPolicy},
- sink::DeliveryPayload,
- source::FetchBounds,
target::TargetFingerprint,
};
@@ -503,10 +500,11 @@ mod tests {
Target::nostr_relay(format!("wss://relay-{index}.example")).expect("target")
}
- fn signed_event() -> SignedEvent {
+ #[cfg(feature = "nostr")]
+ fn signed_event() -> radroots_event::SignedEvent {
let raw = r#"{"id":"56bfc78223bb2221bad82b539efdec1ade0f56d0eb0e1f592fd387df4b2ceee0","pubkey":"585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df","created_at":1700000001,"kind":0,"tags":[],"content":"{}","sig":"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"}"#;
- let wire = Nip01EventWire::parse_json(raw).expect("wire event");
- SignedEvent::from_wire_verified_id(wire, raw).expect("signed event")
+ let wire = radroots_event::wire::v1::Nip01EventWire::parse_json(raw).expect("wire event");
+ radroots_event::SignedEvent::from_wire_verified_id(wire, raw).expect("signed event")
}
#[test]
@@ -698,7 +696,10 @@ mod tests {
#[cfg(feature = "nostr")]
#[tokio::test]
async fn empty_nostr_slot_reports_unavailable_and_rejects_operations() {
- use radroots_transport::{EventSink as _, EventSource as _};
+ use radroots_transport::{
+ DeliveryRequest, EventSink as _, EventSource as _, FetchRequest, sink::DeliveryPayload,
+ source::FetchBounds,
+ };
let slot = NostrSlot::new(RelayUrlPolicy::Local);
let source = radroots_transport::EventSource::status(&slot)