<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git/Hutch.xcodeproj, branch v3.9.0</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v3.9.0</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v3.9.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-08-07T09:27:57+00:00</updated>
<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>
<entry>
<title>chore: record the SonarCloud + housekeeping pass, bump to 3.8.1</title>
<updated>2026-07-16T16:07:17+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T16:07:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=3854761b48d893ac4b5d8d9c257dd3cbdc7214d6'/>
<id>urn:sha1:3854761b48d893ac4b5d8d9c257dd3cbdc7214d6</id>
<content type='text'>
Update the roadmap's SonarCloud section to the live 53-issue / 10-rule
reality and mark what v3.8.1 fixed, silenced-as-bug, and left Won't Fix.
Bump MARKETING_VERSION on the app, widget, and Safari extension.
</content>
</entry>
<entry>
<title>chore: bump to 3.8.0 and record Phase 3 API features</title>
<updated>2026-07-16T05:03:06+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T05:03:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=76cb006b87d30928ec23a3c4bf95bd145aad8e9c'/>
<id>urn:sha1:76cb006b87d30928ec23a3c4bf95bd145aad8e9c</id>
<content type='text'>
MARKETING_VERSION 3.7.0 -&gt; 3.8.0, build 89 -&gt; 90.

SCOPE.md gains the items that did not survive contact with the API: archiveMessage
and mailingListSubscribe are blocked, while webhooks, shareSecret, and build
groups are reachable but declined on judgement. The reasoning is recorded so
they do not get re-proposed as gaps.

ROADMAP.md notes that Phase 3 is several releases rather than one, with the
measured size of each.
</content>
</entry>
</feed>
