diff --git a/TODO.md b/TODO.md index 8daca71..acfa7b7 100644 --- a/TODO.md +++ b/TODO.md @@ -2397,6 +2397,18 @@ and borrows `pr`'s conventions rather than inventing new ones beside them. onto jacquard's resolver — which also validates that the document's `id` matches the DID asked for, and which nothing here does — is the next step and wants its own change +- [x] One DID-to-handle resolver, `clients::atproto::handles`, in front of a + memo that lives exactly as long as the process. Four listings had their + own `buffer_unordered` over `handle_from_did_doc` — `pr list`, `issue + list`, `search` and a `view`'s comment thread — differing in the parts + nobody meant them to differ in and agreeing that each would re-fetch a + document the same invocation had already read. What is cached is only + DID to handle, only successes, only up to a cap, and never to disk: a + handle is a hint that can be re-registered by somebody else, so seconds + is the whole safe window. The other direction is not cached at all — + `resolve_handle` decides which account atgc acts as, and `repo + checkout` keeps asking the document itself because that handle is + written into a checkout's config - [x] The module layout is enforced rather than described. Everything in `cmd/` is now `pub(super)` (119), `pub(in crate::cmd)` (41) or — for the entry points `main.rs` dispatches through, the clap types