summaryrefslogtreecommitdiff
path: root/Hutch/Views/Repositories
Commit message (Collapse)AuthorAgeFilesLines
* fix: more sonarqube quality fixesv3.1.5Christian Cleberg2026-04-132-5/+12
|
* fix: sonarqube code smell fixesv3.1.4Christian Cleberg2026-04-139-85/+67
|
* fix: centralize URLs, tighten models, and polish SwiftUI bindingsv3.1.3Christian Cleberg2026-04-133-15/+23
| | | | | | | | | | | | | | | | | | | | - Add shared HutchDeepLinkURL constants for app, widgets, and tests. - Bump marketing version to 3.1.2 and build to 70 (app + widget extension). - Point Hutch stats default base URL at HutchStatsAPI; add SRHTWebURL status incident feed and reuse it from SystemStatusService. - Group Project into Metadata and Resources; split ContributionStatsResponse into StatsWindow and StatsTotals with updated decoding and tests. - Replace @Bindable usage with explicit Bindings in Profile, Projects list, and repository ACL flows; simplify Home pinned-item helper; add no-op bodies on cancel alert buttons where the compiler requires a statement. - Move repository row build-status indicator next to the relative-updated caption and reserve a fixed 8×8 slot so the row does not jump when status loads. - Use NSString.lastPathComponent for build artifact filenames; collapse duplicate ACL error branches; minor HutchStats HTTP and XMLParserDelegate cleanups. - Point widgets at HutchDeepLinkURL helpers; align tests with the new response and URL types.
* feat(theme): AMOLED true-black rows via themedRow()Christian Cleberg2026-04-139-1/+83
| | | | | | | | | | Apply listRowBackground(Color.black) per row in AMOLED mode using ThemedRowStyle and themedRow() across Lists and Forms. Use themedList() for scroll/grouped backgrounds. Treat segmented and clear list rows with isAMOLED-aware listRowBackground where Color.clear was required. Removes reliance on UIKit appearance for list cells on iOS 16+. Implements: https://todo.sr.ht/~ccleberg/hutch/24
* fix: show empty state for bare git repos instead of an errorChristian Cleberg2026-04-131-5/+19
| | | | | | | | | | | git.sr.ht returns "internal system error" from the references query and "reference not found" from the log/readme queries when a repo has no commits. Broaden isEmptyRepositoryError to cover missingReference, unknownRevision, noRows, notFound, and those two message strings, then apply the same silent-empty treatment to loadReferences and loadArtifacts (which previously surfaced any error directly to the user). Fixes: https://todo.sr.ht/~ccleberg/hutch/60
* fix: mercurial parity and graphql handlingv3.0.4Christian Cleberg2026-04-138-72/+157
| | | | | | | | | | - 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: reduce redundant fetches and improve list render efficiencyChristian Cleberg2026-04-132-7/+13
| | | | | | | | | | | | | | | | - 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-132-16/+90
| | | | | | | | | | | | | | | | | | | | 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-136-36/+162
| | | | | | 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-121-1/+1
| | | | | | 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-122-4/+85
| | | | | Implements: https://todo.sr.ht/~ccleberg/hutch/47 Implements: https://todo.sr.ht/~ccleberg/hutch/48
* feat: add repo settings managementChristian Cleberg2026-04-126-225/+388
| | | | | | 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-125-235/+475
| | | | | | 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: add theme and high-density display modesChristian Cleberg2026-04-121-0/+1
| | | | | Refs: https://todo.sr.ht/~ccleberg/hutch/24 Implements: https://todo.sr.ht/~ccleberg/hutch/25
* fix: improve inbox patch rendering and diff collapsingChristian Cleberg2026-04-121-5/+109
| | | | | Fixes: https://todo.sr.ht/~ccleberg/hutch/22 Implements: https://todo.sr.ht/~ccleberg/hutch/35
* chore: add explanatory comments to all intentional empty closuresv2.10.2Christian Cleberg2026-04-032-3/+9
|
* chore: rename unused coder param to _ in CodeFileUIViewChristian Cleberg2026-04-031-1/+1
|
* feat: add in-app man pages browserChristian Cleberg2026-04-031-2/+53
| | | | | | | | | | | | | | 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
|
* feat: show commit dates in Refs tabv2.8.1Christian Cleberg2026-04-014-12/+49
|
* feat: add Look Up screen and restrict management actions to ownersv2.8.0Christian Cleberg2026-04-012-8/+32
| | | | Implements: https://todo.sr.ht/~ccleberg/Hutch/4
* add confirmation to repo renameChristian Cleberg2026-04-011-7/+21
|
* fix copy throughout repoChristian Cleberg2026-04-011-1/+1
|
* Fix several bugs ahead of 2.6.1v2.6.1Christian Cleberg2026-04-012-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Rewrite file viewer with pinned gutter, syntax highlighting, and toolbarChristian Cleberg2026-04-011-50/+516
| | | | | | | | | | | | | | | | | | | | | | Replace the SwiftUI-only CodeFileTextView with a UIViewRepresentable backed by CodeFileUIView. The previous approach could not support a fixed line number gutter while independently scrolling code content horizontally. Changes: - Gutter is pinned outside the horizontal scroll view and never scrolls left - Vertical scroll is handled by a single outer UIScrollView shared by both the gutter and code content, keeping them in sync - Line numbers are right-aligned in a fixed-width gutter calculated from the total line count - Syntax highlighting via Splash for .swift files, with plain monospaced rendering as fallback for unsupported file types - Wrap toggle persisted via AppStorage (wrapRepositoryFileLines) - Bottom toolbar replaces the floating Share button, adding Copy All and Wrap toggle actions - Copy All shows a brief checkmark confirmation that resets after 2 seconds - Font fixed at SFMono-Regular 12pt, not scaled with Dynamic Type Implements: https://todo.sr.ht/~ccleberg/Hutch/7
* Fix nonisolated table alignment lookup in Readme ViewChristian Cleberg2026-03-301-2/+7
|
* fix(org): improve org-mode rendering supportv2.5.1Christian Cleberg2026-03-301-54/+393
|
* feat(markdown): finalize migration to apple/swift-markdown rendererv2.5.0Christian Cleberg2026-03-301-4/+38
|
* Migrate README markdown rendering to swift-markdown and fix badge imagesChristian Cleberg2026-03-302-332/+252
| | | | | | | | | | - replace the hand-rolled markdown parser with a MarkupVisitor renderer - keep the org-mode rendering path and shared sanitization helpers intact - update WKWebView styling and height measurement for README content - fix linked image and query-string badge rendering in markdown output - expand README rendering tests and add markdown syntax coverage Implements: https://todo.sr.ht/~ccleberg/Hutch/2
* partial extended support for markdown and org-modeChristian Cleberg2026-03-301-69/+630
|
* chore: rename unused entry param to _ in textBlobViewChristian Cleberg2026-03-241-2/+2
|
* chore: rename unused protocol params to _ across UIKit representablesChristian Cleberg2026-03-241-3/+3
|
* fix: add nested comments to satisfy sonar rule swift:S1186Christian Cleberg2026-03-242-5/+16
|
* feat: context menus to copy clone URLs and commit SHAsChristian Cleberg2026-03-222-0/+41
|
* fix README height update and settings save alertsv2.1Christian Cleberg2026-03-195-6/+62
|
* v2.1: bundled polish and fixesChristian Cleberg2026-03-198-42/+30
|
* feat: add inbox threads and move builds under moreChristian Cleberg2026-03-191-6/+141
|
* feat: add support for reading inbox messages (emails) and replying in-appChristian Cleberg2026-03-191-7/+15
|
* add Home dashboard and repository build status indicatorsChristian Cleberg2026-03-184-1/+241
|
* fix git repository settings updates for empty reposChristian Cleberg2026-03-181-12/+62
|
* cache repository search results and gate remote refreshesChristian Cleberg2026-03-181-11/+55
|
* lazily load file blobs from repository tree viewsChristian Cleberg2026-03-182-11/+15
|
* harden README web rendering and sanitize untrusted linksChristian Cleberg2026-03-181-31/+110
|
* v1.0Christian Cleberg2026-03-1722-202/+5729
|
* create privacy policyChristian Cleberg2026-03-174-0/+1056