Salad-v0.2.5
What's new
Changelog
0.2.5 (2026-08-22)
- Refresh Marksmanship Hunter's imported priorities from current compatible SimulationCraft data.
- Reject mismatched live cooldown spell identities unless the alternate spell is explicitly reviewed, preventing sibling or transformed spell IDs from silently corrupting recommendations.
- Automatically publish the next patch after a reviewed compatible APL update is merged and every main-branch release gate passes.
0.2.4 (2026-08-22)
- Add a concise startup notice identifying Salad as experimental and directing rotational reports to the CurseForge comments.
- Refresh Shadow Priest to current compatible SimC priorities and remove the retired Nexus-King's Command Flash Heal branch from runtime hydration.
- Repair scheduled APL refreshes so immutable source provenance is validated without stale per-test SHA and line-count pins blocking compatible updates.
- Restore
Salad-vX.Y.Zas both the release archive and CurseForge display name, and stamp the tagged version into the packaged TOC. - Move GitHub workflows to the current Node 24 checkout action.
0.2.3 (2026-08-21)
- Fix tier-created state in future queue slots. Beast Mastery now weaves Cobra Shot after a tier-powered Barbed Shot reaches the Cobra Fang threshold; Arcane projects Cumulative Power across completed Missiles channels; and Affliction projects the four-piece Seed-applied Unstable Affliction and Unstable Empowerment.
- Keep incomplete equipment/pet evidence and random Frost Rapid Refreezing procs fail-closed rather than guessing future state.
0.2.2 (2026-08-21)
- Fix Caps Lock cooldown filtering so Blizzard's Cooldown Manager categories cannot hide short rotational actions such as Flame Shock, Lava Burst, and Elemental Blast. The toggle now filters only explicitly opted-in actions or cooldowns of at least 20 seconds across all supported DPS specs.
0.2.1 (2026-08-21)
- Split the public product boundary.
Saladnow ships only the rotation engine and four-slot suggestion queue; resources, cooldown/buff/defensive rows, and the replacement cast bar ship in the optional dependentSaladHudaddon. - Caps Lock cooldown filtering and the queue's opaque current-cast swipe remain in core, with explicit queue-only regressions. Companion commands fail cleanly when SaladHud is not installed.
- Local packaging and CI now build and verify exact, disjoint Salad and SaladHud archives. CurseForge's Salad packager explicitly ignores the companion source tree.
0.2.0 (2026-08-20)
Initial public release candidate.
Release packaging removes the former
Art/Icon.png, which was an old spell-effect test overlay rather than Salad branding. The strict local manifest now contains runtime files plus only the TOC, license, and changelog; CurseForge packaging also explicitly excludes repository and GitHub metadata.All 26 DPS APL snapshots and hydration skeletons are refreshed together at immutable final-live 12.1 SimC data (
4a9a4854, build 69214). The shared importer/compiler now covers action-qualified charges, current-action projectile fields, target-selection-onlyretarget, and sequential conditional variable updates without spec-local source rewrites. This is an offline compatibility checkpoint, not live optimality or visual proof.Arms and Havoc received a later incremental priority refresh from current SimC
midnight(f8c88c8c, build 69299). Havoc now hydrates Violent Transformation and its action-specific Immolation Aura Demonsurge predicate; both imports retain strict zero-gap compatibility and reviewed skeletons.Shared snapshot ledger (G-006/G-007 infrastructure): a declared
targetDebuff.snapshothook captures the modeled persistent multiplier at application per target GUID;pmultiplier,dot.X.pmultiplier,action.X.pmultiplier, andpersistent_multipliercompile to ledger/live-hook reads that survive projection and target switches. Hookless specs keep their previous neutral/fail-closed behavior.Shared trinket atom contract (G-008/G-014):
compiler.itemMetadataopts a spec into runtime-exact trinket reads (cooldown remains/readiness, use-spell cast time, item level, identity) plus import-time effect metadata (has_use_buff,has_buff.<stat>,cooldown.duration, …) from the newItemMetadata.luaschema; unsourced items stay unknown and fail closed.use_itemsiterators over both trinket slots expand per slot withthis_trinket/other_trinketbound in source order.Hydration duration lint: double-entered debuff durations (ability sugar vs compiler catalog) are cross-checked per source name across all 26 specs.
Test harness:
UnitGUIDis now a per-world mock baseline (mock.unitGUIDs), eliminating a cross-world global leak class.12.1 live HUD follow-up: ordinary instance/world transitions now discard transient modeled buffs, RtB identity, proc stacks, summons, and target state while preserving real cooldown clocks and long maintenance poison. Buff countdown text refreshes smoothly at one tenth of a second without increasing the quarter-second state/artwork sampling cadence. If 12.1 protects the active RtB viewer item's identity getters, its plain rendered icon can prove a stage only when it uniquely matches one reviewed container; inactive, hidden, secret, or colliding artwork remains unknown.
Full-charge actions now seed their pinned recharge duration in projection when Blizzard reports no active charge clock, preventing Crash Lightning from repeating through every future queue slot. Pressing
Caps Locktoggles the abilities in Salad's reviewed cooldown row out of the queue while keeping ordinary rotational buttons in source priority; slot one's border turns blue while that filter is active and returns to gold when restored.Automatic AoE evidence now accepts readable party/raid threat and enemy target-of-target witnesses, so a tank, follower, or proximity pull can establish the pack before the player personally hits every mob. The slash override remains diagnostic-only and is never required during combat.
Rogue resource pips now render Supercharger positions in blue from either the exact position auras (
470398/470406) or the deterministic charge ledger armed by a witnessed Adrenaline Rush. The same ledger feeds the importedbuff.supercharge_*atoms, preventing a reset Between the Eyes from consuming the final charge reserved for Killing Spree when combat aura reads are unavailable.Deterministic live/projection bridges now keep six additional source atoms honest: exact Opportunity stacks outrank delayed glows, Windwalker potion conditions use the configured public item cooldown, Demonology records Hand/Ruination shard spend before the cast without double-counting native Wild Imps, Evoker instant-cast flags remain projection-only, and Avatar's exact two-stack Thunder Blast grant survives hidden live aura reads.
Warrior PTR readiness: native Battle/Berserker Stance auras suppress the precombat reminder, one projected Charge resolves movement intent instead of repeating across queue slots, and Heroic Strike requires the live Slam-button transformation rather than permissive usability.
Self-referential SimC variables now latch across priority passes: a first definition's self reference reads the previous pass's retained value instead of a compile-time constant, restoring Havoc's
rg_inchold onreavers_glaive. A variable reference that no source line ever defines is now an explicit compile gap instead of a silently dead condition.The replacement cast bar wakes for empowered casts (Fire Breath, Eternity Surge): the empower events now drive the same refresh path as casts and channels, so hiding Blizzard's bar can no longer leave an empower with no bar at all.
Season 2 day-one APL refresh: the 13 upstream-drifted snapshots are re-pinned together at post-tuning SimC
58372e5e(Balance, Feral, and Windwalker are full priority rewrites), after verifying the Aug 18 tuning pass carried no mechanical changes. New shared language landed with it:potion.<name>identity atoms against the exact-ID catalog, bare current-actioncost, Marksmanship's Rapid Fire tick model forticks_remain, andpre_pot_timeclassification. The regenerated item catalog adds Liquid Luster and the Season 2 trinkets, andline_cdsource lines now hold across queue projection.Affliction models the 2026-08-13 hotfix: Seed of Corruption is free under Shard Instability and consumes one stack on cast, matching Unstable Affliction's existing contract.
Current-upstream follow-up (2026-08-20): Affliction, Elemental, Frost Death Knight, Marksmanship, Retribution, and Subtlety are re-pinned together at SimC
a3a9980e. Retribution now hydrates Seal of the Templar, Dawnlight, and both Divine Arbiter result auras; Subtlety now hydrates Lingering Shadow and its exact Midnight Season 2 set classifier. This is a source/hydration checkpoint, not a claim of live rotational acceptance.Outlaw Rogue (production): SimC-derived priority display driven entirely by a simulated combat model — Midnight 12.0 secret values are never read, only reconstructed from readable side channels (cast events, combo points, usability booleans, Cooldown Manager lifecycles) and audited against public bounds.
Energy estimator with exact affordability snaps, learned residual bias, and contradiction auditing (false hidden Thistle Tea predictions roll back).
Transformed actions now spend the public cost from their live cast alias in both live state and queue projection (including Coup de Grace
441776->441423); flight logs retain live/canonical/applied cost provenance and non-mutating combat-text Energy occurrence classifications.Cooldown/buff HUD rows, cast bar, Roll the Bones stage badge, keybind labels, and suggestion queue with pooling plus
CHANNEL/STOPstates.Friend-facing HUD controls: shared
/salad scale, reversible/salad castbar, and a persistent badge on experimental rotations.Blocking zero-warning Lua lint plus a CI clean-package manifest and extracted-addon smoke test.
Source-native Outlaw migration candidate with full production hydration, isolated live-bug composition, adapter-owned exact RtB stage identities, and an explicit reversible maintainer test mode.
Generic source-APL
interrupt_ifguidance remains available. The final 12.1 Outlaw source removed Killing Spree's early-stop predicate, so Salad does not retain class-localSTOPguidance after that upstream removal.APL language audit and class-neutral compiler hydration: strict fail-closed defaults, exhaustive source-option policy, reusable public-power atoms, lower-bound resolvers, and declarative action readiness. Outlaw compiler exceptions moved into its spec manifest; Mage/Warrior/Paladin share the new language paths.
Experimental source-native rotations for every other Midnight DPS specialization, including both Enhancement hero trees and shared Rune/Runic Power support for Frost and Unholy Death Knight (canonical SimC imports, not yet validated against live combat; clearly labeled at login).
Diagnostics: /salad probe API snapshots and the flight recorder with an offline analyzer for post-pull audits.
This mod has no additional files

