Repository navigation
feat(usage): count hand-backs on merged PRs from earlier bodies - #723
Conversation
Quest-Claim: f9dd299db267b5d9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 5 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
I reviewed the full diff: how quest usage reads hand-backs from a PR's body edit history, and the quest-tree cleanup.
- Optional
userContentEditsconnection:readActivitytakes anextralist, and the baseCONNECTIONSleaves edits out, so reads insignals.tsare unchanged. The first query and the per-connection paging both work through the mergedconnectionslist. readOnlineReviewsreturn shape: it now returns{ online, bodies }. Nulldiffentries, which come from deleted edits, are filtered out.- Hand-back from history:
usagesetsrow.handedBackwhen any earlier body passeshandedBack. This runs beforeaccuracyRowsand the other rollups, so each PR still counts once. - Test: #10's mocked edit history has a
## Waitingbody and a null diff, and it now counts in both of its writers'accuracyrows.bun test test/usage.test.tsandtsc --noEmitpass locally. - Quest tree: the finished quest file is removed, the epic is sized
[L], and the caveat inquest/m1/model-check.mdis gone.
Edit history includes the PR's current body as its newest entry. So the old draft && guard no longer limits what counts: a ready PR whose current body still has a hand-back section now counts too. The PR body already calls this out as an accepted approximation.
claude-opus-5-5 | 𝕏

Finishes
quest/m0/routing-evidence/handbacks.md.Summary
quest usagenow counts a PR as handed back if its current draft body or any earlier version had a## Waiting/## Decisions neededsection. Before this, merged PRs always read 0, becausequest readyremoves the section before merge.src/github/online-review.ts:readActivitycan now also readuserContentEdits { diff }, which returns every earlier full body. It uses the same batched, paged GraphQL query thatreadOnlineReviewsalready makes, so there are no extra round trips (10 PRs per query, as before).signals.tsdoesn't ask for the edits, so its reads stay the same.src/cli/usage.ts: a row counts as handed back when any earlier body passeshandedBackfromsrc/core/claim.ts. Each PR still counts once.## Waitingbody, and it now counts in both of its writers'accuracyrows.quest/m1/model-check.md.Choices made without asking
quest/m0/routing-evidence/README.mdis[L]. This was its last child, andquest checkrequires a size once an epic has none left. The remaining work is the experiments' readout and ending the A/B, which is mostly judgment.Models
🤖 Generated with Claude Code
(Written by Claude Opus 5.5 with low)
Review
Rewritten by
quest reviewafter each round.Head: 4d26d19
Base: origin/main at 85d0a78
Risk: high,
The changed quest/github return shape and historical hand-back counting can break Kixel Code and scripts that consume review records or quest usage output; reverting restores behavior but cannot undo decisions already made from those records.Classified: high by Codex, gpt-6.1-sol, low effort, session
01a1d7d3-1160-7180-bddc-aaf620979ddcReviewer: Codex, gpt-6.1-sol, medium effort
Session:
01a1d7d3-2836-7bd2-ad4a-1b0210b93a31, round 1Score: 9/10,
No actionable defects were found and the history lookup and rollups appear consistent, though builds and tests were not run as instructed.Rounds: 1; first round 0; findings 0: fixed 0, refuted 0, open 0
Findings: none
Reviewer: Codex, gpt-6.1-sol, low effort, shadow
Session:
01a1d7d3-2836-73d2-937e-13c9f6ddae7a, round 1Score: 8/10,
No actionable regressions were identified and the implementation aligns with updated tests, although builds, tests, and live GitHub behavior were not exercised under the review constraints.Rounds: 1; first round 0; findings 0: fixed 0, refuted 0, open 0
Findings: none