app

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

commit 20cedf0a7374a8badbfc1486bf8513f3bebd8c4d
parent a8cca05d2e7782780dea9c85f4add0424debbf97
Author: triesap <tyson@radroots.org>
Date:   Sat, 18 Apr 2026 03:58:56 +0000

app: reconcile auth copy and workspace validation

Diffstat:
Mcrates/launchers/desktop/src/source_guards.rs | 2+-
Mcrates/launchers/desktop/src/window.rs | 4++--
Mcrates/shared/i18n/src/keys.rs | 2+-
Mcrates/shared/i18n/src/lib.rs | 20++++++++++++++++++++
Mcrates/shared/models/src/lib.rs | 6+++---
Mi18n/locales/en/messages.json | 8++++----
6 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/crates/launchers/desktop/src/source_guards.rs b/crates/launchers/desktop/src/source_guards.rs @@ -4,7 +4,7 @@ const ALLOWED_MENU_LITERALS: &[&str] = &["cmd-q", "settings window should open"] const ALLOWED_WINDOW_LITERALS: &[&str] = &[ "account-add", - "account-admin-console", + "account-open-workspace", "account-log-out", "account-more", "home-today-scroll", diff --git a/crates/launchers/desktop/src/window.rs b/crates/launchers/desktop/src/window.rs @@ -637,9 +637,9 @@ impl SettingsWindowView { ) .child( div().child(action_button( - "account-admin-console", + "account-open-workspace", app_shared_text( - AppTextKey::SettingsAccountAdminConsoleAction, + AppTextKey::SettingsAccountOpenWorkspaceAction, ), cx.listener(|this, _, _, cx| { this.open_selected_workspace(cx); diff --git a/crates/shared/i18n/src/keys.rs b/crates/shared/i18n/src/keys.rs @@ -70,7 +70,7 @@ define_app_text_keys! { SettingsAccountActivationActive => "settings.account.activation.active", SettingsAccountAddAction => "settings.account.action.add_account", SettingsAccountLogOutAction => "settings.account.action.log_out", - SettingsAccountAdminConsoleAction => "settings.account.action.admin_console", + SettingsAccountOpenWorkspaceAction => "settings.account.action.open_workspace", SettingsViewAccount => "settings.view.account", SettingsViewSettings => "settings.view.settings", SettingsViewAbout => "settings.view.about", diff --git a/crates/shared/i18n/src/lib.rs b/crates/shared/i18n/src/lib.rs @@ -114,6 +114,26 @@ mod tests { } #[test] + fn english_auth_copy_matches_the_local_account_workflow_contract() { + assert_eq!( + app_text(AppTextKey::HomeTodayEmptySetupBody), + "Add a local account to start using Radroots on this device." + ); + assert_eq!( + app_text(AppTextKey::SettingsAccountNoSelectionBody), + "Add a local account to start using Radroots on this device." + ); + assert_eq!( + app_text(AppTextKey::SettingsAccountActivationLabel), + "Farmer Activation" + ); + assert_eq!( + app_text(AppTextKey::SettingsAccountOpenWorkspaceAction), + "Open Workspace..." + ); + } + + #[test] fn host_locale_negotiation_reduces_to_supported_base_locale() { assert_eq!(resolve_locale_from_host("en_US.UTF-8"), "en"); assert_eq!(resolve_locale_from_host("en-GB"), "en"); diff --git a/crates/shared/models/src/lib.rs b/crates/shared/models/src/lib.rs @@ -657,9 +657,9 @@ mod tests { AccountCustody, AccountSummary, AccountSurfaceActivationProjection, ActiveSurface, ActivityEventId, AppActivityContext, AppActivityEvent, AppActivityKind, AppIdentityProjection, AppStartupGate, FarmId, FarmerActivationProjection, FarmerSection, - IdentityBlockedReason, OrderListRow, ProductListRow, SelectedAccountProjection, - SelectedSurfaceProjection, SettingsPreference, SettingsSection, ShellSection, - TodayAgendaProjection, TodaySetupTask, TodaySetupTaskKind, TodaySummary, + IdentityBlockedReason, IdentityReadiness, OrderListRow, ProductListRow, + SelectedAccountProjection, SelectedSurfaceProjection, SettingsPreference, SettingsSection, + ShellSection, TodayAgendaProjection, TodaySetupTask, TodaySetupTaskKind, TodaySummary, }; use std::{collections::BTreeSet, str::FromStr}; use uuid::Uuid; diff --git a/i18n/locales/en/messages.json b/i18n/locales/en/messages.json @@ -18,7 +18,7 @@ "home.today.setup.add_fulfillment_window": "Add a fulfillment window", "home.today.setup.publish_product": "Publish a product", "home.today.empty.setup.title": "Account setup required", - "home.today.empty.setup.body": "Add or import a local account to start using Radroots on this device.", + "home.today.empty.setup.body": "Add a local account to start using Radroots on this device.", "home.today.empty.no_farm.title": "No farm yet", "home.today.empty.no_farm.body": "Create a farm to start using the farmer workspace.", "home.today.empty.quiet.title": "Nothing urgent right now", @@ -31,7 +31,7 @@ "settings.nav.settings": "Settings", "settings.nav.about": "About", "settings.account.no_selection.title": "No account selected", - "settings.account.no_selection.body": "Add or import a local account to start using Radroots on this device.", + "settings.account.no_selection.body": "Add a local account to start using Radroots on this device.", "settings.account.profile.label": "Profile", "settings.account.status.label": "Status", "settings.account.status.logged_in": "Logged In", @@ -44,12 +44,12 @@ "settings.account.surface.label": "Surface", "settings.account.surface.personal": "Personal", "settings.account.surface.farmer": "Farmer", - "settings.account.activation.label": "Farmer", + "settings.account.activation.label": "Farmer Activation", "settings.account.activation.inactive": "Not activated", "settings.account.activation.active": "Activated", "settings.account.action.add_account": "Add Account...", "settings.account.action.log_out": "Log Out", - "settings.account.action.admin_console": "Admin Console...", + "settings.account.action.open_workspace": "Open Workspace...", "settings.view.account": "account", "settings.view.settings": "settings", "settings.view.about": "about",