<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git/Hutch/App/AppStorageKeys.swift, branch v2.11.0</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v2.11.0</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v2.11.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-04-12T00:47:40+00:00</updated>
<entry>
<title>feat: add contribution calendar to user profiles</title>
<updated>2026-04-12T00:47:40+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-12T00:47:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=61164b6dd8343c8699d091dd5fccc55beb0b90b9'/>
<id>urn:sha1:61164b6dd8343c8699d091dd5fccc55beb0b90b9</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Implement search history for Look Up page</title>
<updated>2026-04-02T05:27:34+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-02T05:27:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=f820109a956c627e510880a7cac88cb35032203b'/>
<id>urn:sha1:f820109a956c627e510880a7cac88cb35032203b</id>
<content type='text'>
</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>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>feat: add privacy policy link and global swipe actions toggle to Settings</title>
<updated>2026-03-23T01:40:50+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-03-23T01:40:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=866f9517dba3c878197b0290dd8b4d1becb153c3'/>
<id>urn:sha1:866f9517dba3c878197b0290dd8b4d1becb153c3</id>
<content type='text'>
</content>
</entry>
</feed>
