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.
🤖 Generated with Claude Code