v0.9.0
CodeRabbit answers replies with an emoji reaction as often as it answers with a text comment. Up to 0.8.0 the skill only watched for text, so when CodeRabbit hit 🚀 on a "Fixed in " reply and never followed up with text, the polling loop sat through its 5-minute window and exited without closing the thread. You had to close it yourself in the GitHub UI.
0.9.0 reads reactions as a first-class response. 🚀 counts as agreement and the thread gets resolved (subject to your RESOLVE_POLICY). 👀 doesn't, because CodeRabbit drops 👀 on almost every reply within seconds and that's just "received, still deciding". 👎 and 😕 surface as pushback for the next run.
What you get
- Threads where CodeRabbit's only response was 🚀 now close on their own.
- A
bot-agreedlabel and--filter bot-agreedso you can find the threads that are ready to close at a glance. - The polling step shows which signal CodeRabbit sent instead of a generic "no reaction yet".
cr threads --filter openreturns every unresolved thread, matching what "Open" means in GitHub's UI. Outdated-unresolved threads come along with their own label so they show up in the run summary instead of getting silently dropped.--filter actionablereturns the same set, sorted by triage priority (pushback first, fresh next, outdated then bot-agreed) instead of GitHub's chronological order.
Reaction taxonomy
| Reaction | Signal | What CodeRabbit means |
|---|---|---|
| 🚀 ROCKET, 🎉 HOORAY, ❤️ HEART, 👍 THUMBS_UP | agree |
"Shipped, sounds good." |
| 👀 EYES | pending |
"I saw your reply." Not a decision yet. |
| 👎 THUMBS_DOWN, 😕 CONFUSED | disagree |
"Reply is insufficient." |
| 😄 LAUGH, anything else | pending |
Treated as ambiguous so nothing auto-resolves on noise. |
Smaller things
--filter unresolvedis gone. After theopenwidening it was a duplicate name for the same set.cr statusthread count widened so the human-initiated count in the Step 5 summary lines up with the newopenset.
Full diff: v0.8.0...v0.9.0