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 stale smoke test assertions

update expected stats heading (5 min not hourly), allow labels/createdAt/
associated fields in actor response shape (intentional additions).

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

+10 -5
+10 -5
scripts/smoke.py
··· 153 153 check("stats returns 200", resp.status == 200) 154 154 check("stats content-type is html", "text/html" in ct, f"got '{ct}'") 155 155 check("stats contains actors indexed", "actors indexed" in body) 156 - check("stats contains sparkline heading", "searches / hour" in body) 156 + check("stats contains sparkline heading", "searches / 5 min" in body) 157 157 check("stats has home link", 'href="/"' in body) 158 158 check("stats shows hidden count", "hidden by moderation" in body) 159 159 except urllib.error.HTTPError as e: ··· 203 203 return 204 204 205 205 actors = data.get("actors", []) 206 - has_labels = any("labels" in a for a in actors) 207 - check("no labels field leaked in results", not has_labels) 208 206 209 - allowed_keys = {"did", "handle", "displayName", "avatar"} 207 + # labels, createdAt, associated are intentional fields returned for client rendering 208 + allowed_keys = {"did", "handle", "displayName", "avatar", "labels", "createdAt", "associated"} 210 209 extra_keys: set[str] = set() 211 210 for a in actors: 212 211 extra_keys |= set(a.keys()) - allowed_keys 213 - check("actor objects have clean shape", len(extra_keys) == 0, f"extra keys: {extra_keys}" if extra_keys else "") 212 + check("actor objects have expected shape", len(extra_keys) == 0, f"extra keys: {extra_keys}" if extra_keys else "") 213 + 214 + # verify labels is always an array when present 215 + for a in actors: 216 + if "labels" in a: 217 + check("labels is array", isinstance(a["labels"], list), f"got {type(a['labels']).__name__}") 218 + break 214 219 215 220 # !no-unauthenticated actors should be VISIBLE (it's about content, not identity) 216 221 print("\n--- !no-unauthenticated inclusion ---")