You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit accc9de
Browse filesBrowse the repository at this point in the historyBrowse files
feat: the directory hosts webrings (OpenWebring), one ring per topic (#196)
rssamplifier.com is the first OpenWebring host (logicsrc.com/openwebring):
a ring is an ordered, circular list of member sites, and every member
carries its own word on who makes it, human, ai or both, read from the
member's /.well-known/openwebring.json and never verified.
- rings + ring_members (explicit position: a topic's feeds are re-derived
every crawl, so ring order must be its own column; new members append).
- /.well-known/openwebring.json (a route: rings are data), /ring index,
/ring/<slug> page with the join snippet, /ring/<slug>/openwebring.json,
/ring/<slug>/opml, hops /next /previous /prev /random with ?from= and
every shape older rings use (?host=, ?via=, ?url=, /<member>/next, the
bare Referer); unknown from is random; wrap; skip inactive; 302 no-store.
- Verification in the poller (RING_* env): a bounded batch per tick, one
stranger's front page at a time, any link to the ring counts, the member's
descriptor read for made_by and rings[]; inactive, never removed. An
on-demand /ring/<slug>/check behind the page gate.
- Hops exempt from the proxy throttle (a refused hop is a broken link on
someone else's site), counted like everything else.
- Owner override PUT /api/rings/<slug>/members/<member>; OpenAccess scope
openwebring:edit; /api/rings, /api/rings/<slug>; MCP list_rings,
get_ring, ring_next; nav, sitemap, seed script.
- linksBack/fetchPage moved to @rssamplifier/feed (linksTo, fetchPage) so
the poller and the web app run one scan.
Claude-Session: https://claude.ai/code/session_01XYae2mH3khdwiXUVzcVMDw
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: apps/web/public/.well-known/openaccess.json
+2-1Lines changed: 2 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,8 @@
19
19
]
20
20
},
21
21
"scopes": {
22
-
"openprofile:edit": "Correct an author's OpenProfile.md you have claimed: PUT /api/authors/{slug}/openprofile (text/markdown, the whole file, or a JSON patch), POST /api/authors/{slug}/claim. The grant's principal is recorded as the owner; a claim is verified by the address the author published or by their site linking back."
22
+
"openprofile:edit": "Correct an author's OpenProfile.md you have claimed: PUT /api/authors/{slug}/openprofile (text/markdown, the whole file, or a JSON patch), POST /api/authors/{slug}/claim. The grant's principal is recorded as the owner; a claim is verified by the address the author published or by their site linking back.",
23
+
"openwebring:edit": "State who makes a site of yours that is in one of this host's webrings: PUT /api/rings/{ring}/members/{slug} with a JSON body { made_by: human | ai | both | null, disclosure }. Recorded as the owner's word, which a later read of the site's own /.well-known/openwebring.json never overwrites."
0 commit comments