From 01530dc9dc74a5d5c9d2e59fdb8eb64016527a71 Mon Sep 17 00:00:00 2001 From: shum Date: Fri, 23 Oct 2026 04:38:12 +0000 Subject: [PATCH] plans: names cache only profiles that were read --- plans/names-codes/2026-10-21-store-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/names-codes/2026-10-21-store-api.md b/plans/names-codes/2026-10-21-store-api.md index 728897f615..3f1d054862 100644 --- a/plans/names-codes/2026-10-21-store-api.md +++ b/plans/names-codes/2026-10-21-store-api.md @@ -134,7 +134,7 @@ Each limit counts requests per client per minute. It is taken after the route an | create (existing) | 5 | `POST /api/invoice`, `POST /api/invoice/:id/cancel`, `/name`, `/spend`, `/retry` | Beyond these: -- **Link fetches** have two service-wide bounds, one for search answers (`searchFetchSlots`, 4 at a time) and one for previews (`previewFetchSlots`, 2 at a time), so previews cannot starve search. Each fetch has a 3-second timeout (`fetchTimeout`) and never waits for a slot longer than that: it gives up, and its profile is `unread` (section 2). Results are cached 10 minutes per link. A search reads the chain within 10 s, then its profiles within one more fetch timeout, so it answers within about 13 s. +- **Link fetches** have two service-wide bounds, one for search answers (`searchFetchSlots`, 4 at a time) and one for previews (`previewFetchSlots`, 2 at a time), so previews cannot starve search. Each fetch has a 3-second timeout (`fetchTimeout`) and never waits for a slot longer than that: it gives up, and its profile is `unread` (section 2). Profiles that were read are cached 10 minutes per link; an `unread` link is fetched again on the next request. A search reads the chain within 10 s, then its profiles within one more fetch timeout, so it answers within about 13 s. - **Record edits** have a per-name cap of 10 relayed edits per hour (section 10). Refused requests do not count. ## 2. Search