<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hutch.git/HutchTests/ProjectFormTests.swift, 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-07T09:12:50+00:00</updated>
<entry>
<title>Projects: discovery, create, edit, manage linked resources (#12, #13, #14, #15)</title>
<updated>2026-08-07T09:12:50+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-07T09:12:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/hutch.git/commit/?id=1f8f651a9c2ac2d6be231ff9f71ee3bcce9936d8'/>
<id>urn:sha1:1f8f651a9c2ac2d6be231ff9f71ee3bcce9936d8</id>
<content type='text'>
hub.sr.ht's GraphQL now exposes the project write API (create/update/
link/unlink) and a public `projects` discovery query, so these
previously-blocked issues can be built.

ProjectService gains: fetchPublicProjects (#12); createProject (#13);
updateProject with ProjectInput (#14); link/unlink for sources, trackers,
and mailing lists plus linkable-resource candidate fetches (#15); and hub
cache invalidation after every mutation.

UI: a Discover browser and a create form reached from the projects list;
an Edit form and a Manage Resources sheet on project detail, gated to
projects the user owns. Mutations degrade to a visible error if a field
isn't live yet.

Built against the master schema; live deployment on sr.ht/query is not yet
confirmed (introspection there requires a token).
</content>
</entry>
</feed>
