commit 8542b40e9eb7567c4da1ed2b103dae78349fbc7c
parent 929c5c8b3355b33b8621f10d202f13b3445a80a6
Author: kernelkind <kernelkind@gmail.com>
Date: Wed, 25 Feb 2026 19:50:16 -0500
refactor(outbox-int): remove legacy `Subscriptions`
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
5 files changed, 4 insertions(+), 61 deletions(-)
diff --git a/crates/notedeck/src/app.rs b/crates/notedeck/src/app.rs
@@ -2,16 +2,17 @@ use crate::account::FALLBACK_PUBKEY;
use crate::i18n::Localization;
use crate::nip05::Nip05Cache;
use crate::persist::{AppSizeHandler, SettingsHandler};
+use crate::scoped_sub_state::ScopedSubsState;
use crate::unknowns::unknown_id_send;
use crate::wallet::GlobalWallet;
use crate::zaps::Zaps;
use crate::{
frame_history::FrameHistory, AccountStorage, Accounts, AppContext, Args, DataPath,
- DataPathType, Directory, Images, NoteAction, NoteCache, UnknownIds,
+ DataPathType, Directory, Images, NoteAction, NoteCache, RemoteApi, UnknownIds,
};
-use crate::{EguiWakeup, Error, JobCache, RemoteApi};
+use crate::{EguiWakeup, NotedeckOptions};
+use crate::{Error, JobCache};
use crate::{JobPool, MediaJobs};
-use crate::{NotedeckOptions, ScopedSubsState};
use egui::Margin;
use egui::ThemePreference;
use egui_winit::clipboard::Clipboard;
diff --git a/crates/notedeck_columns/src/accounts/mod.rs b/crates/notedeck_columns/src/accounts/mod.rs
@@ -10,7 +10,6 @@ use crate::decks::DecksCache;
use crate::onboarding::{Onboarding, OnboardingEffect};
use crate::profile::{send_default_dms_relay_list, send_new_contact_list};
use crate::scoped_sub_owner_keys::onboarding_owner_key;
-use crate::subscriptions::Subscriptions;
use crate::ui::onboarding::{FollowPackOnboardingView, FollowPacksResponse, OnboardingResponse};
use crate::{
login_manager::AcquireKeyState,
@@ -153,7 +152,6 @@ pub fn process_accounts_view_response(
pub fn process_login_view_response(
app_ctx: &mut AppContext,
decks: &mut DecksCache,
- subs: &mut Subscriptions,
onboarding: &mut Onboarding,
col: usize,
response: AccountLoginResponse,
@@ -258,7 +256,6 @@ impl AccountsRouteResponse {
let action = process_login_view_response(
app_ctx,
&mut app.decks_cache,
- &mut app.subscriptions,
&mut app.onboarding,
col,
response,
diff --git a/crates/notedeck_columns/src/app.rs b/crates/notedeck_columns/src/app.rs
@@ -8,7 +8,6 @@ use crate::{
options::AppOptions,
route::Route,
storage,
- subscriptions::{SubKind, Subscriptions},
support::Support,
timeline::{self, kind::ListKind, thread::Threads, TimelineCache, TimelineKind},
timeline_loader::{TimelineLoader, TimelineLoaderMsg},
@@ -32,7 +31,6 @@ use notedeck_ui::{
use std::collections::{BTreeSet, HashMap, HashSet};
use std::path::Path;
use tracing::{error, info, warn};
-use uuid::Uuid;
/// Max timeline loader messages to process per frame to avoid UI stalls.
const MAX_TIMELINE_LOADER_MSGS_PER_FRAME: usize = 8;
@@ -51,7 +49,6 @@ pub struct Damus {
pub view_state: ViewState,
pub drafts: Drafts,
pub timeline_cache: TimelineCache,
- pub subscriptions: Subscriptions,
pub support: Support,
pub threads: Threads,
/// Background loader for initial timeline scans.
@@ -341,11 +338,6 @@ fn update_damus(damus: &mut Damus, app_ctx: &mut AppContext<'_>, ctx: &egui::Con
match damus.state {
DamusState::Initializing => {
damus.state = DamusState::Initialized;
- // this lets our eose handler know to close unknownids right away
- damus
- .subscriptions()
- .insert("unknownids".to_string(), SubKind::OneShot);
-
setup_selected_account_timeline_subs(&mut damus.timeline_cache, app_ctx);
if !app_ctx.settings.welcome_completed() {
@@ -540,7 +532,6 @@ impl Damus {
let threads = Threads::default();
Self {
- subscriptions: Subscriptions::default(),
timeline_cache,
drafts: Drafts::default(),
state: DamusState::Initializing,
@@ -574,14 +565,6 @@ impl Damus {
get_active_columns(accounts, &self.decks_cache)
}
- pub fn gen_subid(&self, kind: &SubKind) -> String {
- if self.options.contains(AppOptions::Debug) {
- format!("{kind:?}")
- } else {
- Uuid::new_v4().to_string()
- }
- }
-
pub fn mock<P: AsRef<Path>>(data_path: P) -> Self {
let mut i18n = Localization::default();
let decks_cache = DecksCache::default_decks_cache(&mut i18n);
@@ -594,7 +577,6 @@ impl Damus {
let support = Support::new(&path);
Self {
- subscriptions: Subscriptions::default(),
timeline_cache: TimelineCache::default(),
drafts: Drafts::default(),
state: DamusState::Initializing,
@@ -614,10 +596,6 @@ impl Damus {
}
}
- pub fn subscriptions(&mut self) -> &mut HashMap<String, SubKind> {
- &mut self.subscriptions.subs
- }
-
pub fn unrecognized_args(&self) -> &BTreeSet<String> {
&self.unrecognized_args
}
diff --git a/crates/notedeck_columns/src/lib.rs b/crates/notedeck_columns/src/lib.rs
@@ -24,7 +24,6 @@ mod repost;
mod route;
mod scoped_sub_owner_keys;
mod search;
-mod subscriptions;
mod support;
mod test_data;
pub mod timeline;
diff --git a/crates/notedeck_columns/src/subscriptions.rs b/crates/notedeck_columns/src/subscriptions.rs
@@ -1,32 +0,0 @@
-use crate::timeline::TimelineKind;
-use std::collections::HashMap;
-use uuid::Uuid;
-
-#[derive(Debug, Clone)]
-pub enum SubKind {
- /// Initial subscription. This is the first time we do a remote subscription
- /// for a timeline
- Initial,
-
- /// One shot requests, we can just close after we receive EOSE
- OneShot,
-
- Timeline(TimelineKind),
-
- /// We are fetching a contact list so that we can use it for our follows
- /// Filter.
- // TODO: generalize this to any list?
- FetchingContactList(TimelineKind),
-}
-
-/// Subscriptions that need to be tracked at various stages. Sometimes we
-/// need to do A, then B, then C. Tracking requests at various stages by
-/// mapping uuid subids to explicit states happens here.
-#[derive(Default)]
-pub struct Subscriptions {
- pub subs: HashMap<String, SubKind>,
-}
-
-pub fn new_sub_id() -> String {
- Uuid::new_v4().to_string()
-}