<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git/Hutch/Views, branch v2.9.0</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v2.9.0</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v2.9.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-04-02T05:17:30+00:00</updated>
<entry>
<title>feat: browse user repositories and trackers from profile</title>
<updated>2026-04-02T05:17:30+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T05:17:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=7f79cadf99ecf014834855e2e4a5c7d60dd709ac'/>
<id>urn:sha1:7f79cadf99ecf014834855e2e4a5c7d60dd709ac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: expand user profile in Look Up</title>
<updated>2026-04-02T04:54:01+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T04:54:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=fb103fbabd9865f711f5052f63816b35fc259585'/>
<id>urn:sha1:fb103fbabd9865f711f5052f63816b35fc259585</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: show commit dates in Refs tab</title>
<updated>2026-04-02T04:37:12+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T04:37:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=0bef9acc515cfcb4ac6e2530cd34cbdbc47c2c1d'/>
<id>urn:sha1:0bef9acc515cfcb4ac6e2530cd34cbdbc47c2c1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add Look Up screen and restrict management actions to owners</title>
<updated>2026-04-02T04:25:54+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T04:25:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=a83893afa086f0050c825144fa818024db4df056'/>
<id>urn:sha1:a83893afa086f0050c825144fa818024db4df056</id>
<content type='text'>
Implements: https://todo.sr.ht/~ccleberg/Hutch/4
</content>
</entry>
<entry>
<title>add confirmation to repo rename</title>
<updated>2026-04-02T03:51:32+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T03:51:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=6e353462032937548e9661b85e97693d75e4f0bf'/>
<id>urn:sha1:6e353462032937548e9661b85e97693d75e4f0bf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix copy throughout repo</title>
<updated>2026-04-02T03:29:51+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T03:29:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=7cc3e14f235a3c3e6719271116e49865c82c15da'/>
<id>urn:sha1:7cc3e14f235a3c3e6719271116e49865c82c15da</id>
<content type='text'>
</content>
</entry>
<entry>
<title>standardize nav labels</title>
<updated>2026-04-02T03:20:43+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T03:20:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=eeb12de93c4f6fcc5e2f2d58c2061ce84f839cf7'/>
<id>urn:sha1:eeb12de93c4f6fcc5e2f2d58c2061ce84f839cf7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>reverse order of swipe actions for user acls in trackers</title>
<updated>2026-04-02T03:18:48+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T03:18:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=6ce067249e6665151a4e5b66807673f5f1d9a1c4'/>
<id>urn:sha1:6ce067249e6665151a4e5b66807673f5f1d9a1c4</id>
<content type='text'>
</content>
</entry>
<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>
</feed>
