<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git, branch v2.8.0</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v2.8.0</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v2.8.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-04-02T04:25:54+00:00</updated>
<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 API docs</title>
<updated>2026-04-02T04:09:50+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T04:09:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=7fe5ec3f69211712d39f3a1dff090119340e05d9'/>
<id>urn:sha1:7fe5ec3f69211712d39f3a1dff090119340e05d9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add API docs</title>
<updated>2026-04-02T04:08:51+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T04:08:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=729539dd727d2dc66ed8931b8192ecb43c781611'/>
<id>urn:sha1:729539dd727d2dc66ed8931b8192ecb43c781611</id>
<content type='text'>
</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>remove TESTING.md</title>
<updated>2026-04-02T03:12:01+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T03:12:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=1ac3401b031c492d8a067e2149df1df5c0f23e9a'/>
<id>urn:sha1:1ac3401b031c492d8a067e2149df1df5c0f23e9a</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>
