summaryrefslogtreecommitdiff
path: root/TODO.md
blob: 946d5f16681720aad41b394e8abcc17f50c698a2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Hutch TODO

## Claude Code, Codex, & Mistral Prompting Notes

- **Always start a new session with the project context block** (see
  hutch-ios-prompts.md prompt 0) so the agent knows the API conventions.
- **Keep prompts short and specific.** Long prompts waste context. One bug or
  feature per prompt. Paste console output and error messages directly instead
  of describing them.
- **When a fix fails twice, ask the agent to print raw state first** (raw API
  response, current file contents, exact variable values) before attempting
  another fix. Blind retries consume context without progress.
- **Never paste full file contents into the prompt.** Ask the agent to read
  the file itself using its file tools.
- **Batch only tightly related changes.** Unrelated changes in one prompt
  increase the chance of partial failure and wasted context on rollback.

## Features

- **Exact repository lookup**: Since public repository discovery/search is not
  exposed in the public sr.ht API, add a manual `~owner/repo` lookup flow that
  can open git.sr.ht or hg.sr.ht repositories directly.

- **paste.sr.ht tab**: Paste support. Endpoint:
  https://paste.sr.ht/graphql. Show the authenticated user's pastes, allow
  viewing individual pastes, and support creating new pastes. Required scope:
  PASTES:RO for browsing, PASTES:RW for creation/editing.

- **lists.sr.ht tab**: Mailing list support. Endpoint:
  https://lists.sr.ht/graphql. Show the authenticated user's mailing lists,
  allow browsing email threads, and display individual emails as plain text.
  Required scope: LISTS:RO.

- **pages.sr.ht tab**: Site management support. Endpoint:
  https://pages.sr.ht/graphql. Show the authenticated user's published sites,
  site metadata, publishing status, and access control where supported. This is
  for managing Pages sites, not browsing public project discovery.

- **Donation page / IAP**: Add a donation/support page once the App Store /
  StoreKit setup is ready.

## Out of Scope

- **Universal links** (e.g. tapping a git.sr.ht URL in Safari opens Hutch):
  Requires Sourcehut to host an apple-app-site-association file on their
  servers. This is outside our control. The hutch:// custom URL scheme works as
  a fallback for links we generate ourselves.

- **Push notifications for builds and tickets**: The sr.ht API only supports
  server-side webhooks (HTTP POST to a URL you control). Delivering push
  notifications to iOS would require a backend relay server to receive webhooks
  and forward them via APNs. Out of scope for a personal app with no backend.

- **Contribution activity / GitHub-style heatmap**: No aggregate contributions
  endpoint exists in the sr.ht GraphQL API. Computing this would require
  paginating every repository's full commit log and filtering by author --
  extremely slow and not practical.

- **Explore / search (hub.sr.ht)**: The public hub.sr.ht GraphQL API does not
  expose repository discovery/search or a projects feed comparable to
  https://sr.ht/projects.

- **Pronouns on profile**: Not exposed in the meta.sr.ht GraphQL schema. The
  field exists in the web UI but is not available to external API clients.

- **Revoke personal access tokens**: The revokePersonalAccessToken mutation is
  marked @internal in the meta.sr.ht schema and is not accessible to external
  clients.