commit c381a89464838a475129a3174766ffc3b661b43f
parent 9b3b3529ba5fbcf22784b7c6766fcaf7da5fe697
Author: triesap <tyson@radroots.org>
Date: Wed, 1 Jul 2026 09:49:18 +0000
cli: remove runtime migration report surface
- remove migration report fields from runtime config and config-show output
- stop inspecting legacy CLI paths during config resolution
- delete compatibility-window and legacy-path DTOs from runtime views
- update test config builders for the target runtime contract
Diffstat:
12 files changed, 39 insertions(+), 161 deletions(-)
diff --git a/src/ops/exec/basket.rs b/src/ops/exec/basket.rs
@@ -1318,7 +1318,6 @@ mod tests {
use radroots_events::ids::RadrootsListingAddress;
use radroots_events::kinds::{KIND_FARM, KIND_LISTING};
use radroots_replica_sync::{RadrootsReplicaIngestOutcome, radroots_replica_ingest_event};
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
use radroots_sql_core::{SqlExecutor, SqliteExecutor};
use serde_json::{Map, Value, json};
@@ -1334,10 +1333,9 @@ mod tests {
use crate::runtime::account;
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
const LISTING_ADDR: &str = "30402:1111111111111111111111111111111111111111111111111111111111111111:AAAAAAAAAAAAAAAAAAAAAg";
@@ -1885,9 +1883,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/ops/exec/core.rs b/src/ops/exec/core.rs
@@ -1207,11 +1207,9 @@ fn invalid_input(operation_id: &str, message: String) -> OperationAdapterError {
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
use serde_json::{Map, Value};
+ use std::path::{Path, PathBuf};
use tempfile::tempdir;
use super::CoreOperationService;
@@ -1222,10 +1220,9 @@ mod tests {
};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
use crate::runtime::logging::LoggingState;
@@ -1416,9 +1413,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/ops/exec/farm.rs b/src/ops/exec/farm.rs
@@ -586,11 +586,9 @@ fn invalid_input(operation_id: &str, message: String) -> OperationAdapterError {
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
use serde_json::{Map, Value, json};
+ use std::path::{Path, PathBuf};
use tempfile::tempdir;
use super::FarmOperationService;
@@ -601,10 +599,9 @@ mod tests {
};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
use crate::view::runtime::{
FarmPrivateExactLocationView, FarmPrivateLocationCandidateView, FarmPrivateLocationView,
@@ -859,9 +856,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/ops/exec/listing.rs b/src/ops/exec/listing.rs
@@ -461,11 +461,9 @@ fn invalid_input(operation_id: &str, message: String) -> OperationAdapterError {
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
use serde_json::{Map, Value};
+ use std::path::{Path, PathBuf};
use tempfile::tempdir;
use super::ListingOperationService;
@@ -475,10 +473,9 @@ mod tests {
};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
#[test]
@@ -586,9 +583,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/ops/exec/market.rs b/src/ops/exec/market.rs
@@ -241,11 +241,9 @@ fn invalid_input(operation_id: &str, message: String) -> OperationAdapterError {
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
use serde_json::{Map, Value};
+ use std::path::{Path, PathBuf};
use tempfile::tempdir;
use super::{MarketOperationService, market_listing_get_view, market_product_search_view};
@@ -255,10 +253,9 @@ mod tests {
};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
use crate::view::runtime::{
FindPriceView, FindQuantityView, FindResultProvenanceView, FindResultView, FindView,
@@ -650,9 +647,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/ops/exec/runtime.rs b/src/ops/exec/runtime.rs
@@ -214,10 +214,8 @@ where
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
+ use std::path::{Path, PathBuf};
use tempfile::tempdir;
use super::RuntimeOperationService;
@@ -227,10 +225,9 @@ mod tests {
};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
#[test]
@@ -333,9 +330,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/ops/exec/trade.rs b/src/ops/exec/trade.rs
@@ -1237,11 +1237,9 @@ fn invalid_input(operation_id: &str, message: String) -> OperationAdapterError {
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
use serde_json::{Map, Value};
+ use std::path::{Path, PathBuf};
use tempfile::tempdir;
use super::{TradeOperationService, decision_result};
@@ -1254,10 +1252,9 @@ mod tests {
};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
use crate::view::runtime::OrderDecisionView;
@@ -1771,9 +1768,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/runtime/config.rs b/src/runtime/config.rs
@@ -6,10 +6,7 @@ use std::path::PathBuf;
use radroots_local_events::{RelayUrlValidationError, normalize_relay_url};
use radroots_runtime::{parse_bool_value, parse_strict_env_file, parse_u64_value};
-use radroots_runtime_paths::{
- RadrootsLegacyPathCandidate, RadrootsMigrationReport, RadrootsPathResolver,
- inspect_legacy_paths,
-};
+use radroots_runtime_paths::RadrootsPathResolver;
use radroots_secret_vault::{RadrootsHostVaultPolicy, RadrootsSecretBackend};
use serde::Deserialize;
use url::Url;
@@ -384,7 +381,6 @@ pub struct RuntimeConfig {
pub output: OutputConfig,
pub interaction: InteractionConfig,
pub paths: PathsConfig,
- pub migration: MigrationConfig,
pub logging: LoggingConfig,
pub account: AccountConfig,
pub account_secret_contract: AccountSecretContractConfig,
@@ -400,11 +396,6 @@ pub struct RuntimeConfig {
pub capability_bindings: Vec<CapabilityBindingConfig>,
}
-#[derive(Debug, Clone, PartialEq, Eq)]
-pub struct MigrationConfig {
- pub report: RadrootsMigrationReport,
-}
-
#[derive(Debug, Default)]
pub(crate) struct EnvFileValues(BTreeMap<String, String>);
@@ -599,7 +590,6 @@ impl RuntimeConfig {
env_file: &EnvFileValues,
) -> Result<Self, RuntimeError> {
let paths = resolve_paths(env, env_file)?;
- let migration = resolve_migration(paths.clone(), env);
let workspace_config = paths
.workspace_config_path
.as_deref()
@@ -660,7 +650,6 @@ impl RuntimeConfig {
output,
interaction: resolve_interaction_config(args, env),
paths: paths.clone(),
- migration,
logging,
account: AccountConfig {
selector: args
@@ -853,40 +842,6 @@ impl RuntimeConfig {
}
}
-fn resolve_migration(paths: PathsConfig, env: &dyn Environment) -> MigrationConfig {
- MigrationConfig {
- report: inspect_legacy_paths(legacy_path_candidates(&paths, env)),
- }
-}
-
-fn legacy_path_candidates(
- paths: &PathsConfig,
- env: &dyn Environment,
-) -> Vec<RadrootsLegacyPathCandidate> {
- let Some(home_dir) = env.var("HOME").map(PathBuf::from) else {
- return Vec::new();
- };
- let old_user_config = home_dir.join(".config/radroots/config.toml");
- let old_user_state_root = home_dir.join(".local/share/radroots");
-
- vec![
- RadrootsLegacyPathCandidate::new(
- "cli_user_config_v0",
- "legacy cli user config",
- old_user_config,
- Some(paths.app_config_path.clone()),
- "merge this config into the canonical app config path; the cli will not copy it on startup",
- ),
- RadrootsLegacyPathCandidate::new(
- "cli_user_state_root_v0",
- "legacy cli user state root",
- old_user_state_root,
- Some(paths.app_data_root.clone()),
- "export/import the old local state into the canonical app and shared namespaces; the cli will not move it on startup",
- ),
- ]
-}
-
fn load_cli_config_file(path: &Path) -> Result<Option<CliConfigFile>, RuntimeError> {
if !path.exists() {
return Ok(None);
diff --git a/src/runtime/provider.rs b/src/runtime/provider.rs
@@ -249,10 +249,8 @@ fn hyf_executable(
#[cfg(test)]
mod tests {
- use std::path::PathBuf;
-
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_secret_vault::RadrootsSecretBackend;
+ use std::path::PathBuf;
use super::{
ProviderProvenance, resolve_actor_write_plane_target, resolve_capability_providers,
@@ -261,10 +259,10 @@ mod tests {
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, CapabilityBindingConfig,
CapabilityBindingSource, CapabilityBindingTargetKind, HyfConfig, IdentityConfig,
- InteractionConfig, LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig,
- OutputFormat, PathsConfig, PublishConfig, PublishTransport, PublishTransportSource,
- RelayConfig, RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig,
- SignerBackend, SignerConfig, Verbosity,
+ InteractionConfig, LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat,
+ PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
+ RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
+ SignerConfig, Verbosity,
};
use crate::view::runtime::{
PublishProviderRuntimeView, PublishRelayRuntimeView, PublishRuntimeView,
@@ -305,9 +303,6 @@ mod tests {
shared_accounts_secrets_root: PathBuf::from("/tmp/shared/accounts-secrets"),
default_identity_path: PathBuf::from("/tmp/default-identity.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/runtime/sdk.rs b/src/runtime/sdk.rs
@@ -679,7 +679,6 @@ mod tests {
use std::time::Duration;
use radroots_authority::RadrootsEventSigner;
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_sdk::{SdkStorageKind, StorageStatusRequest};
use radroots_secret_vault::RadrootsSecretBackend;
use tempfile::tempdir;
@@ -687,10 +686,9 @@ mod tests {
use super::*;
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RhiConfig, RpcConfig, SignerBackend, SignerConfig,
- Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RhiConfig, RpcConfig, SignerBackend, SignerConfig, Verbosity,
};
struct DirectRrRsDependency {
@@ -2033,9 +2031,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".to_owned(),
directory: None,
diff --git a/src/runtime/sync.rs b/src/runtime/sync.rs
@@ -1420,7 +1420,6 @@ mod tests {
use radroots_nostr::prelude::{
RadrootsNostrEvent, RadrootsNostrFilter, RadrootsNostrTimestamp, radroots_nostr_build_event,
};
- use radroots_runtime_paths::RadrootsMigrationReport;
use radroots_sdk::{
PushOutboxEventReceipt, PushOutboxEventState, PushOutboxReceipt,
PushOutboxRelayOutcomeKind, PushOutboxRelayReceipt, SyncEventStoreStatus, SyncOutboxStatus,
@@ -1438,10 +1437,9 @@ mod tests {
use crate::cli::global::{FindQueryArgs, RecordLookupArgs};
use crate::runtime::config::{
AccountConfig, AccountSecretContractConfig, HyfConfig, IdentityConfig, InteractionConfig,
- LocalConfig, LoggingConfig, MigrationConfig, MycConfig, OutputConfig, OutputFormat,
- PathsConfig, PublishConfig, PublishTransport, PublishTransportSource, RelayConfig,
- RelayConfigSource, RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend,
- SignerConfig, Verbosity,
+ LocalConfig, LoggingConfig, MycConfig, OutputConfig, OutputFormat, PathsConfig,
+ PublishConfig, PublishTransport, PublishTransportSource, RelayConfig, RelayConfigSource,
+ RelayPublishPolicy, RpcConfig, RuntimeConfig, SignerBackend, SignerConfig, Verbosity,
};
const FARM_D_TAG: &str = "AAAAAAAAAAAAAAAAAAAAAA";
@@ -2254,9 +2252,6 @@ mod tests {
shared_accounts_secrets_root: secrets.join("shared/accounts"),
default_identity_path: secrets.join("shared/identities/default.json"),
},
- migration: MigrationConfig {
- report: RadrootsMigrationReport::empty(),
- },
logging: LoggingConfig {
filter: "info".into(),
directory: None,
diff --git a/src/view/runtime.rs b/src/view/runtime.rs
@@ -41,7 +41,6 @@ pub struct ConfigShowView {
pub interaction: InteractionRuntimeView,
pub config_files: ConfigFilesRuntimeView,
pub paths: PathsRuntimeView,
- pub migration: MigrationRuntimeView,
pub logging: LoggingRuntimeView,
pub account: AccountRuntimeView,
pub signer: SignerRuntimeView,
@@ -176,26 +175,6 @@ pub struct RuntimeInstanceRecordView {
}
#[derive(Debug, Clone, Serialize)]
-pub struct MigrationRuntimeView {
- pub posture: String,
- pub state: String,
- pub silent_startup_relocation: bool,
- pub compatibility_window: String,
- pub detected_legacy_paths: Vec<LegacyPathRuntimeView>,
- pub actions: Vec<String>,
-}
-
-#[derive(Debug, Clone, Serialize)]
-pub struct LegacyPathRuntimeView {
- pub id: String,
- pub description: String,
- pub path: String,
- #[serde(skip_serializing_if = "Option::is_none")]
- pub destination: Option<String>,
- pub import_hint: String,
-}
-
-#[derive(Debug, Clone, Serialize)]
pub struct OutputRuntimeView {
pub format: String,
pub verbosity: String,