Repository navigation
Re-sync Roadhog hero settings emission with the 9.7.17 hero table #565
Description
Context
Found during the oracle re-pin from overpy@9.7.10 to overpy@9.7.17 (#498).
Upstream re-slotted Roadhog's Take a Breather from secondaryFire to ability2 (and removed Pig Pen entirely) in src/data/heroes.ts. Under the pinned 9.7.17 oracle:
| Settings key | overpy 9.7.10 | overpy 9.7.17 | opy-rs today |
|---|---|---|---|
roadhog.secondaryFireCooldown% |
Take a Breather Cooldown Time: 50% |
secondaryFireCooldown%: 50 (raw key — no mapped ability) |
Take a Breather Cooldown Time: 50% |
roadhog.ability2Cooldown% |
Pig Pen Cooldown Time: 50% |
Take a Breather Cooldown Time: 50% |
Pig Pen Cooldown Time: 50% |
roadhog.enableAbility2 |
Pig Pen: Off |
Take a Breather: Off |
Pig Pen: Off |
opy-rs emits the 9.7.10 hero-ability names for all three; its generated hero/settings data (crates/opy-rs/src/compiler/data/hero_applicability.json, produced by tools/overpy/gen_hero_applicability.cjs) was derived from the 9.7.10 hero table.
Recorded as corpus known-gap fixture synthetic/settings-hero-ability-reslot-<issue> under #498 rather than changed in the pin migration, per the issue's classification rule for new oracle behavior.
Scope
- Regenerate the pinned hero/settings data from the 9.7.17 oracle (regen
gen_hero_applicability.cjsoutput; check for other hero ability renames — the 9.7.10→9.7.17 diff showed Roadhog is the only reslot). - Verify whether
secondaryFire*settings keys should still be accepted for roadhog (9.7.17 accepts them but emits the raw key) — likely an accept-then-emit-raw path. - Retire the corpus known-gap declaration when native emission converges.
Remaining work (2026-10-21)
The opy-rs side landed in #628 and workshop-rs#540 (merged, released in workshop-rs 1.24.0) dropped the stale Roadhog aliases. Native emission now converges, so the compiler compatibility gate reports REGRESSION synthetic/settings-hero-ability-reslot-565: semantic-wir (release PR #635 fails on it): the corpus still declares the fixture a known gap although it now matches the 9.7.17 oracle.
Scope
- Make sure
opy-rsbuilds against aworkshop-rsthat containsworkshop-rs#540(>= 1.24.0), if the lockfile or version requirement is older. - Retire the known-gap declaration for
synthetic/settings-hero-ability-reslot-565and keep the fixture as a normal matching corpus case. Do not change the oracle pin or any other fixture.
Acceptance criteria
- The compiler compatibility gate passes with no
regressionentries, and the fixture reportsmatchunder the structural comparison. - No other fixture changes status;
known-gapcount drops by exactly one. cargo test --workspacepasses. Closing reference:Fixes #565if all three table rows in the issue now match the 9.7.17 oracle, otherwiseRefs #565and list the rows that do not.
Activity
chore(tools): pin the OverPy oracle at 9.7.17 (#566)
docs: reconcile forward-language support contract (#570)
fix(opy-rs): regenerate hero settings applicability from the 9.7.17 o…
fix(opy-rs): regenerate hero settings applicability from the 9.7.17 o…