Full Following Scan (Pagination)
Previously only scanned the first 100 accounts you follow
Now scans ALL accounts using API pagination
Added loading message: "This may take a moment if you follow a lot of people..."
Pinned Post Fix
Fixed issue where pinned posts (which can be months old) were being treated as the user's most recent activity
Now sorts posts by timestamp to find the actual most recent post
Activity Indicator
Shows "Replied or recasted in last 3 days" badge for users who are still active but not posting original content
Fixed profile link to open in Warpcast's main window (not new tab)Empty Cast Filtering
Problem: Accounts with no fetchable cast text (showing as "") often have broken profiles that crash the SDK
Solution: Now filters out accounts where
lastCastis emptyException: If the cast is an image/video only (has embeds but no text), it shows "[Media post]" instead of being filtered out
Problem: The completion screen said "Unfollowed X accounts" based on how many cards you clicked "Next" on - confusing since Next doesn't actually unfollow anyone
Solution: Now compares your actual following count at scan start vs. completion
Captures your following count when you hit "Start Cleanup"
Re-fetches your following count when you finish reviewing
Shows the real difference: "You unfollowed X accounts"
Shows "Calculating unfollows..." while fetching
If you didn't unfollow anyone, shows "Review complete!" instead
Share text updated: Only mentions unfollows if you actually unfollowed someone
Farcaster SDK viewProfile Bug
Certain accounts (e.g., @popfi) cause the Farcaster SDK to crash when attempting to view their profile
The SDK enters a corrupted state and all subsequent profile views fail
Workaround: Skip these accounts using the "Next" button. If the app breaks, close and reopen it.
If anyone knows how to solve for these deleted accounts feel free to reach out
Farcaster mini apps run inside an iframe sandbox within the Warpcast app. To perform write actions (like following, unfollowing, posting, or liking), an app needs a signer - a cryptographic key that proves the user has authorized the app to act on their behalf.
There are two ways to get a signer:
Signer UUID from Neynar - This requires a full authentication flow where the user explicitly grants your app permission to perform actions on their account. It's designed for full-fledged apps, not lightweight mini apps.
Farcaster SDK Actions - The SDK provides actions like
viewProfile,openUrl,composeCastetc. However, there is nounfollowUseraction in the SDK. The SDK only exposes read operations and navigation - not social graph mutations.
Farcaster intentionally restricts write actions in mini apps for security reasons:
Prevents malicious apps from mass-unfollowing or spamming on behalf of users
Keeps the trust model simple - users know mini apps can't modify their account
Write actions should be explicit and visible in the main Warpcast UI
Since we can't programmatically unfollow, we use sdk.actions.viewProfile({ fid }) to:
Navigate the main Warpcast window to the user's profile
Keep the mini app open in the sidebar
Let the user manually tap the "Unfollow" button on the profile
This is the best UX we can achieve within the platform's constraints. The user still gets the value of discovering inactive accounts - they just have to tap one extra button to actually unfollow.
If Farcaster ever adds sdk.actions.unfollowUser() to the mini app SDK, we could:
Add a direct "Unfollow" button that works inline
Re-enable bulk unfollow functionality
Make the whole flow much faster
Until then, the current "View Profile → Unfollow → Next" flow is the best we can do.

