app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit f3d74968d9d4d06f39cba4c9e27e16f70e06a15e
parent f77b7b0b1adba0aae4ee5b939ab15859093c339f
Author: triesap <tyson@radroots.org>
Date:   Wed,  1 Jul 2026 04:43:12 +0000

runtime: remove unused trade status aliases

- delete inert app runtime status and resync commands
- remove unused request and receipt export surfaces
- update guard diagnostics to reference canonical SDK workflows
- keep source guard coverage green after the removal

Diffstat:
Mcrates/desktop/src/source_guards.rs | 6+++---
Mcrates/runtime/src/lib.rs | 5++---
Mcrates/runtime/src/sdk.rs | 89+++----------------------------------------------------------------------------
3 files changed, 8 insertions(+), 92 deletions(-)

diff --git a/crates/desktop/src/source_guards.rs b/crates/desktop/src/source_guards.rs @@ -1135,11 +1135,11 @@ const STRICT_SDK_BOUNDARY_FORBIDDEN_PATTERNS: &[SdkBoundaryForbiddenPattern] = & }, SdkBoundaryForbiddenPattern { pattern: "status_client(", - reason: "app production sources must use AppSdkRuntime trade status methods instead of removed SDK status clients", + reason: "app production sources must use canonical grouped SDK trade status workflows instead of removed SDK status clients", }, SdkBoundaryForbiddenPattern { pattern: "TradeStatusClient", - reason: "app production sources must use AppSdkRuntime trade status methods instead of removed SDK status handles", + reason: "app production sources must use canonical grouped SDK trade status workflows instead of removed SDK status handles", }, SdkBoundaryForbiddenPattern { pattern: "TradeValidationClient", @@ -1642,7 +1642,7 @@ fn strict_sdk_boundary_scanner_rejects_unexcepted_new_production_paths() { fn strict_sdk_boundary_scanner_rejects_removed_root_trade_alias_calls() { let allowed_findings = sdk_root_trade_alias_findings( "crates/runtime/src/sdk.rs", - "pub fn trade_status(&self) {} fn trade_status_for_locator() {}", + "fn trade_status_for_locator() {}", ); assert!(allowed_findings.is_empty()); diff --git a/crates/runtime/src/lib.rs b/crates/runtime/src/lib.rs @@ -46,8 +46,7 @@ pub use sdk::{ AppSdkStorageDiagnostics, AppSdkStoragePaths, AppSdkSyncDiagnostics, AppSdkSyncEventStoreDiagnostics, AppSdkSyncOutboxDiagnostics, AppSdkSyncRelayTargetDiagnostics, AppSdkTradeCancellationRequest, AppSdkTradeDecision, AppSdkTradeDecisionRequest, - AppSdkTradeProposeRequest, AppSdkTradeResyncRequest, AppSdkTradeRevisionDecisionRequest, - AppSdkTradeRevisionProposalRequest, AppSdkTradeStatusRequest, AppSdkWorkflowReceipt, - app_sdk_storage_root_from_data_root, + AppSdkTradeProposeRequest, AppSdkTradeRevisionDecisionRequest, + AppSdkTradeRevisionProposalRequest, AppSdkWorkflowReceipt, app_sdk_storage_root_from_data_root, }; pub use startup::{AppStartupEvent, AppStartupEventMetadata, launch_startup_event}; diff --git a/crates/runtime/src/sdk.rs b/crates/runtime/src/sdk.rs @@ -37,10 +37,9 @@ use radroots_sdk::{ TRADE_REVISION_PROPOSAL_OPERATION_KIND, TRADE_SUBMIT_OPERATION_KIND, TradeAcceptRequest, TradeCancelRequest, TradeCancellationPlan, TradeCancellationReceipt, TradeDecisionPlan, TradeDecisionReceipt, TradeDeclineRequest, TradeEvidenceIngestRequest, TradeMutationOutcome, - TradeProposeRequest, TradeResyncReceipt, TradeResyncRequest, TradeRevisionDecisionPlan, - TradeRevisionDecisionReceipt, TradeRevisionDecisionRequest, TradeRevisionProposalPlan, - TradeRevisionProposalReceipt, TradeRevisionProposalRequest, TradeStatusReceipt, - TradeStatusRequest, TradeSubmitPlan, TradeSubmitReceipt, + TradeProposeRequest, TradeRevisionDecisionPlan, TradeRevisionDecisionReceipt, + TradeRevisionDecisionRequest, TradeRevisionProposalPlan, TradeRevisionProposalReceipt, + TradeRevisionProposalRequest, TradeSubmitPlan, TradeSubmitReceipt, }; use radroots_sdk::{SdkMutationState, SdkRelayTargetPolicy}; use radroots_trade::identity::RadrootsTradeLocator; @@ -307,15 +306,6 @@ pub struct AppSdkTradeCancellationRequest { pub idempotency_key: Option<String>, } -pub struct AppSdkTradeStatusRequest { - pub locator: RadrootsTradeLocator, -} - -pub struct AppSdkTradeResyncRequest { - pub locator: RadrootsTradeLocator, - pub limit: u32, -} - #[derive(Clone, Debug, Eq, PartialEq)] pub struct AppSdkWorkflowReceipt { pub operation_kind: String, @@ -440,14 +430,6 @@ enum AppSdkWorkerCommand { AppSdkTradeCancellationRequest, mpsc::Sender<Result<AppSdkWorkflowReceipt, AppSdkRuntimeIssue>>, ), - TradeStatus( - AppSdkTradeStatusRequest, - mpsc::Sender<Result<TradeStatusReceipt, AppSdkRuntimeIssue>>, - ), - TradeResync( - AppSdkTradeResyncRequest, - mpsc::Sender<Result<TradeResyncReceipt, AppSdkRuntimeIssue>>, - ), BeginProjectionRebuild( mpsc::Sender<Result<AppSdkProjectionLifecycleStatus, AppSdkRuntimeIssue>>, ), @@ -472,8 +454,6 @@ impl fmt::Debug for AppSdkWorkerCommand { Self::TradeRevisionProposal(_, _) => formatter.write_str("TradeRevisionProposal"), Self::TradeRevisionDecision(_, _) => formatter.write_str("TradeRevisionDecision"), Self::TradeCancellation(_, _) => formatter.write_str("TradeCancellation"), - Self::TradeStatus(_, _) => formatter.write_str("TradeStatus"), - Self::TradeResync(_, _) => formatter.write_str("TradeResync"), Self::BeginProjectionRebuild(_) => formatter.write_str("BeginProjectionRebuild"), Self::CompleteProjectionRebuild(_) => formatter.write_str("CompleteProjectionRebuild"), } @@ -667,24 +647,6 @@ impl AppSdkRuntime { }) } - pub fn trade_status( - &self, - request: AppSdkTradeStatusRequest, - ) -> Result<TradeStatusReceipt, AppSdkRuntimeError> { - self.run_command(|response_sender| { - AppSdkWorkerCommand::TradeStatus(request, response_sender) - }) - } - - pub fn trade_resync( - &self, - request: AppSdkTradeResyncRequest, - ) -> Result<TradeResyncReceipt, AppSdkRuntimeError> { - self.run_command(|response_sender| { - AppSdkWorkerCommand::TradeResync(request, response_sender) - }) - } - pub fn begin_projection_rebuild( &self, ) -> Result<AppSdkProjectionLifecycleStatus, AppSdkRuntimeError> { @@ -1250,37 +1212,6 @@ fn run_app_sdk_worker( }; send_worker_result(&shared, response_sender, result); } - AppSdkWorkerCommand::TradeStatus(request, response_sender) => { - let result = if let Some(issue) = lifecycle_busy_issue(&shared) { - Err(issue) - } else { - match sdk.as_ref() { - Some(sdk) => runtime - .block_on( - sdk.trades() - .status(TradeStatusRequest::new(request.locator)), - ) - .map_err(|error| AppSdkRuntimeIssue::from_sdk_error(&error)), - None => Err(runtime_unavailable_issue(&shared)), - } - }; - send_worker_result(&shared, response_sender, result); - } - AppSdkWorkerCommand::TradeResync(request, response_sender) => { - let result = if let Some(issue) = lifecycle_busy_issue(&shared) { - Err(issue) - } else { - match sdk.as_ref() { - Some(sdk) => runtime - .block_on(sdk.trades().resync().resync( - TradeResyncRequest::new(request.locator).with_limit(request.limit), - )) - .map_err(|error| AppSdkRuntimeIssue::from_sdk_error(&error)), - None => Err(runtime_unavailable_issue(&shared)), - } - }; - send_worker_result(&shared, response_sender, result); - } AppSdkWorkerCommand::BeginProjectionRebuild(response_sender) => { let result = match sdk.as_ref() { Some(_) => Ok(begin_projection_rebuild(&shared)), @@ -1404,20 +1335,6 @@ fn run_degraded_worker( Err(runtime_unavailable_issue(&shared)), ); } - AppSdkWorkerCommand::TradeStatus(_, response_sender) => { - send_worker_result( - &shared, - response_sender, - Err(runtime_unavailable_issue(&shared)), - ); - } - AppSdkWorkerCommand::TradeResync(_, response_sender) => { - send_worker_result( - &shared, - response_sender, - Err(runtime_unavailable_issue(&shared)), - ); - } AppSdkWorkerCommand::BeginProjectionRebuild(response_sender) => { send_worker_result( &shared,