Conversation
5 tasks
Contributor
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
mrhoribu
force-pushed
the
fix/bigshot-looting-watch-pause-race
branch
from
September 2, 2026 17:21
5ba676b to
829e89d
Compare
mrhoribu
force-pushed
the
fix/bigshot-looting-watch-pause-race
branch
from
September 7, 2026 15:48
829e89d to
ddb0f26
Compare
mrhoribu
force-pushed
the
fix/bigshot-looting-watch-pause-race
branch
from
September 9, 2026 20:41
273fa77 to
cdebea8
Compare
mrhoribu
force-pushed
the
fix/bigshot-looting-watch-pause-race
branch
from
September 10, 2026 22:07
cdebea8 to
afd3e48
Compare
…state looting_watch only checked the watched script's (eloot's) pause state, never bigshot's own. When something paused bigshot and eloot back to back (e.g. ecleanse pausing a script list for a disarm-recovery cast), looting_watch noticed eloot's pause and returned to its caller immediately, regardless of whether bigshot itself had also just been paused. That let bigshot's thread advance to the next corpse's run_script/Script.kill one iteration early, racing eloot's own independently-resumed thread with no reliable ordering. Add Script.current at the top of the loop - the same idiom lich-5 uses elsewhere (echo, fput, ...) to block on the calling script's own pause via Script#wait_while_paused! - so bigshot's own pause is checked on every iteration, not just at entry. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Keep this fix landing as part of the v5.16.0 release the rest of the stacked PRs are shipping, rather than a separate v5.16.1. Also rewrites the v5.16.0 changelog entries (including this one) in plain, player-facing language instead of implementation detail. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Due to performance and fixes in Lich 5.21.0 for Creature and Combat API
mrhoribu
force-pushed
the
fix/bigshot-looting-watch-pause-race
branch
from
September 11, 2026 00:27
afd3e48 to
5c51b3b
Compare
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.
Summary
looting_watch: it only checked the watched loot script's pause state, never bigshot's own. When something (e.g.ecleanse) paused bigshot and the loot script back-to-back for a disarm-recovery cast,looting_watchwould notice the loot script's pause and hand control back immediately - regardless of whether bigshot itself had also just been paused.docs/bigshot-yard-documentation(docs(bigshot.lic): v5.16.0 add YARD documentation throughout #2417), the tip of the open bigshot PR stack (feat(bigshot.lic): v5.16.0 migrate room-creature targeting to Creature module #2414 -> feat(bigshot.lic): v5.16.0 add crtrStatus command checks, migrate flying/rooted/frozen/prone #2415 -> feat(bigshot.lic): v5.16.0 add ;bigshot help and unknown-option fallback #2416 -> docs(bigshot.lic): v5.16.0 add YARD documentation throughout #2417 -> this).Test plan
spec/bigshot/looting_watch_spec.rb, following the source-extraction-and-eval technique fromspec/bigshot/priority_spec.rb. Uses a Mutex/ConditionVariable + Queue-based stub instead of sleep-based polling, so the race is deterministic:Script.paused?/Script.running?call site in bigshot.lic for the same bug shape - none found; this was the only raw polling loop watching another script's state without also checking its ownbin/migraterun first (gameobj-data fixtures)bundle exec rspec- full suite passingRBENV_VERSION=4.0.5 rubocop -A- cleanGenerated with Claude Code