<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git/Hutch, branch v2.7.0</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v2.7.0</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v2.7.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-04-02T03:03:14+00:00</updated>
<entry>
<title>Add tracker management (delete/update, ACLs, labels)</title>
<updated>2026-04-02T03:03:14+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T03:03:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=902055d5eaa7f5512b76e22f57df3939f956181f'/>
<id>urn:sha1:902055d5eaa7f5512b76e22f57df3939f956181f</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>Fix several bugs ahead of 2.6.1</title>
<updated>2026-04-01T19:04:27+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-01T19:04:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=209155dc431cf70d9c8dba20625bab7e3b1a5085'/>
<id>urn:sha1:209155dc431cf70d9c8dba20625bab7e3b1a5085</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Rewrite file viewer with pinned gutter, syntax highlighting, and toolbar</title>
<updated>2026-04-01T18:50:09+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-01T18:50:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=e84e5543be9be548784859f4b082b9d7a3122f15'/>
<id>urn:sha1:e84e5543be9be548784859f4b082b9d7a3122f15</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>fix: fixed inbox's inconsistent UX and adds a Mark All Read button</title>
<updated>2026-04-01T17:15:23+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-01T17:15:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=109b0ea7e859de2d8b5a4dc22bf0472fd3b08eaa'/>
<id>urn:sha1:109b0ea7e859de2d8b5a4dc22bf0472fd3b08eaa</id>
<content type='text'>
Fixes: https://todo.sr.ht/~ccleberg/Hutch/10
</content>
</entry>
<entry>
<title>fix: ensure projects in Home tab are sorted by last updated date</title>
<updated>2026-04-01T16:52:40+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-01T16:52:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=c22287d5e256f5b23528114c5efec63069f9c2b5'/>
<id>urn:sha1:c22287d5e256f5b23528114c5efec63069f9c2b5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: add tildes to username rows in account-switcher</title>
<updated>2026-04-01T16:44:19+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-01T16:44:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=5845fc53b9c81532e552dc3512347e20de0f2090'/>
<id>urn:sha1:5845fc53b9c81532e552dc3512347e20de0f2090</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add multi-account support</title>
<updated>2026-04-01T16:37:35+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-01T16:36:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=7b59ee6098c4649a51cafe4b58e3a675567e2c08'/>
<id>urn:sha1:7b59ee6098c4649a51cafe4b58e3a675567e2c08</id>
<content type='text'>
Implements: https://todo.sr.ht/~ccleberg/Hutch/11
</content>
</entry>
<entry>
<title>Fix nonisolated table alignment lookup in Readme View</title>
<updated>2026-03-30T22:20:15+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-03-30T22:20:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=d897109d0d23560bf19ece6ea1122b1229f3b164'/>
<id>urn:sha1:d897109d0d23560bf19ece6ea1122b1229f3b164</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(org): improve org-mode rendering support</title>
<updated>2026-03-30T22:10:58+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-03-30T22:10:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=da81b67dc8b74fdef6691d79ba06b28712c8b046'/>
<id>urn:sha1:da81b67dc8b74fdef6691d79ba06b28712c8b046</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(markdown): finalize migration to apple/swift-markdown renderer</title>
<updated>2026-03-30T21:44:49+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-03-30T21:44:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=02fbc13ddb5b66ecf1d0dff3e7173a845984e006'/>
<id>urn:sha1:02fbc13ddb5b66ecf1d0dff3e7173a845984e006</id>
<content type='text'>
</content>
</entry>
</feed>
