summaryrefslogtreecommitdiff
path: root/Hutch
Commit message (Collapse)AuthorAgeFilesLines
* fix: mercurial parity and graphql handlingv3.0.4Christian Cleberg2026-04-1313-192/+301
| | | | | | | | | | - implements consistent UX between repo types - ensures centralized services and routes are used between repo types - graphql error handling is centralized - error messages are consistent Implements: https://todo.sr.ht/~ccleberg/hutch/58 Implements: https://todo.sr.ht/~ccleberg/hutch/59
* perf: cache filtered collections and add equatable row viewsChristian Cleberg2026-04-137-25/+70
| | | | | | | | | | | | | | | | Convert filteredJobs, filteredPastes, and filteredTickets from computed properties to stored properties updated via didSet on their inputs. Each update function guards with an equality check before assigning, so @Observable skips the notification when the filtered result hasn't changed — preventing list re-renders on auto-refresh when no visible data has actually changed. Add Equatable conformance to BuildRowView, PasteRowView, TicketRowView, and SelectableTicketRow, and apply .equatable() at each ForEach call site. When a list does re-render, SwiftUI now skips body evaluation for rows whose model value is identical to the previous pass. Implements: https://todo.sr.ht/~ccleberg/hutch/57
* perf: reduce redundant fetches and improve list render efficiencyChristian Cleberg2026-04-136-10/+26
| | | | | | | | | | | | | | | | - Remove no-op per-row task from RepositoryListView; loadMoreIfNeeded is a stub for repos so each row was allocating a Task that did nothing - Fix BuildListView auto-refresh stopping permanently after navigating away; startAutoRefresh now runs unconditionally on task so it restarts on every reappear, not just first load - Add lastRefreshed tracking to HomeViewModel with a needsRefresh(after:) helper; HomeView and WorkView scene-activation handlers now skip loadDashboard() if the data is less than 60 seconds old - Add 120-second TTL to repository build status refresh; statuses are no longer re-fetched on every tab appear, only when stale or when the user explicitly pulls to refresh (forceRefresh: true) Implements: https://todo.sr.ht/~ccleberg/hutch/56
* release: v3.0.0 — navigation overhaul, Work view, and multi-pin supportv3.0.0Christian Cleberg2026-04-1323-968/+1399
| | | | | | | | | | | | | | | | | | | | Reworks the app's core navigation and home screen for v3.0.0: - Replace Inbox with Work view: unified dashboard showing unread threads and assigned tickets, with All/Unread/Assigned scope picker - Overhaul Home screen: redesigned with pinned items grid (trackers, repos, mailing lists, users), recent activity section, and system status banner; backed by HomePinStore supporting all resource types - Simplify navigation bars across list screens: default toolbar shows only the primary action (+) and an overflow menu (…); pin, share, and select moved into the overflow menu; selection mode gets its own nav bar with Cancel / "N Selected" / All - Consolidate repo detail toolbars: pin and share moved into the existing actions menu for both Git and Mercurial detail views - Add recent activity tracking via RecentActivityStore - Add work and inbox deep link aliases (hutch://work, hutch://inbox) Implements: https://todo.sr.ht/~ccleberg/hutch/55
* feat: add power user actionsChristian Cleberg2026-04-1321-70/+666
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/52 Implements: https://todo.sr.ht/~ccleberg/hutch/53 Implements: https://todo.sr.ht/~ccleberg/hutch/54
* feat: add multi-account supportChristian Cleberg2026-04-1219-149/+377
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/49 Implements: https://todo.sr.ht/~ccleberg/hutch/50 Implements: https://todo.sr.ht/~ccleberg/hutch/51
* feat: add search and recent queriesChristian Cleberg2026-04-129-21/+303
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/47 Implements: https://todo.sr.ht/~ccleberg/hutch/48
* feat: add ticket label management and bulk actionsChristian Cleberg2026-04-124-42/+711
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/45 Implements: https://todo.sr.ht/~ccleberg/hutch/46
* feat: add repo settings managementChristian Cleberg2026-04-1210-227/+439
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/42 Implements: https://todo.sr.ht/~ccleberg/hutch/43 Implements: https://todo.sr.ht/~ccleberg/hutch/44
* feat: add repository acl managementChristian Cleberg2026-04-128-236/+602
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/39 Implements: https://todo.sr.ht/~ccleberg/hutch/40 Implements: https://todo.sr.ht/~ccleberg/hutch/41
* feat: polish read-only project views and home integrationChristian Cleberg2026-04-129-179/+603
| | | | | | Refs: https://todo.sr.ht/~ccleberg/hutch/36 Refs: https://todo.sr.ht/~ccleberg/hutch/37 Refs: https://todo.sr.ht/~ccleberg/hutch/38
* feat: add ticket saved filters and label filteringChristian Cleberg2026-04-125-37/+534
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/32 Implements: https://todo.sr.ht/~ccleberg/hutch/33
* feat: add build artifact listingChristian Cleberg2026-04-123-0/+84
| | | | Implements: https://todo.sr.ht/~ccleberg/hutch/31
* feat: add build log search and jump-to-error navigationChristian Cleberg2026-04-122-26/+399
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/29 Implements: https://todo.sr.ht/~ccleberg/hutch/30
* feat: add projects list, detail view, and home pinningChristian Cleberg2026-04-1211-67/+431
| | | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/26 Implements: https://todo.sr.ht/~ccleberg/hutch/27 Implements: https://todo.sr.ht/~ccleberg/hutch/28
* feat: add theme and high-density display modesChristian Cleberg2026-04-1214-0/+118
| | | | | Refs: https://todo.sr.ht/~ccleberg/hutch/24 Implements: https://todo.sr.ht/~ccleberg/hutch/25
* feat: improve inbox reply flow and basic threadingChristian Cleberg2026-04-121-29/+64
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/23 Implements: https://todo.sr.ht/~ccleberg/hutch/34
* fix: improve inbox patch rendering and diff collapsingChristian Cleberg2026-04-122-10/+111
| | | | | Fixes: https://todo.sr.ht/~ccleberg/hutch/22 Implements: https://todo.sr.ht/~ccleberg/hutch/35
* feat: improve ticket list actions and metadata visibilityChristian Cleberg2026-04-121-48/+71
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/20 Implements: https://todo.sr.ht/~ccleberg/hutch/21
* fix: polish build retry and cancel actionsChristian Cleberg2026-04-122-14/+50
| | | | fixes: https://todo.sr.ht/~ccleberg/hutch/19
* feat: add builds auto-refresh and repo filteringChristian Cleberg2026-04-123-4/+122
| | | | | implements: https://todo.sr.ht/~ccleberg/hutch/17 implements: https://todo.sr.ht/~ccleberg/hutch/18
* feat: improve Home structure and navigationv2.16.0Christian Cleberg2026-04-126-60/+260
| | | | | | implements: https://todo.sr.ht/~ccleberg/hutch/14 implements: https://todo.sr.ht/~ccleberg/hutch/15 implements: https://todo.sr.ht/~ccleberg/hutch/16
* fix: ensure looked-up users' bios render correctlyChristian Cleberg2026-04-121-2/+5
|
* feat: add prioritization of polling hutch-stats for logged in userChristian Cleberg2026-04-123-7/+22
|
* chore: clean up debug loggingv2.15.1Christian Cleberg2026-04-125-48/+0
|
* add shortcuts widgets and power-user workflowsv2.15.0Christian Cleberg2026-04-126-0/+289
|
* improve home attention flows and cross-linkingv2.14.0Christian Cleberg2026-04-1211-84/+866
|
* harden system status and app reliabilityv2.13.1Christian Cleberg2026-04-1211-93/+561
|
* ensure clicking into status from home returns to homeChristian Cleberg2026-04-111-2/+2
|
* Add SourceHut system status screen and home disruption bannerChristian Cleberg2026-04-1112-5/+915
|
* fix: respect contribution graphs toggle in widgetv2.12.1Christian Cleberg2026-04-111-0/+3
| | | | | | Mirror the contributionGraphsEnabled setting to shared app group defaults so the widget extension can read it. Show a descriptive message when contributions are disabled instead of placeholder data.
* feat: add contribution calendar to user profilesv2.11.0Christian Cleberg2026-04-1111-5/+1076
| | | | | | Add a trailing 365-day contribution heatmap to user profile views, backed by HutchStatsService. Includes calendar model, view model, SwiftUI calendar view, app configuration, and unit tests.
* refactor: extract ProfileView from SettingsViewv2.10.3Christian Cleberg2026-04-113-578/+659
| | | | | Move profile-related UI into its own dedicated ProfileView, simplifying SettingsView and improving navigation structure in MoreView.
* bump version and update new privacy policy locationChristian Cleberg2026-04-101-1/+1
|
* chore: add explanatory comments to all intentional empty closuresv2.10.2Christian Cleberg2026-04-035-9/+23
|
* chore: rename unused coder param to _ in CodeFileUIViewChristian Cleberg2026-04-031-1/+1
|
* Fixed extraneous srht.site link in MoreViewv2.10.1Christian Cleberg2026-04-031-2/+1
|
* feat: add in-app man pages browserChristian Cleberg2026-04-037-3/+419
| | | | | | | | | | | | | | Add a native Man Pages section to the More tab with in-app browsing for man.sr.ht documentation and srht.site pages. - add ManPageService for fetching and extracting public docs content - add ManPageBrowserView and ManPageDetailView - add More tab navigation for Man Pages - support in-place navigation for internal documentation links - allow HTMLWebView to intercept internal links and use a base URL - support man.sr.ht and srht.site content extraction - remove heading permalink "#" anchors from man page rendering - fix relative links, fragment links, and srht.site CTA/icon layout
* add hg parityChristian Cleberg2026-04-022-32/+115
|
* Implement search history for Look Up pageChristian Cleberg2026-04-023-2/+116
|
* feat: browse user repositories and trackers from profilev2.9.0Christian Cleberg2026-04-025-10/+314
|
* feat: expand user profile in Look UpChristian Cleberg2026-04-013-8/+100
|
* feat: show commit dates in Refs tabv2.8.1Christian Cleberg2026-04-015-12/+56
|
* feat: add Look Up screen and restrict management actions to ownersv2.8.0Christian Cleberg2026-04-0110-12/+527
| | | | Implements: https://todo.sr.ht/~ccleberg/Hutch/4
* add confirmation to repo renameChristian Cleberg2026-04-011-7/+21
|
* fix copy throughout repoChristian Cleberg2026-04-017-18/+17
|
* standardize nav labelsChristian Cleberg2026-04-013-3/+3
|
* reverse order of swipe actions for user acls in trackersChristian Cleberg2026-04-011-8/+7
|
* Add tracker management (delete/update, ACLs, labels)v2.7.0Christian Cleberg2026-04-017-215/+1739
| | | | | | | | | | | | | - Add swipe actions (delete/edit) to tracker list - Add tracker settings menu on detail screen - Implement updateTracker and deleteTracker mutations - Implement ACL management (updateUserACL, updateTrackerACL, deleteACL) - Implement label management (createLabel, updateLabel, deleteLabel) - Add dedicated UI flows for ACLs and labels - Ensure state refresh after mutations - Handle loading, errors, and destructive confirmations Implements: https://todo.sr.ht/~ccleberg/Hutch/12
* Fix several bugs ahead of 2.6.1v2.6.1Christian Cleberg2026-04-015-17/+32
| | | | | | | | | | | | | | | | | | | | | | | | | FileTreeView: when wrap is OFF, activate an explicit width constraint on the code container derived from the widest line, giving the horizontal scroll view a defined content size. Previously the constraint was deactivated with nothing to replace it, making horizontal scrolling unreliable. Also set horizontalScrollView.isScrollEnabled = !wrapLines to prevent gesture conflicts when wrap is ON. InboxView: remove the unnecessary loadThreads() network call fired after markAllThreadsRead(). The threads array is already updated optimistically and read state is persisted via InboxReadStateStore, so the refetch was redundant and caused a brief loading flash. HomeView: add scenePhase onChange handler to refresh dashboard data when the app returns to the foreground, matching the existing pattern in InboxView. DiffView: wrap DiffBlockView content in a horizontal ScrollView so long diff lines are readable. Switch inner VStack to LazyVStack for better performance on large diffs. SettingsView: replace direct UserDefaults access in behaviorSection with @AppStorage, consistent with the rest of the app.