Skip to content

Fix Forever Wowhead tooltips, ruleset names, and Retail avatars - #38

Merged
Lucrona merged 1 commit into
wow-playedfrom
fix/forever-wowhead-realm
Nov 10, 2026
Merged

Lucrona merged 1 commit into
wow-playedfrom
fix/forever-wowhead-realm

Conversation

@Lucrona

@Lucrona Lucrona commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Change

Fixes two live Forever bugs, plus the under-10 popup close, Retail avatar fallback, and Forever ruleset display/storage on the same branch.

Wowhead tooltips. Forever gear now uses Wowhead's Forever item path (https://www.wowhead.com/forever/item=ID), data-wowhead domain=forever, and nether dataEnv=16. Retail hover links stay on the live path (dataEnv=1). Verified with Forever-only item 284716 (Band of the Better Half): dataEnv=16 returns 200, dataEnv=1 returns 404.

Ruleset is the server name. Forever has no realms (addon stores realm="", profile has ruleset and no realm object). View all and the manager now group under the ruleset name (for example PvP) instead of "Unknown server". The popup subtitle is PvP · Forever · US. List JSON exposes ruleset; wow_characters.realm stays empty so Forever identity (AND realm='') is unchanged. Unmapped Forever characters group as "Forever", never "Unknown".

Reference data. Additive migration 0063_wow_forever_rulesets seeds the official US and EU list and adds nullable wow_characters.ruleset_id and bnet_characters.ruleset_blizzard_id. Mapping only fills a null ruleset_id (from the public profile for level 10+, or from the account listing on verify, which works under 10). No existing character or hour rows are rewritten.

Seeded list, verified 11 November 2026 (AEDT) with client-credentials GET /data/wow/ruleset/index and GET /data/wow/ruleset/{id} under dynamic-forever-us and dynamic-forever-eu (en_US names). Realm and connected-realm indexes under those namespaces returned 404.

Region blizzard_id slug name type
US, EU 1 pvp PvP pvp
US, EU 2 normal Normal normal
US, EU 3 roleplay Roleplay roleplay
US, EU 15 roleplay-pvp Roleplay PvP roleplay_pvp

Sources: Choose Your Ruleset in World of Warcraft: Forever; Battle.net Game Data ruleset index above. US IDs 4–14 and 16 returned 404. Hardcore is announced for after launch and is not in the index, so it is not seeded. KR and TW indexes contain only PvP (1) and Normal (2) and are not seeded here.

Captured profile for Lucrona Ashborne (1119743) also carries ruleset: {id: 1, name: "PvP"}.

Under-10 popup. Lucroena Ashborne (level 4) no longer opens and immediately closes. The public Forever profile is a 404 below level 10 (same public-profile gate as Retail); the official Armory URL returned HTTP 500 for that character (200 for level-18 Lucrona Ashborne). The popup now stays open with local data, hides View on Armory, and shows a short note: "The Armory doesn't list this character yet." A later transient Blizzard error keeps the last good full cache.

Retail avatars. Public Retail cards for Lucrona and Lucroena on Frostmourne were falling back to the Dracthyr race icon (ability_racial_wingbuffet, the generic dragon). Cards, View all, manager rows and the popup now use the same character-media avatar asset, 64px popup header, and object-fit: cover / object-position: center 20% crop as Forever. The avatar endpoint works for both versions (Forever still gated by BNET_FOREVER_LOOKUP).

Data safety

Migration 0063 is additive only: a seed-only reference table, nullable FKs, and a partial index. No backfill, no hour changes, no identity rewrites, and realm is never set to a ruleset name. Base: 389388c4 from latest wow-played.

Validation

  • cargo fmt --all -- --check: passed.
  • cargo clippy -p fraglink-server -p fraglink-core -p fraglink-sync --all-targets -- -D warnings: passed. Box cannot build desktop (missing webkit/pkg-config); Linux CI covers the whole workspace including desktop.
  • JS tests (apps/site-web/tests/wow-*.cjs): 23 passed, including Forever Wowhead path/domain/dataEnv=16, Retail path unchanged, ruleset grouping (never "Unknown server"), under-10 Armory note, and shared avatar crop.
  • cargo test -p fraglink-server -p fraglink-core -p fraglink-sync -- --test-threads=2 against box-only Postgres: all passed (core 110 passed / 1 ignored; server lib and integration suites including wow_forever_rulesets and wowchar; sync 8 passed). Linux CI runs whole-workspace tests; Windows CI covers its platform paths.

No merge, deployment or live flag changes performed.

Forever gear uses Wowhead's Forever item path and dataEnv 16.
Characters group and display under the ruleset name (for example PvP)
instead of Unknown server, without writing the ruleset into realm.

Additive migration 0063 seeds the official US and EU Forever rulesets
and maps characters only when ruleset_id is still null. Under-10 Forever
popups stay open with local data and a short Armory note. Retail cards,
manager rows and the popup use the same character-media avatar and crop
as Forever.
@Lucrona
Lucrona merged commit 2978f1b into wow-played Nov 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant