# BlueprintBazaar

## [v1.0.9](https://github.com/Adam5288/BlueprintBazaar/tree/v1.0.9) (2026-08-16)
[Full Changelog](https://github.com/Adam5288/BlueprintBazaar/compare/v1.0.8...v1.0.9) [Previous Releases](https://github.com/Adam5288/BlueprintBazaar/releases)

- Version 1.0.9: scores correct without Verify, nine new builds  
    Three measured fixes, all verified against the server with /bb diff rather  
    than reasoned about:  
    - Ownership counts entitlements. Housing decor is claimed in copies, so a  
      piece owned but unplaced read as "you have none". quantity +  
      remainingRedeemable is what the server agrees with.  
    - The catalog is not awake at login, and a cold "not found" was cached as a  
      fact - an unlucky first open left every score too low for the session.  
      Nothing is remembered until the game is answering, and the first real  
      answer throws away anything computed before it.  
    - Dye has no catalog entry on any entryType, so its count is genuinely  
      unknowable client-side. It is reported as unchecked rather than guessed,  
      and weighed one line per colour rather than one per bottle.  
    Yesterday these symptoms were nearly papered over with a background request  
    queue, a persistent cache and settle timers. All of that was reverted; the  
    root cause was a single missing field.  
    Library at 37 from 20 builders. Held back: Playfulkitty's full house until  
    she finishes its exterior, and Oojni's Ring, still without a code.  
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>  
- Bake bb-0039: 392 items, the library's biggest interior  
- bb-0021 renamed to Night Elf Window Room, now that the real entrance hall is in as bb-0033  
- bb-0033 released from hold: picture in, description written from it  
- bb-0039 Paladin Order Hall Interior (Adrador), cross-referenced with his exterior  
- build\_library: a 'hold' field, so an entry can wait for pictures without faking a broken code. Holds bb-0033.  
- bb-0036: credit Rahzi with the i he actually uses  
- Bake bb-0035 to bb-0038: manifests and real budgets in  
- bb-0038 Elegant Skylighted Double Guest Room (Lilitu); ROADMAP: multi-part builds, deferred to the version after this one  
- bb-0037 Mage Tower Bedroom by Castalia, her second  
- bb-0036 Alliance Cozy Cottage Plot 47  
- bb-0035 Spring Time Garden by Lilitu  
- Hold bb-0034 (full house): exterior not decorated yet, and the library ships finished builds  
- Playfulkitty: bb-0021 re-exported and alive, plus bb-0033 entrance hall and bb-0034 full house (520 items, the library's largest)  
- Catalog: never cache an answer given before the catalog is awake  
    MEASURED: /bb diff on bb-0031 immediately after /reload reported Wrought Iron  
    Chandelier, Circular Woolen Rug and Silvermoon Beam Platform as unowned; the  
    same command a minute later agreed with the server on all three. The maths  
    was never wrong - the first read happened before the client had the data.  
    The real damage was the cache. A cold "not found" was stored as a fact and  
    stuck for the whole session, so an unlucky first open left every score too  
    low until something happened to clear it. That is what an ordinary player  
    does: log in, open the addon straight away.  
    Failures are now only remembered once the catalog has proven it can answer,  
    and the first real answer wipes everything computed from cold reads and  
    fires OWNERSHIP\_CHANGED so the shelf recomputes itself.  
    Verified: the same test straight after /reload now shows dye alone, which is  
    the one thing the client genuinely cannot see.  
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>  
- Dev commands (probe, diff, dyescan) gated behind /bb dev - players never see them  
- Credit Playfulkitty by the name she asked for, on all six of her builds; add /bb dyescan  
- Score: unknown dye is reported as unchecked, not guessed as missing  
    The catalog has no entry for dye on any entryType, so its ownership is  
    genuinely unknowable client-side - the one thing left that the server knows  
    and we do not. Guessing zero would tell a player with 325 black dye that  
    they are missing five.  
    Unknown dye is left out of the sum entirely and counted separately: the  
    summary says "1 dye unchecked", the row says so too, and Verify remains the  
    way to settle it. Everything else in a build now scores correctly with no  
    server round-trip at all.  
    Verified in game on bb-0022: Verify now barely moves the number.  
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>  
- Ownership: count entitlements, not just held copies  
    Measured, not guessed. /bb probe writes the full catalog struct to  
    SavedVariables (chat clips long lines); /bb diff compares our score against  
    the server per item and prints only disagreements.  
    bb-0022 before: four disagreements. Silvermoon Round Platform read as  
    quantity=0 while the server counted it owned - because housing decor is an  
    entitlement you redeem copies from, and the unclaimed ones sit in  
    remainingRedeemable. Stonework Fountain, with remainingRedeemable=0, we and  
    the server already agreed on.  
    owned = quantity + remainingRedeemable. bb-0022 after: the only remaining  
    disagreement is dye, which has no catalog entry at all on any entryType.  
    Also removes the GetDecorTotalOwnedCount fallback committed earlier today: it  
    answered 325 for every record probed, including a dye the player owns none  
    of. It does not key on recordID and never did - it matched black dye once,  
    by coincidence, and that coincidence was reported as a fix.  
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>  
- Ownership: fall back to GetDecorTotalOwnedCount  
    /bb probe 274464 in game: GetCatalogEntryInfoByRecordID returns nothing for  
    dye on every entryType, while GetDecorTotalOwnedCount answers 325. Dye was  
    never invisible to the client - the ownership path only ever asked the one  
    API that does not know about it.  
    That single missing call is why every build had to be confirmed with Verify  
    by hand, and why yesterday's attempts to fix it with a background request  
    queue, a persistent cache and a settle timer all missed: they were  
    compensating for a lookup we had simply never tried.  
    Adds /bb probe <recordID> so the next unknown gets measured, not guessed.  
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>  
- Revert addon code to v1.0.8: today's score, sort and cache experiments removed. Library data (bb-0030..0032 and their bakes) kept.  
- Score: unknown dye is left out of the sum and reported as unchecked, not guessed as missing  
- Bake bb-0030/0031/0032: manifests and real budgets in  
- bb-0032 Dark Night Elf exterior by Stormm The Underbog  
- bb-0031: credit as Ariadne (Moon Guard), her own choice  
- bb-0031 Black Lodge (Twin Peaks) by itsakidsbooksantiago, linked to her showcase post  
- bb-0030 Dungeon Entrance (Gorescream); clean\_shot: a stamp is one line, so cluster height must stay near letter height - a campfire passed every other test  
- ROADMAP: size ceiling measured (2.3 MB/build in TGA thumbs) - BLP, fewer pixels, split-addon, curation as brake  
