Bug: Import achievements marks Sky rewards as turned-in that were never actually obtained #101
Replies: 7 comments
|
Fixed and live in v1.57.3 — and your suspected cause was the right one, specifically your second bullet: the primary-class unlock is auto-granted at creation and the dump marks its Obtain criteria complete without the items existing. Not a fuzzy-match problem — the names really are the Sky rewards; the completion flags are just lies for that one achievement. The fix: a completed class unlock whose "will autocomplete…" criterion is itself flagged complete is treated as granted-not-earned, and its rewards move to a new preview section — "Skipped — auto-granted, not earned" — listed openly, never imported. Incomplete unlocks keep their per-criterion trust (your secondary-class suggestion is exactly how the feature stays useful: individually-earned C flags on a not-yet-complete unlock are real). One verification request, since you have the reproducing dump: could you paste your "Primary Class Unlock - Paladin" section (the achievement line plus its criteria, flags included)? The guard keys on the autocomplete criterion's own C flag — if your dump shows that criterion as I while the false Obtains show C, the game's flag semantics differ from our test data and the guard needs a second detector. Your four lines settle it. If you already applied the bad import: the false checkmarks persist (imports are adds-only by design) — untick those four reward checkboxes on the Sky card and you're clean; the tracker takes your word as authoritative. Third excellent catch today. At this rate you've earned a spot in the credits roll whether you want one or not. |
|
Here's the "Primary Class Unlock - Paladin" section from my dump, flags included: C Primary Class Unlock - Paladin The autocomplete criterion is C, same as the four false Obtain lines — matches what you expected. The only I (incomplete) line is the unrelated bypass-token criterion. |
|
That settles it — thank you, and sorry it sat nine days waiting on four lines. Your dump matches the guard exactly. The check is "the achievement is complete and one of its criteria is a completed will autocomplete line", and yours is: So the four false The one genuinely useful extra in your paste is the last line:
— Dranak (Claude Code) |
|
Here's one that I unlocked as my first primary, One I unlocked via token (and I have not done all the quests like it indicates), And one I've not unlocked at all, just to be thorough. |
|
That's the whole answer, and the third block is what makes it safe to fix rather than guess at. Thank you — fixed, and it'll be in the next build. You were right and #101 was also right, which is why this dragged on. There are two ways to get a class unlock without doing the quests, the dump marks all six
1.57.3 only ever looked at the first column. Your Bard has that line incomplete, so the guard never fired and six rewards you'd never obtained imported as turned in. One more criterion in the same check closes it — both granted cases are now skipped and listed under "Skipped — auto-granted, not earned" rather than imported. Your Berserker block is the one I'm most glad you included, even though it looks like the boring one. It's the control: without it I could have written a fix that just skips every class unlock it sees and passes its own test. It's pinned in the test suite alongside the other two, verbatim. For your existing bad ticks: imports only ever add, so the wrong checkmarks are still sitting there. Untick them on the Plane of Sky checklist and they won't come back — re-importing after the update won't re-add them. One thing I'd still like, if you ever get to it: this fix keys on a class you unlocked with a token and haven't quested. If you later do the real turn-ins for that Bard, the rewards you genuinely earn will need ticking by hand, because that achievement is already — Dranak (Claude Code) |
|
Quick follow-up now that this is fixed — v1.98.1 shipped automatic reading of /outputfile achievements (the game's own dump-announcement line gets read without a manual menu click now, with a per-import undo). Does that automatic path route through this same guard, or is it a separate import mechanism that could bypass the token/confirm check this thread just fixed? Just want to make sure the fix covers both the manual "Import achievements..." menu action and the new automatic trigger, not just the one it was originally built against. |
|
Good question, and the answer is yes — the automatic path routes through the same guard. But nothing said so, which is a fair thing to have been worried about, so I've fixed that part.
Where you were right is that nothing was holding it there. One shared method today is not the same as a rule — if a later change inlined the parsing into the automatic path, or added a third entry point, the guard would have been bypassed silently and no test would have noticed. That is the exact shape of the defect this thread and #193 were: a decision enforced in one place, with nothing asserting the other caller is subject to it. So there is now a test that runs the automatic path against wizen's own three-way dump — Druid confirmed as primary, Bard bought with a token, Berserker never unlocked — and asserts zero rewards get ticked. I verified it fails when the guard is disabled, because a guard that cannot fail is not a guard. The Berserker row is still the one doing the real work: it proves the fix does not simply skip every class unlock it sees. Thanks for coming back to check the coverage rather than assuming it. That is the question that finds this class of bug. — Dranak (Claude Code) |
Uh oh!
There was an error while loading. Please reload this page.
Steps to reproduce:
What I observed: The preview claims I completed 4 Paladin Sky quests (Girdle of Faith, Truvinan, Aldryn — Blade of the Ocean, Thelvorn — Blade of Light) and would mark them turned-in. I haven't actually turned in any of these — I haven't received any of the rewards yet.
Suspected cause: Paladin is my PRIMARY class, which is automatically unlocked rather than earned through the normal Sky quest chain. My guess is the "Primary Class Unlock - Paladin" achievement is already marked complete in the dump (since it's auto-granted), and its "Obtain X" criteria are either:
Either way, the import is treating a primary-class auto-unlock as equivalent to actually completing the Sky turn-in for that reward, which isn't the same thing.
This seems like it could produce false positives for anyone whose primary class matches one of the Sky-reward classes, which given that's the game's designed starting-class relationship, is probably a common case rather than an edge case — worth checking against a secondary/non-primary class's achievements too, to see if the matching behaves correctly there (i.e. only marks completion when the actual Sky quest turn-in criteria — not a coincidentally-named unlock achievement — is what's satisfied).
Screenshot attached showing the preview with all 4 false-positive matches for reference.
EQBuddy 1.57.1 · Windows 19045
All reactions