Fix Scythecat Cub - #7220
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe counter-effect resolver now propagates explicitly selected live object targets for chained ChangesCounter target propagation
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/engine/tests/integration/scythecat_cub_second_resolution.rs`:
- Around line 62-80: Update the test setup to seed Lotus Cobra with one +1/+1
counter before the first resolve_cub_landfall call. Adjust the first assertion
to expect two counters and the second assertion to expect four, ensuring the
second resolution verifies doubling rather than another single-counter
placement.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: d8ea55b3-432a-46b3-876e-90b74e72a2e5
📒 Files selected for processing (3)
crates/engine/src/game/effects/counters.rscrates/engine/tests/integration/main.rscrates/engine/tests/integration/scythecat_cub_second_resolution.rs
|
Generated for head Parse changes introduced by this PR✓ No card-parse changes detected. |
|
Maintainer review is complete for head The maintainer test fix resolves CodeRabbit’s finding: seeding the target at one +1/+1 counter and asserting 2 then 4 makes the second landfall multiplication regression discriminating. The logic review is otherwise clean. Required CI is still running, and the |
matthewevans
left a comment
There was a problem hiding this comment.
Approved — current head is ready for the merge queue.
Verified 668d9300c1f46f67af7243da26f162fc82dfeb5c: the counter resolver now uses the existing propagated live-object target authority for a chained ParentTarget, ahead of event-context fallback; the integration regression drives land play, target selection, stack resolution, and distinguishes the second-resolution multiplication (1 → 2 → 4). Required CI is green and the current-head parse-diff reports no card-parse changes. CodeRabbit's prior test-discrimination finding is resolved on this head.
Summary
Fixes Scythecat Cub's second landfall resolution so the explicitly chosen creature's +1/+1 counters are doubled instead of resolving against the entering land.
Files changed
Track
Developer
LLM
Model: GitHub Copilot (canonical id not exposed)
Tier: Frontier
Thinking: high
Implementation method (required)
Method: /engine-implementer
Note
Any change to
crates/engine/game logic — parser, effects, resolver,targeting, rules behavior — is expected to go through
/engine-implementer.The "not used" box is for changes that genuinely fall outside that scope.
CR references
Verification
Required checks ran clean, or the exact CI-owned alternative is stated below.
Gate A output below is for the current committed head.
Final review-impl below is clean for the current committed head.
Both anchors cite existing analogous code at the same seam.
cargo fmt --all -- --check— PASScargo clippy -p phase-engine --all-targets -- -D warnings— PASScargo test -p phase-engine --test integration scythecat_cub_second_resolution::scythecat_cub_doubles_counters_on_second_landfall_resolution -- --exact --nocapture— PASS (1 test)cargo test -p phase-engine --lib effects::counters -- --nocapture— PASS (62 tests)cargo test -p phase-engine— started successfully; manually interrupted during long-running unrelated loop tests, with no test failure reported; CI should run the complete suite.cargo coverage— tool built, but card-level coverage could not run becausedata/card-data.jsonis absent in this dedicated worktree; CI-owned alternative is the generated card-data pipeline.cargo semantic-audit— tool built, but the audit could not run becauseclient/public/card-data.jsonis absent in this dedicated worktree; CI-owned alternative is the generated card-data pipeline.Gate A
Gate A PASS head=35e45338b37f7d953e8652ced0cb8616720ddcb2 base=97591656218103d8e8c7315725b24cfe64645dd4
Anchored on
ParentTargetbranch distinguishes chooser-only bookkeeping from an absent object target.ParentTargetresolution uses the samehas_object_targetguard and shared target-resolution vocabulary.Final review-impl
Final review-impl PASS head=35e45338b37f7d953e8652ced0cb8616720ddcb2
Claimed parse impact
None.
Scope Expansion
None.
Validation Failures
None.
CI Failures
cargo test -p phase-enginewas not completed locally because long-running unrelated loop tests were manually interrupted; no failure was observed before interruption.cargo coverageandcargo semantic-auditrequire generateddata/card-data.jsonandclient/public/card-data.json, which are absent from this dedicated worktree; CI must run the generated card-data pipeline before these audits.Summary by CodeRabbit
Bug Fixes
Tests