krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
0ad430c79eedac4140680e3aaca238969ac711b1
signed_unknown_key
author: Christian Cleberg <hello@cleberg.net> · 2026-07-16T04:27:03Z
committer: <noreply@github.com>
Hutch/App/AppState.swift | 3 + Hutch/Models/Inbox.swift | 45 +++++++- Hutch/Networking/MailingListActivity.swift | 135 ++++++++++++++++++++++ Hutch/Views/Home/HomeView.swift | 2 +- Hutch/Views/Home/HomeViewModel.swift | 74 +++++++----- Hutch/Views/Projects/ProjectMailingListView.swift | 21 +++- Hutch/Views/Work/WorkView.swift | 2 +- HutchTests/InboxViewModelTests.swift | 104 +++++++++++++++++ HutchTests/MailingListActivityTests.swift | 77 ++++++++++++ 9 files changed, 423 insertions(+), 40 deletions(-) @@@ -104,10 -84,15 +104,16 @@@ final class MailingListDetailViewModel responseType: ProjectMailingListThreadsResponse.self ) + let activity = await MailingListActivityLoader.load( + client: client, + listRID: mailingList.rid, + since: InboxReadStateStore.baseline(defaults: defaults) ?? .distantPast + ) + threads = deduplicateThreads( - response.list.threads.results.map(makeSummary(from:)) + response.list.threads.results.map { makeSummary(from: $0, activity: activity) } ) + patchsets = Self.patchsets(from: response.list.threads.results) } catch { self.error = "Failed to load mailing list" }