summaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-03-18 18:42:15 -0500
committerChristian Cleberg <[email protected]>2026-03-18 18:42:15 -0500
commit58b1477153186d9fa55ceb236330d1f66418be8c (patch)
tree4b38d00f8af1cdf8a34cc60f9bb60dcb71d68c20 /TODO.md
parent3b368f96acd0c412709c754b00e8379aebd6665b (diff)
downloadhutch-58b1477153186d9fa55ceb236330d1f66418be8c.tar.gz
hutch-58b1477153186d9fa55ceb236330d1f66418be8c.tar.bz2
hutch-58b1477153186d9fa55ceb236330d1f66418be8c.zip
revamp markdown project files
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md121
1 files changed, 60 insertions, 61 deletions
diff --git a/TODO.md b/TODO.md
index 946d5f1..65a7617 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,68 +1,67 @@
-# 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.
+# TODO
-## Out of Scope
+---
+
+## TODO List
+
+### Core Functionality
+
+- Implement manual `~owner/repo` lookup flow for opening git.sr.ht or hg.sr.ht
+ repositories directly
+
+---
+
+### paste.sr.ht
+
+- **Endpoint:** [https://paste.sr.ht/graphql](https://paste.sr.ht/graphql)
+- **Scope:** `PASTES:RO` (browsing), `PASTES:RW` (creation/editing)
+
+**Tasks:**
+
+- Show the authenticated user’s pastes
+- Allow viewing individual pastes
+- Support creating new pastes
+
+---
-- **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.
+### lists.sr.ht
-- **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.
+- **Endpoint:** [https://lists.sr.ht/graphql](https://lists.sr.ht/graphql)
+- **Scope:** `LISTS:RO`
-- **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.
+**Tasks:**
-- **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.
+- Show the authenticated user’s mailing lists
+- Allow browsing email threads
+- Display individual emails as plain text
-- **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.
+---
+
+### pages.sr.ht
+
+- **Endpoint:** [https://pages.sr.ht/graphql](https://pages.sr.ht/graphql)
+
+**Tasks:**
+
+- Show the authenticated user’s published sites
+- Display site metadata, publishing status, and access control where supported
+- For managing Pages sites, not browsing public project discovery
+
+---
+
+### Donation Page / In-App Purchases
+
+- Add a donation/support page once the App Store / StoreKit setup is ready
+
+---
+
+## Out of Scope
-- **Revoke personal access tokens**: The revokePersonalAccessToken mutation is
- marked @internal in the meta.sr.ht schema and is not accessible to external
- clients.
+- Universal links (requires Sourcehut to host an apple-app-site-association
+ file)
+- Push notifications for builds and tickets (requires a backend relay server)
+- Contribution activity / GitHub-style heatmap (no aggregate endpoint,
+ impractical to compute)
+- Explore / search (hub.sr.ht) (no public discovery API)
+- Pronouns on profile (not in GraphQL schema)
+- Revoke personal access tokens (`@internal` in schema, inaccessible)