Skip to content

Re-sync Roadhog hero settings emission with the 9.7.17 hero table #565

Closed

Description

@e54-bot

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.cjs output; 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-rs builds against a workshop-rs that contains workshop-rs#540 (>= 1.24.0), if the lockfile or version requirement is older.
  • Retire the known-gap declaration for synthetic/settings-hero-ability-reslot-565 and 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 regression entries, and the fixture reports match under the structural comparison.
  • No other fixture changes status; known-gap count drops by exactly one.
  • cargo test --workspace passes. Closing reference: Fixes #565 if all three table rows in the issue now match the 9.7.17 oracle, otherwise Refs #565 and list the rows that do not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-implementationContract settled; an Engineer can implement without inventing a decision

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions