Bug
On threads with more than ~200 total replies, the oldest descendants — typically the OP's own continuation chain and the earliest replies — don't render. The same thread renders fully on Bluesky.
Cause is server-side, in the AppView (not this client): the thread skeleton query caps descendants at 200, ordered newest-first (packages/bsky/src/data-plane/server/db → routes/threads.ts, MAX_THREAD_DESCENDANTS). Once a thread grows past 200 replies, the cap evicts the oldest posts — which are exactly the OP's self-reply chain. The opThread annotation added upstream doesn't help: it only annotates posts that survived the cap, and doesn't re-add dropped ones.
Only threads exceeding ~200 replies are affected; smaller threads render correctly.
Proposed fix (AppView)
Keep the 200-descendant cap for timeout protection, but make the OP's chain exempt: after the capped skeleton query, union in OP-authored descendants (same recursive CTE filtered to post.creator = root author). This restores the OP chain on all existing threads with no backfill. Early non-OP replies beyond the cap remain trimmed — a smaller, separate parity gap with Bluesky.
Fix lands in blacksky-algorithms/atproto (packages/bsky); tracking here since it presents as a client rendering bug.
Bug
On threads with more than ~200 total replies, the oldest descendants — typically the OP's own continuation chain and the earliest replies — don't render. The same thread renders fully on Bluesky.
Cause is server-side, in the AppView (not this client): the thread skeleton query caps descendants at 200, ordered newest-first (
packages/bsky/src/data-plane/server/db → routes/threads.ts,MAX_THREAD_DESCENDANTS). Once a thread grows past 200 replies, the cap evicts the oldest posts — which are exactly the OP's self-reply chain. TheopThreadannotation added upstream doesn't help: it only annotates posts that survived the cap, and doesn't re-add dropped ones.Only threads exceeding ~200 replies are affected; smaller threads render correctly.
Proposed fix (AppView)
Keep the 200-descendant cap for timeout protection, but make the OP's chain exempt: after the capped skeleton query, union in OP-authored descendants (same recursive CTE filtered to
post.creator = root author). This restores the OP chain on all existing threads with no backfill. Early non-OP replies beyond the cap remain trimmed — a smaller, separate parity gap with Bluesky.Fix lands in blacksky-algorithms/atproto (
packages/bsky); tracking here since it presents as a client rendering bug.