<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git/Hutch.xcodeproj/project.pbxproj, branch v3.11.0</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v3.11.0</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v3.11.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-08-07T21:51:32+00:00</updated>
<entry>
<title>Mailing list subscribe/unsubscribe toggle (v3.11.0)</title>
<updated>2026-08-07T21:51:32+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-07T21:51:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=039f06095cb3df072968be2f19f45bace605baeb'/>
<id>urn:sha1:039f06095cb3df072968be2f19f45bace605baeb</id>
<content type='text'>
Add a subscribe/unsubscribe toggle to the mailing-list detail toolbar
(MailingListDetailView, which backs Lookup results and ProjectMailingListView).
Hidden for lists you own and while state is unknown.

State comes from membership in the subscriptions query, not
MailingList.subscription — live testing showed that field returns null even
right after a successful mailingListSubscribe, so it is a trap (documented in
ROADMAP API traps). The numeric listID the mutations require is read from
list(rid:){ id }. Verified live against ~hutch.

Bumps to 3.11.0 (build 96); roadmap/SCOPE corrected.
</content>
</entry>
<entry>
<title>Deploy keys: manage git.sr.ht repository deploy keys (v3.10.0)</title>
<updated>2026-08-07T21:29:04+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-07T21:29:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=07156180789b02d4f22a87f22a37c912e7543190'/>
<id>urn:sha1:07156180789b02d4f22a87f22a37c912e7543190</id>
<content type='text'>
Wire git.sr.ht createDeployKey / deleteDeployKey and Repository.deployKeys
into an owner-only Deploy Keys sheet in the repository actions menu, next to
ACLs: list keys (fingerprint, comment, access), add an SSH public key with
RO/RW access, and delete behind a confirmation.

Verified live against the ~hutch account. The createDeployKey response
returns an empty access value, so create selects only rid and the list is
reloaded rather than decoding the partial key.

Bumps to 3.10.0 (build 95); roadmap marks deploy keys shipped.
</content>
</entry>
<entry>
<title>Bump to 3.9.0; reflect shipped work in roadmap</title>
<updated>2026-08-07T09:27:57+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-07T09:27:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=ae9e80f963dca809a4e112dc5f5eb4806d331c9e'/>
<id>urn:sha1:ae9e80f963dca809a4e112dc5f5eb4806d331c9e</id>
<content type='text'>
Cut 3.9.0 (build 94), bundling this session's features. Update ROADMAP.txt:
mark hub.sr.ht project writes + discovery (#12-#15) done, correct the Q2
ingest note and App Intent gaps, and reconcile the release plan (3.9.0 is
the shipped cut; ingest/deploy keys move to 3.10.0).
</content>
</entry>
<entry>
<title>Add multi-language syntax highlighting (#16)</title>
<updated>2026-08-07T07:45:31+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-07T07:45:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=b410fd16b76146f4116538c5b82330818dd47da9'/>
<id>urn:sha1:b410fd16b76146f4116538c5b82330818dd47da9</id>
<content type='text'>
Splash (Swift-only, since removed) left code rendering unhighlighted
everywhere. Add Highlightr (highlight.js) behind a small SyntaxHighlighter
service and use it on both surfaces:

- Native file viewer: highlight NSAttributedString by language inferred
  from the filename, picking a light/dark theme from the trait style and
  re-highlighting on style changes. Falls back to plain text for unknown
  languages or very large files.
- Markdown/org code blocks in the WKWebView (READMEs, tickets, comments):
  the web view disables JavaScript, so highlight server-side into inline
  color-styled spans. The color scheme is now part of the render/cache
  key since colors are baked into the HTML.

Covered by unit tests for language mapping and highlighted output.
</content>
</entry>
<entry>
<title>Fix bundled resource refs after doc rename to .nfo/.txt</title>
<updated>2026-08-07T06:44:01+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-07T06:44:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=456e3e143d30175d41eaa1bd22bffa59231c8ec3'/>
<id>urn:sha1:456e3e143d30175d41eaa1bd22bffa59231c8ec3</id>
<content type='text'>
The doc-format conversion renamed README.md-&gt;README.nfo and
SECURITY.md-&gt;SECURITY.txt but left the Xcode resource references
pointing at the old filenames, breaking the app build (Ld: SECURITY.md
no such file). Point the references at the renamed files.
</content>
</entry>
<entry>
<title>Update SonarCloud project id, contact emails, and bump to 3.8.5 (93)</title>
<updated>2026-08-02T14:28:56+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T14:27:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=1156ab1b314b9b69e16fdc5fc9ff6eb3861b4588'/>
<id>urn:sha1:1156ab1b314b9b69e16fdc5fc9ff6eb3861b4588</id>
<content type='text'>
- Point README badges and ROADMAP query at the krazywarez_hutch SonarCloud project
- Change user-facing contact emails to root@krz.sh (README, SECURITY, About screen)
- Bump MARKETING_VERSION to 3.8.5 and CURRENT_PROJECT_VERSION to 93
</content>
</entry>
<entry>
<title>Bump marketing version to 3.8.4</title>
<updated>2026-08-02T14:18:46+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T14:13:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=5155f632e5a6af818cb4f7524459f98c2a7ceb4d'/>
<id>urn:sha1:5155f632e5a6af818cb4f7524459f98c2a7ceb4d</id>
<content type='text'>
The 3.8.3 train is closed for new submissions on App Store Connect.
</content>
</entry>
<entry>
<title>update stats endpoint</title>
<updated>2026-08-02T14:18:46+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T14:09:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=0bdd67fe559c79ae1f7041fa8e9f127a3f69b1ff'/>
<id>urn:sha1:0bdd67fe559c79ae1f7041fa8e9f127a3f69b1ff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove Splash syntax highlighter dependency</title>
<updated>2026-07-25T21:18:52+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T21:18:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=25a8b406de5f9e9612c83a348a8bb50f86967942'/>
<id>urn:sha1:25a8b406de5f9e9612c83a348a8bb50f86967942</id>
<content type='text'>
Splash only highlights Swift, leaving every other language unhighlighted.
Drop the dependency entirely and render file contents as plain text until a
broader-coverage highlighter is adopted.

- Remove `import Splash` and the Splash-backed theming in FileTreeView
- Simplify CodeSyntaxHighlighter to emit plain attributed text
- Remove the Splash SwiftPM package reference and product dependency

Refs https://github.com/zerolabsco/hutch/issues/16

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Move Home system status into a title-bar status badge</title>
<updated>2026-07-16T21:59:55+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T21:59:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=7b817a1d2aed0e8b89f36b410f2779f4a6b35407'/>
<id>urn:sha1:7b817a1d2aed0e8b89f36b410f2779f4a6b35407</id>
<content type='text'>
Replace the disruption-only banner on the Home tab with a persistent
circular status indicator in the navigation bar, next to the "Home"
title. The badge reflects the existing status logic — green/check when
operational, orange/exclamation on disruption, gray otherwise — and taps
through to System Status. SystemStatusSummaryRow is unchanged and still
used by the More tab.

Resolve the system-status result first in HomeViewModel.loadDashboard so
the badge settles from cache immediately instead of waiting on the
slower projects/jobs/tickets/inbox loads, which had left it spinning for
several seconds.

Bump MARKETING_VERSION to 3.8.2 and record it in ROADMAP.
</content>
</entry>
</feed>
