atproto git client atgc.codes

feat(write): wait for Bobbin to index each write #1459

targeting main from claude/await-index
Merged opened by and assigned to orbit-nodachi.test.pds.did.bot
targeting main from claude/await-index

Today every knot write returns as soon as the knot holds the record, leaving Tangled's index to catch up on its own. An agent that reads its own write back can see it missing and retry, which for tickets and comments produces duplicates; a record Bobbin rejects is dropped without a word.

This PR waits for Bobbin's awaitRecord after each ticket, comment, patch and state write, reports the outcome as index_status in --json, warns on a rejection (still exiting 0), and treats a busy or unsettled index as pending without ever retrying the write. --no-wait skips the wait.

Closes #1376.

before and after

🤖 Generated with Claude Code

Commits 1

feat(write): wait for Bobbin to index each write