<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git, branch v3.8.1</title>
<subtitle>ios client for sourcehut. swiftui.
</subtitle>
<id>http://git.krz.sh/krz/hutch.git/atom?h=v3.8.1</id>
<link rel='self' href='http://git.krz.sh/krz/hutch.git/atom?h=v3.8.1'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/'/>
<updated>2026-07-16T16:50:53+00:00</updated>
<entry>
<title>Merge pull request #8 from zerolabsco/phase-3-sonarcloud-housekeeping</title>
<updated>2026-07-16T16:50:53+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T16:50:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=0b6819d2d08b552e62fd236614d4c3c86a13394b'/>
<id>urn:sha1:0b6819d2d08b552e62fd236614d4c3c86a13394b</id>
<content type='text'>
v3.8.1: SonarCloud triage, forceRefresh fix, housekeeping</content>
</entry>
<entry>
<title>Merge pull request #10 from zerolabsco/ci-no-post-merge-run</title>
<updated>2026-07-16T16:47:25+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T16:47:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=2b913e1b727429a3a6bc7eb023003ef2815919ae'/>
<id>urn:sha1:2b913e1b727429a3a6bc7eb023003ef2815919ae</id>
<content type='text'>
ci: drop the redundant post-merge test run</content>
</entry>
<entry>
<title>ci: drop the redundant post-merge test run</title>
<updated>2026-07-16T16:39:43+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T16:39:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=db8539798766a6d238e7c134458f692c394e1668'/>
<id>urn:sha1:db8539798766a6d238e7c134458f692c394e1668</id>
<content type='text'>
The suite ran on push to main and on pull_request. Since merges here are
merge commits (not squash) and pull_request tests the merge result, a
green PR already validates the exact tree that lands on main — the push
run just re-confirmed it on a macOS runner. Trigger on pull_request (and
workflow_dispatch) only.
</content>
</entry>
<entry>
<title>chore: track the two HutchIntents TODOs in the roadmap (S1135)</title>
<updated>2026-07-16T16:17:45+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T16:17:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=f3c70e04148c57dcafead89b4e02b83e5f5635f8'/>
<id>urn:sha1:f3c70e04148c57dcafead89b4e02b83e5f5635f8</id>
<content type='text'>
SearchHutchIntent's route-to-Lookup stopgap and the absent
OpenSavedSearchIntent are both gated on a global search/persistence
layer Hutch lacks. Promote both to ROADMAP § "App Intent gaps" and
replace the inline TODOs with plain references, clearing those two
S1135 issues without losing the design intent.
</content>
</entry>
<entry>
<title>fix: move the S1186 empty-block comments inside the braces</title>
<updated>2026-07-16T16:13:13+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T16:13:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=d73c6ac381baac0ae8b0d5dfc551165591115905'/>
<id>urn:sha1:d73c6ac381baac0ae8b0d5dfc551165591115905</id>
<content type='text'>
Trailing // comments after {} left the block lexically empty, so
SonarCloud kept flagging stopLoading (and would have re-flagged the two
Cancel buttons). S1186 wants a *nested* comment; use /* ... */ inside.
</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: clear the actionable SonarCloud code smells</title>
<updated>2026-07-16T15:18:40+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T15:18:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=e93972f39150e5e590e49aaf46a369c463277c30'/>
<id>urn:sha1:e93972f39150e5e590e49aaf46a369c463277c30</id>
<content type='text'>
- S1871: merge the identical .home / .recentActivity deep-link cases in
  RootView — recent activity is a section of Home, not its own screen.
- S1186: comment the two intentionally-empty Cancel buttons
  (PatchsetDetailView, TicketDetailView) and the empty URLProtocol
  stopLoading override in APICacheTests.
- S108: comment the expected-miss catch block in APICacheTests.
- S1172: rename the unused url parameter in mimeType(for:) to _.
- S4624: extract the nested template literal in the deep-link builders
  (background.js, content.js) to a pathSegment variable.

Left as Won't Fix, with reasons: the 35 hardcoded-URI warnings (a
one-forge client and its literal-URL tests), executeCached's 8 params
(38 call sites, no benefit), the forceRefresh S1172 pair (fixed as a
real bug instead), S1481 on ArtifactsView (false positive — $vm.error
is used), and S7785 (top-level await would break a classic content
script).
</content>
</entry>
<entry>
<title>chore: move AccountSession.swift out of the stray nested Hutch/Hutch dir</title>
<updated>2026-07-16T15:18:27+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T15:18:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=9834b780b24a1dd617fa761155712920159f3d8d'/>
<id>urn:sha1:9834b780b24a1dd617fa761155712920159f3d8d</id>
<content type='text'>
It sat at Hutch/Hutch/App/AccountSession.swift, one level too deep. The
target is a PBXFileSystemSynchronizedRootGroup rooted at Hutch/, so the
file compiled by path with no pbxproj reference; moving it beside the
rest of App/ needs no project-file change. Also removed the emptied
Hutch/Hutch tree and the stray empty Hutch/HutchTests dir.
</content>
</entry>
<entry>
<title>fix: honor forceRefresh for projects and system status on the dashboard</title>
<updated>2026-07-16T15:13:46+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T15:13:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=65412ee9818bf251fd5caac231746b04c7eca23f'/>
<id>urn:sha1:65412ee9818bf251fd5caac231746b04c7eca23f</id>
<content type='text'>
loadDashboard(forceRefresh:) fanned the flag out to five loaders, but
loadProjects and loadSystemStatusSnapshot dropped it: they called
fetchProjects() and snapshotResult() with no policy, so pull-to-refresh
returned cached projects and status while the other three sections
refreshed. SonarCloud flagged both params as unused (swift:S1172).

Thread forceRefresh through ProjectService.fetchProjects into the page
policy (refreshIgnoringCache when forced), and pass it to
snapshotResult, which already accepted it. ProjectsListView carried the
same latent bug via its own .refreshable — fixed there too now that
fetchProjects can force.
</content>
</entry>
<entry>
<title>docs: bucket the Phase 3 backlog into semantic versions</title>
<updated>2026-07-16T15:04:33+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-16T15:04:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=6a26c6de827e56a57d9a8c600b26354e280df383'/>
<id>urn:sha1:6a26c6de827e56a57d9a8c600b26354e280df383</id>
<content type='text'>
</content>
</entry>
</feed>
