v1.0.1
What's new
Saddlebags
v1.0.1 (2026-09-20)
Full Changelog Previous Releases
- Call them bars in the code, the way the UI already does
Every string the player sees has said "bar" for a long time — "Enter a
name for the new bar:", "+ Add a bar to this page", "Remove page and
every bar on it" — while the code behind them said section throughout:
sectionIdx, sectionSlots, StartSectionDrag, Saddlebags:AddSection, and
about sixty comments. Two vocabularies for one thing, with the boundary
falling wherever a string happened to be user-facing.
The API becomes Bars, AddBar, RemoveBar, RenameBar, MoveBarToPage and
ToggleBar. Locals, frames, drag state and comments follow.
Three occurrences deliberately stay "section", because they do not mean a
bar: the comment in UI pointing at the item-drag section of the file, and
the two describing Blizzard's own expandable sections in the Settings
panel, one of which names SettingsExpandableSectionTemplate outright.
The saved-variable key stayssectionsas well. Renaming it would mean
migrating the layout of everyone who has installed from CurseForge since
v1.0.0 went up, and there is no version stamp on the saved data to key a
migration off — MigrateAndValidate infers shape. The key is now the one
place the old word survives in code, so Saddlebags:Bars carries a comment
saying why. Four comments that read "section bar" became "bar bar" on the
way through and were reworded.
The README follows the same vocabulary: panel, page and bar throughout,
no window and no section. Its install and usage sections are rewritten to
match the description on CurseForge, and the usage prose becomes the
onboarding list that description now leads with.
Checked with LuaJIT: every file still parses, the set of globals each one
assigns is unchanged (Saddlebags, SaddlebagsDB, SaddlebagsUI,
SaddlebagsPicker, SaddlebagsIconPicker and the two SLASH_ names), and no
global that is read gained or lost a Bar or Section spelling, so no
Blizzard API name was caught by the rename. Every Bar call site was
matched against its definition by hand. Exercised in game on a fresh
install: adding toys to a bar, creating a second page with a custom icon,
adding and naming a bar on it, and collapsing bars all persisted and
reloaded correctly under the unchanged key.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com - Start new installs with a Hearth bar instead of Slow Fall
The two default bars exist to show the shape of the thing rather than to
be kept, so they are worth picking for how many people have something to
put in them. Hearthstone toys are a large and near-universal group;
slow-fall is one trinket and a couple of class effects.
DEFAULTS only applies to a fresh install and to the pre-pages migration
fallback, so nobody running the addon today has a bar renamed under them.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com - Fill in the CurseForge project ID
The project came through moderation as 1703879, so the field the last
commit left empty can be filled and the note above it can stop describing
a future that has arrived. This is the second of the two things the
packager needs before it can upload; the CF_API_KEY secret is the other,
and still has to be set on the repository.
v1.0.0 is already on CurseForge, uploaded by hand, so the first tagged
release will be the first one this workflow actually publishes.
The README picks up the project's URL in the install section and drops
the instruction to fill the ID in, which no longer applies.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com - Soften the byline
The author's own wording change, committed alongside the rest of this
pass rather than left sitting in the working tree.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
This mod has no additional files

