GET /xrpc/app.bsky.actor.searchActorsTypeahead typeahead.waow.tech
16
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix architecture.md: update moderation policy

!no-unauthenticated is not filtered — it applies to content, not
identity. only bluesky mod service labels (!hide, !takedown, spam)
hide actors. also removed stale ingester description about detecting
!no-unauthenticated self-labels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+9 -9
+9 -9
docs/architecture.md
··· 23 23 24 24 1. **ingester**: streams jetstream, buffers actor events, POSTs batches to 25 25 `/admin/ingest`. sends avatar CIDs (not full URLs — the CDN URL is 26 - deterministic from DID + CID). detects `!no-unauthenticated` self-labels 27 - and sets `hidden` flag. 26 + deterministic from DID + CID). 28 27 29 28 2. **backfill**: when a search has gaps (missing avatars, few results), the 30 29 worker calls bluesky's `searchActorsTypeahead` API and upserts results. ··· 64 63 65 64 ## moderation 66 65 67 - actors with certain labels are hidden from search results (`hidden = 1`): 66 + actors with certain labels from bluesky's moderation service 67 + (`did:plc:ar7c4by46qjdydhdevvrndac`) are hidden from search results 68 + (`hidden = 1`): `!hide`, `!takedown`, or `spam`. 68 69 69 - - bluesky moderation service (`did:plc:ar7c4by46qjdydhdevvrndac`) issued 70 - `!hide`, `!takedown`, or `spam` 71 - - any source (including self-labels): `!no-unauthenticated` 70 + `!no-unauthenticated` is intentionally **not** filtered — it applies to 71 + content, not identity. bluesky's own public typeahead API returns these 72 + accounts, and so do we. 72 73 73 - this is an unauthenticated service, so we respect user opt-outs. the ingester 74 - catches self-labels on ingest; the hourly cron refreshes moderation labels 75 - by walking the full index over multiple runs. 74 + the hourly cron refreshes moderation labels by walking the full index over 75 + multiple runs (1000 actors/run via `mod_cursor` in KV). 76 76 77 77 ## scripts 78 78