# Changelog of Bluesky Community Finder: Starter Packs & Feeds (`datagrit/bluesky-community-finder`) Actor

- **URL**: https://apify.com/datagrit/bluesky-community-finder/changelog.md
- **Full Actor documentation**: https://apify.com/datagrit/bluesky-community-finder.md

## Changelog

### 0.3

- An HTTP 400 or 404 on page 2 or later of a listing (for example an expired cursor) now ends pagination for that search term or handle only, keeps the rows already delivered and is counted in the status message (`Listings that ended early`). Other statuses, such as 403 or 5xx, still fail the run.
- README: the Pricing section no longer mentions a start fee or a USD amount, results are listed before input, and a Related Actors section was added.
- Verified live with three inputs: typical (starter packs for "journalists", 20 rows), edge (feeds of `bsky.app` with at least 1000 likes, 7 rows), no results (unmatched search, one unbilled status row). The rejected-cursor case is covered by a fixture test, because the live API does not produce it on demand.

### 0.2

- A removed or hidden member list (HTTP 400/404 from Bluesky) is now skipped and counted in the status message instead of ending the run after rows were already billed; the run fails only when no member list can be read at all.
- A rejected batch of member profiles leaves those members without follower statistics and is counted; it no longer ends the run.
- "None of the handles exist" is reported only when the listing request itself for that handle is rejected, not when a sub-request of one of its communities fails.
- Listing fields that filters and counts depend on (`joinedAllTimeCount`, `likeCount`, `listItemCount`, publication date) are counted in the status message; if none of at least three listed records carries one, the run fails instead of reporting "narrow your filters".
- Member records that arrive in an unexpected shape are counted separately from communities; if none of at least three has the expected shape, the run fails.
- An empty page that still carries a cursor no longer ends pagination early; a repeated cursor does.
- Corrected the price note below: $0.005 per result is above the post and profile scrapers ($0.001 to $0.003) because every row is a catalog record with its own sub-requests (member counts, feed health), and feeds and lists have no competing Actor.

### 0.1

- Initial release: starter packs, feeds and lists as one catalog, with filters, feed health check, members with follower counts, and "only new since last run".
- Verified against the live Bluesky API with three inputs:
  - Typical: starter packs for "journalists", 20 results in about 12 s, every row with join and member counts.
  - Edge: feeds for "news" with only online feeds and at least 1000 likes; lists of `bsky.app` with `listPurpose: curate` and `minMembers: 10`.
  - No results: an unmatched search returns one unbilled status row with `found: false`.
- Measured cost about $0.017 per 1000 results at 0.5 GB; price $0.005 per result.
