Add Exuberant Wolfbear - #7204
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 parser now supports explicit-target inverted-genitive base power and toughness effects. Tests cover Exuberant Wolfbear targeting, duration, optional resolution, cleanup, and unsupported durationless forms. ChangesTargeted base power and toughness effects
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant OracleEffectParser
participant SubjectParser
participant TargetParser
participant BasePtEffect
participant IntegrationTest
OracleEffectParser->>SubjectParser: parse base power and toughness subject
SubjectParser->>TargetParser: parse explicit target syntax
TargetParser-->>SubjectParser: return target filter and target slot
SubjectParser->>BasePtEffect: construct targeted modification
IntegrationTest->>BasePtEffect: apply effect to selected Human
BasePtEffect-->>IntegrationTest: retain values until end of turn
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/src/parser/oracle_effect/subject.rs`:
- Around line 1218-1225: Extend the effect model and lowering path to represent
descriptor-scoped, untargeted continuous effects with typed indefinite duration
provenance and an affected set captured when the effect begins. Update the
descriptor handling around the target-syntax gate in
crates/engine/src/parser/oracle_effect/subject.rs:1218-1225 to lower this
grammatical class instead of returning None, while preserving targeted
explicit-duration behavior. Update
crates/engine/src/parser/oracle_tests.rs:2939-2958 to assert the non-targeted
indefinite continuous representation rather than Unimplemented.
🪄 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: 186fbb8a-3f75-434b-91ca-80894e065eee
📒 Files selected for processing (4)
crates/engine/src/parser/oracle_effect/subject.rscrates/engine/src/parser/oracle_tests.rscrates/engine/tests/integration/exuberant_wolfbear_base_pt_target.rscrates/engine/tests/integration/main.rs
|
Generated for head Parse changes introduced by this PR · 1 card(s), 2 signature(s) (baseline: main
|
|
Maintainer follow-up for d9c6f01. I pushed a focused test fixup after confirming the two failed Rust shards: the test expected the optional-resolution prompt before trigger target selection, but the engine correctly surfaces TriggerTargetSelection first. The updated test selects the legal controlled Human, then reaches and answers the you-may prompt. I also reviewed CodeRabbit’s Brine Hag suggestion. This PR is correctly scoped to the explicit-target, until-end-of-turn form. Brine Hag’s descriptor-scoped indefinite effect needs a separate permanent-duration plus resolution-time affected-set primitive; lowering it through this target-slot change would be wrong, so the existing explicit unsupported-coverage test remains appropriate. This is not an approval: I am holding for the required CI and the current-head parse-diff artifact to regenerate before the final review/enqueue decision. |
matthewevans
left a comment
There was a problem hiding this comment.
Approved: the parser uses the existing target grammar and continuous-effect seam; current-head parse diff is limited to Exuberant Wolfbear, the runtime integration coverage is discriminating, and current-head CI is green.
Summary
Adds parser support for Exuberant Wolfbear's inverted-transitive base power/toughness trigger. The target is parsed through the existing target grammar, so only a controlled Human is selected and the temporary P/T change uses the existing continuous-effect pipeline.
Files changed
crates/engine/src/parser/oracle_effect/subject.rscrates/engine/src/parser/oracle_tests.rscrates/engine/tests/integration/exuberant_wolfbear_base_pt_target.rscrates/engine/tests/integration/main.rsTrack
Developer
LLM
Model: gpt-5-6
Tier: Frontier
Thinking: high
Implementation method (required)
Method: /engine-implementer
CR references
CR 603.2, CR 603.3d, CR 603.5, CR 115.1, CR 208.1, CR 613.4b, and CR 514.2.
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— PASSgit diff --check— PASS./scripts/check-parser-combinators.sh—Gate G PASS;Gate A PASS head=6066103d48d5abca7d8cbc7565bae68e48b497c9 base=ee76bc54aee4941f20c126b49c5d6b54a36d86c5cargo test -p phase-engine exuberant_wolfbear --lib—rustcterminated withSIGTERMbefore test execution; no compiler diagnostics (recorded below).Gate A
Gate A PASS head=6066103d48d5abca7d8cbc7565bae68e48b497c9 base=ee76bc54aee4941f20c126b49c5d6b54a36d86c5
Anchored on
crates/engine/src/parser/oracle_effect/subject.rs:1136— existing base-P/T clause parser owns axes, value lowering, target threading, andGenericEffectemission.crates/engine/src/parser/oracle_effect/subject.rs:3531— existingsubject_filter_applicationpreserves target-versus-mass semantics.Final review-impl
Final review-impl PASS head=6066103d48d5abca7d8cbc7565bae68e48b497c9
Claimed parse impact
Exuberant Wolfbear.
Scope Expansion
None.
Validation Failures
None.
CI Failures
cargo test -p phase-engine exuberant_wolfbear --libcould not complete because the environment terminated thephase-enginerustcprocess withsignal: 15, SIGTERMafter compilation began. No test result or compiler diagnostic was emitted. Tilt was unavailable (exit 127).Summary by CodeRabbit
New Features
Bug Fixes
Tests