Repository navigation
ReviewSLA: keep standing approvals across drafts; reassign overdue reviews - #50
Merged
Merged
Conversation
…views An approval that still stands now counts as a response even if the PR went back to draft and ready again afterwards; only a re-request after a push starts a new clock. StaflLib#1870 showed thebhef owing a first response there although his approval stood, and reassign() (which already treats it as standing) then silently skipped it. An assignee the PTO calendar has out today is now replaced on overdue reviews too. outBefore() only checked today through the due date, so an overdue review (template#52) was never reassigned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
willson556
marked this pull request as ready for review
October 15, 2026 18:45
staflsystemsci
Bot
requested review from
a team,
fcheein,
gretl-silva-stafl,
mament0,
mns4595,
mzhu48,
nehalkpatel and
thebhef
and removed request for
a team
October 15, 2026 18:46
|
Review SLA Nobody owes a review on this PR right now. Due times are in business hours, 10:00 to 17:00 Pacific: 4 h for a PR under 250 added lines, 7 h otherwise, and 4 h for a re-review. Mid-stack, an assignee owes a response on the lowest PR they haven't approved. Dashboard |
mns4595
approved these changes
Oct 15, 2026
nehalkpatel
approved these changes
Oct 15, 2026
Member
Author
Merge activity
|
willson556
added a commit
that referenced
this pull request
Oct 15, 2026
…approved (#51) When ReviewSLA hands an out-of-office assignee's reviews to someone else, it also requests a review from the new assignee on every PR they take over, even ones they've already approved. On StaflSystems/StaflLib#2393, willson556 approved at 18:18. At 18:40 he replaced thebhef as assignee and got a fresh review request, and he approved again at 18:48. **Fix:** `reassign()` still makes them assignee, but only requests their review on PRs where they don't already have a standing approval. **Tests:** 1 new test in `run.test.js`: the new assignee had already approved the bottom PR of a two-PR stack, so only the top PR gets a request. It fails on the old code. `node --test` passes all 110 tests. Stacked on #50, which adds the standing-approval rules this relies on. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Two reviews on the Review SLA dashboard stayed with thebhef although the PTO calendar has him out Oct 15–16, while the same run reassigned his reviews on StaflSystems/StaflLib#2393 and #2394.
StaflSystems/StaflLib#1870: a standing approval was treated as no response.
reassign()keeps PRs whose approval stands, so it had nothing to change and returned without a log line.clockFor, an approval that still stands counts as a response whenever it was given. A re-request after a push still starts a re-review clock. Comments, and approvals that were since replaced by a change request or dismissed, still don't carry over a draft round-trip.StaflSystems/stafl-bms2000-template#52: overdue reviews were never reassigned.
outBefore()checked the days from today through the due date. For a review overdue since Oct 12, that range is empty.Tests:
owed.test.js, and 2 inrun.test.js(out today on an overdue review → reassigned; out only before today → left alone).node --testpasses all 109 tests.The README's Drafts and out-of-office bullets now describe both rules.
🤖 Generated with Claude Code