EbonBuilds 3.86 release prep¶
Draft only — do not tag or publish
This page tracks 3.86 release readiness. It is not a shipped version.
Do not run scripts/release.sh, push a v3.86 tag, or create a GitHub Release
until you intentionally complete the pre-tag checklist below.
Last updated from main after v3.85 (v3.85..HEAD), 2026-07-24 (post-#102 merge).
Readiness summary¶
| Area | Status |
|---|---|
| Tag / GitHub Release | Ready — no EbonBuilds blockers; pre-tag checklist remains |
CHANGELOG ### 3.86 |
Draft on main; catch-up in this PR |
| Merged since v3.85 | Ready to ship (see table below) |
| Open blockers (EbonBuilds) | None — #96 and #102 merged |
| Recently cleared | #96 (PR #96); #102 (PR #102); #94 (PR #94); #97 (PR #97) |
PE-side follow-up (not an EbonBuilds blocker)
#112 tracks ProjectEbonhold loading item_purchase.lua so the Shop/Vendor affix path can appear. Anvil acquisition shipped in #102; Vendor buttons stay hidden until PE loads the vendor popup — soft-fail, no errors.
Merged to main since v3.85 (ready)¶
| PR | Summary |
|---|---|
| #88 | WotLK-inspired docs artwork and hero chrome |
| #89 | WP3 client IntentQueue stepping stone |
| #90 | WP2 shared automation tie-break policy |
| #92 | Auctionator 2.6.3-pe1 ProjectEbonhold adaptation |
| #93 | WP4 client dry-run simulator |
| #94 | BoardDecision / Automation test coverage expansion |
| #96 | ProjectEbonhold capability audit (GetCapabilities probes) |
| #97 | WP5 client constraints packing (AutomationConstraints) |
| #98 | CI dist zip package smoke check |
| #99 | Pages link fixes; releases doc aligned with v3.85 |
| #100 | Restore full in-game FAQ after MkDocs title regression |
| #101 | SessionHistory logbook UX reliability pass |
| #102 | Affix acquisition: ProjectEbonhold Anvil bridge |
| #103 | Vendored Details!: Tiny Threat PE fork + install docs |
| #104 | Harden Combuctor bag affix quality-dot integration |
| #105 | Changelog catch-up (WP4; capability audit documented ahead of code) |
| #107 | Harden AutoSell GetAuctionItemClasses for 3.3.5a |
Draft GitHub Release body (DO NOT PUBLISH)¶
Short title at publish time: EbonBuilds 3.86
Body below matches the target ### 3.86 section in Changelog
plus the install preamble that scripts/publish-github-release.sh / the Release
workflow prepends. Replace (Unreleased) with the ship date when cutting the release.
Install: Download EbonBuilds.zip
Extract it and drop the EbonBuilds folder into Interface/AddOns/.
Optional affix shopping: Download Auctionator.zip — extract to Interface/AddOns/Auctionator (EbonBuilds enables bridge features when present).
Optional threat meter: Download Details_TinyThreat.zip — extract to Interface/AddOns/Details_TinyThreat alongside Details!; see Details!: Tiny Threat (PE).
3.86 (Unreleased) -- Automation stepping stones, Auctionator PE, and reliability fixes¶
Follow-up to 3.85: client-side automation work packages WP2–WP5 from the server-authoritative Autopilot redesign, Auctionator ProjectEbonhold adaptation, optional Details!: Tiny Threat PE fork, ProjectEbonhold Anvil affix acquisition bridge, expanded BoardDecision test coverage, reliability fixes for bag dots / AutoSell / SessionHistory / FAQ, and original WotLK-inspired GitHub Pages branding.
Added¶
- Intent queue WP3 (#89 / #52): new
IntentQueuemodule — one in-flight autopilot intent (select/freeze/banish/reroll) with duplicate blocking; ack via board identity fingerprint,GetPendingAction()pending-flag drop, or 8s TTL. Wired intoAutomation.ExecuteDecision/RequestFreezeahead of server intent-ack support.ProjectAPI.GetCapabilitiesexposesintentQueueClientandserverIntentAck. Docs indocs/intent-queue-wp3.md; tests intests/test_intent_queue.lua. - Shared tie-break policy WP2 (#90 / #51): centralized score → optional PE
rank→ slot index → spell ID → frozen-preference ordering inScoring(CompareCandidates/IsBetterCandidate), wired throughBoardDecisionandAutomation.TrySelectso equal-weight boards pick deterministically and align with the server redesign. Optional per-cardrankfrom ProjectEbonhold offers; missing ranks fall back to slot-index ordering.DebugServerRankMismatchflags rank disagreements. Tests intests/test_tie_break.lua. - Dry-run simulator WP4 (#93 / #53): new
AutomationDryRunmodule — pure offline evaluator returning policy verdicts (select/freeze/banish/reroll/wait) from board snapshots without calling ProjectEbonholdRequest*. Transcript parser/replay for fixture directives and DebugLog/Logbook line hooks; checked-in #38-class fixture. Docs indocs/dry-run-wp4.md; tests intests/test_dry_run.lua. - Constraints client WP5 (#97 / #54): new
AutomationConstraintsmodule packs Autopilot prefs (protect families, echo policies, thresholds, bans/whitelist, reroll hints) into a versioned table, compact wire blob, and stableconstraintsHash. Constraints attach on each board eval;IntentQueuestores the hash on in-flight intents and clears the queue when prefs change mid-board.GetCapabilities()exposesconstraintsClient;serverConstraintsandserverPolicystay false until ProjectEbonhold ships upload/policy. Docs indocs/constraints-wp5.md; tests intests/test_constraints.lua. - WotLK-inspired docs artwork (#88): locally generated hero background, runic dividers, slate texture, favicon, and feature-card icon silhouettes via
scripts/generate-docs-art.py— no Blizzard client assets. Homepage hero, framed sections, and gold/frost chrome inextra.css; favicon updated inmkdocs.yml. - Auctionator ProjectEbonhold adaptation (#92): vendored fork 2.6.3-pe1 with affix search helpers (
AtrPE_BuildAffixSearchQuery), PE hooks for EbonBuilds Affixes shopping-list sync, defensive AH scan/query wrappers, and AuctionatorBridge query delegation. Tests intests/test_auctionator_pe.lua. - Details!: Tiny Threat PE fork (#103): optional vendored
Details_TinyThreatfor WotLK 3.3.5a with PE compatibility fixes (threat/name API polyfills, realm-qualified names inThreater()). Ships asDetails_TinyThreat.zipwhen the release workflow includes it; install guide indocs/details-tinythreat-pe.md. - Affix Anvil bridge (#102): new
ProjectEbonholdAffixBridgesoft integration with PE ExtractionService / Enchanted Anvil — capability-gated Anvil / Shop row buttons and toolbar shortcuts on the Affixes tab (Vendor hidden until PE loadsItemPurchasePopup; see #112). Tests intests/test_pe_affix_bridge.lua.
Changed¶
- Automation server redesign docs: WP2 tie-break chain, WP3 intent-queue stepping stone, WP4 dry-run transcript schema, and WP5 constraints wire format documented in
docs/automation-server-redesign.md,docs/intent-queue-wp3.md,docs/dry-run-wp4.md, anddocs/constraints-wp5.mdto match landed client behavior. - ProjectEbonhold capability audit (#96): tightened
ProjectAPI.GetCapabilities()probes against live PE exports (pendingFlagsrequiresPerks+SelectPerk;pendingBuildSlotfollows the build-slot API family;activeLoadoutrequires both loadout setters and spell checks); explicitserverPolicy = falseplaceholder for the planned server oracle. Documented server-side gaps indocs/capabilities.md. Tests intests/test_capabilities_audit.lua. - BoardDecision test coverage (#94):
tests/test_board_decision_coverage.lua— freeze-first reroll locks, equal-score tie-break ordering (slot index, server rank, frozen preference), pending/slot-busy waits via BSM + IntentQueue, and freeze-penalty threshold scoring through mocked BoardDecision/Automation paths. - SessionHistory logbook UX (#101): harden Logbook rendering against nil access and scroll edge cases during long runs.
- Docs site (#99): fix broken GitHub Pages links and align the releases page with v3.85 shipping state.
Fixed¶
- In-game FAQ content (#100): restore the full generated FAQ after an MkDocs title change truncated in-game pages.
- Combuctor bag affix dots (#104): harden quality-dot integration for 3.3.5a quality detection and combat-lockdown / taint safety on Combuctor item buttons.
- AutoSell auction categories (#107): harden
GetAuctionItemClassesedge cases so locale/category filters stay stable on 3.3.5a clients.
Pre-tag checklist¶
- [x] EbonBuilds blockers #96 and #102 merged
- [ ] Move
### 3.86 (Unreleased)→### 3.86 (<date>)inCHANGELOG.md - [ ] Run
sh scripts/release.sh 3.86(bumps.toc, regenerates FAQ / What's New, tags locally — review before push) - [ ] Push
main+v3.86tag (triggers Release workflow — only when ready) - [ ] Verify
EbonBuilds.zip,Auctionator.zip, andDetails_TinyThreat.zipassets on the published release page