Skip to content

Rename verified WoW characters that keep the same Blizzard id - #28

Merged
Lucrona merged 1 commit into
wow-playedfrom
cursor/wow-rename-merge-4791
Nov 10, 2026
Merged

Lucrona merged 1 commit into
wow-playedfrom
cursor/wow-rename-merge-4791

Conversation

@Lucrona

@Lucrona Lucrona commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Do not merge. This sits on PR 26 (4af682d). PR 27 mockups are not part of this branch.

When a linked Battle.net refresh sees the same Blizzard character id with a new name or realm, that one verified row is updated in place. Its /played snapshots, imported totals, tracked hours, and visibility stay. The old name and realm are stored, and the WoW character manager shows formerly …. A Blizzard id is copied only from that user's current account list, which already had a nullable wow_characters.bnet_id. This migration does not fill any id.

If a second row already exists under the new name, the two are combined only when both are verified to this same linked account. Snapshots are unioned. /played becomes the higher accepted counter, never the sum and never a lower one. The removed row is written to wow_character_merges before it is deleted. A second refresh does not add another history row or another merge.

These are left as they are and recorded in wow_played_quarantine: another owner holds the id, the new-name row is not verified, the new name already has a different id, or the newer counter is lower than the older one. An account entry with no Blizzard id is not used to combine rows.

Retail runs on the existing character refresh. Forever does not, while BNET_FOREVER_ACCOUNT is off. Before that flag is turned on, check from this server that the Forever account list returns a stable character id for the same character on two calls, including after a rename, and a different id for a different account. No Battle.net call was made here.

Migration 0057_wow_rename_merge.sql only creates empty wow_character_names and wow_character_merges. It does not update, delete, or insert character, snapshot, or hours rows. Re-running it against a database that already has a character leaves that row unchanged.

cargo fmt --all, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace passed. Head bd7e7f1a8171379a09fabd3271583a4c29d8e338. No installer was built.

Open in Web Open in Cursor 

A linked-account refresh updates that row in place, keeps its snapshots and visibility, and records the old name. A second verified row under the new name is combined only for the same account: snapshots are unioned and /played stays the higher counter. Unverified rows, other owners, and a newer lower counter are left for review. Forever stays behind BNET_FOREVER_ACCOUNT.

Co-authored-by: Lucrona <Lucrona@users.noreply.github.com>
@Lucrona
Lucrona changed the base branch from cursor/wow-forever-imports-4791 to wow-played November 10, 2026 07:35
@Lucrona
Lucrona merged commit 18c219e 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.

2 participants