plans: names cache only profiles that were read

This commit is contained in:
shum committed 2026-10-23 04:38:12 +00:00
1 parent b82a361e7d
commit 01530dc9dc
1 file changed
+1 -1
+1 -1
View File
@@ -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