Skip to content

Releases: NennMichSchinken/LumenUI

v0.9.107-beta

v0.9.107-beta Pre-release
Pre-release

Choose a tag to compare

@NennMichSchinken NennMichSchinken released this 03 Jul 14:37
282df9c

LumenUI

v0.9.107-beta (2026-07-03)

Full Changelog Previous Releases

  • Merge pull request #48 from NennMichSchinken/dev
    Beta update: shell redesign v2 + performance audit (v0.9.107)
  • Merge pull request #47 from NennMichSchinken/feature/perf-audit
    Feature/perf audit
  • shell: build the first screen one frame after show, never cache hidden-built screens
    Building inside OnShow ran before the panel subtree had valid rects after
    /reload - widgets computed layout from width 0 and could stay degenerate
    (no slider track/thumb, blank value box) until a scroll forced a re-layout.
    Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • shell: fix cold-start slider glitch — warm fonts per size, repaint slider on show
    Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • perf: split raidframe render by event, cache shell screens
    Audit package (A1-A5, B1, E):
    • render split: health ticks no longer re-scan auras; dispel result
      cached per frame; aggro only on threat events
    • unit-event handler bails on one hash lookup (fires for all world units)
    • whitelist resolved once per spec, not per UNIT_AURA render
    • PLAYER_SPECIALIZATION_CHANGED filtered to the player (raidframes + click-cast)
    • calculator max-health mode set once; learnedIID wiped on world enter
    • blizzard-frame suppression no longer calls Hide() on protected frames in combat
    • shell: screens cached per section/tab (frames are never GC'd), tab buttons
      pooled, cache dropped on any data change / profile switch / spec change
      Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • Merge pull request #46 from NennMichSchinken/feature/shell-redesign
    Feature/shell redesign
  • shell: add buttons go secondary gold (green dropped), tabs remember last selection per section
    Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • shell: phase 4 sweep — success as palette E3, two-gold rule on arrows/select, D3 disabled
    Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • shell: sidebar runs full height, wordmark moves into the nav brand block
    Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • shell: phase 3 chrome — gold nav/tab fills, tab badge, drop runes+footer
    Co-Authored-By: Claude Fable 5 noreply@anthropic.com
  • tracking: trash icon permanently red, catalog size (22px), no tooltip
    Florian feedback: grey icon drowned next to the row text; the icon tooltip
    fought the row's spell tooltip (jumpy on hover-across); 18px too small.
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • shell: phase 2 — v2 button hierarchy + refinements 1/2/3/5
    • W.Button: flat v2 variants — primary = interactive-gold fill (gradient
      removed), NEW secondary = gold outline, neutral = grey element (ghost is
      now an alias of it), danger = red outline; success kept for the catalog
    • field labels: primary text instead of gold (gold stays reserved for
      headers/actives/brand)
    • spell-picker trigger restyled as a secondary button (transparent, gold
      outline)
    • stack:section(title, opts): count chip right of the title (muted at 0)
      • quiet header action link (muted, golden on hover)
    • tracking: count + 'Restore defaults' moved into the section header (the
      footer keeps only '+ Add spell'); rows on element surface with hover =
      elementHover + brand-gold left edge; 'Remove' text button replaced by a
      quiet trash icon (red on hover); empty categories show a dashed
      empty-state box with a proper sentence (new deDE string)
    • new shared dims: sectionCountGap/H/Pad; tracking.trash replaces removeW
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • shell: measurement schema — UI.LAYOUT now mirrors the nav tree
    Same principle as the color palette, applied to measures:
    • UI.WIDGET = ONLY shared component dimensions (rule: visible in more than
      one screen -> WIDGET; exactly one screen -> LAYOUT.)
    • UI.LAYOUT restructured to mirror the left nav top-down:
      global.profile / clickcast / raidframes.{base,sizeArrange,tracking}
    • moved screen-specific keys out of UI.WIDGET: track* -> raidframes.tracking
      (rowH/removeW), sort* -> raidframes.base.sort, cc* -> clickcast
    • trackIcon -> spellIcon (genuinely shared: picker, tracking rows, catalog)
    • consolidated tab-top spacing: base.topToToggle + clickcast.topToHead ->
      general.tabTop (one value, same meaning)
    • dropped dead keys (transparenz block, 3x lebensbalken, 3x general)
    • German category names -> English (lebensbalken -> healthbar etc.)
      Pure refactor — zero visual change. luacheck 0/0.
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • docs: last German word in a code comment -> English
  • shell: v2 feedback round 1 — uniform picker rows, neutral popover borders, lighter card headers, roomier tracking rows
    • spell picker: drop the zebra alternation (was element vs card = too harsh
      on the v2 palette); uniform element cells + faint separators, hover uses
      elementHover
    • popover borders (spell picker, confirm/import dialogs, tooltip) neutral
      B2 instead of gold; gold stays on open/active control edges
    • signature top accents + section accent bars = brand gold C1
    • section card header bar now LIGHTER than the card body (P.element), per
      Florian's mockup
    • tracking rows 36->44 with 8px gaps — the Remove button breathes
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • shell: phase 1 of design line v2 — central A/B/C/D/E palette block
    • Tokens.lua: new UI.P palette (Florian's locked v2 values) as the single
      source of every color; legacy UI.C names remapped onto it so all widgets
      and screens pick up the new look without call-site changes (phases 2/3
      migrate call sites onto UI.P directly)
    • UI.line: structural lines now neutral (B1/B2) instead of gold-at-opacity;
      gold remains only on active/open states and hover washes
    • unify in-game accents onto brand gold C1 #E9BB69 (mouseover/target edge,
      edit-mode overlay, ESC-menu button, chat print incl. deDE key)
    • bump version to 0.9.105
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • ci: prevent duplicate release runs for the same tag (concurrency guard)
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

v0.9.104-beta

v0.9.104-beta Pre-release
Pre-release

Choose a tag to compare

@NennMichSchinken NennMichSchinken released this 02 Jul 19:55
0519135

LumenUI

v0.9.104-beta (2026-07-02)

Full Changelog Previous Releases

  • Merge pull request #45 from NennMichSchinken/dev
    docs: add honest About + Contributing sections to README
  • docs: add honest About + Contributing sections to README
  • Merge pull request #44 from NennMichSchinken/dev
    added logo
  • added logo
  • Merge pull request #43 from NennMichSchinken/dev
    dev into main
  • Merge pull request #42 from NennMichSchinken/libs-drop-unused-AceTimer;-docs-README-+-remove-stale-AceConfig-refs
    libs: drop unused AceTimer; docs: README + remove stale AceConfig refs
  • libs: drop unused AceTimer; docs: README + remove stale AceConfig refs
  • Merge pull request #41 from NennMichSchinken/feature/3-clickcast-catalog
    clickcast: action-catalog UI redesign + EUI catalog (Stage 2)
  • clickcast: action-catalog UI redesign + EUI catalog (Stage 2)
    Replace the per-binding panels with a compact action catalog: one card row
    per binding (icon + name, keybind, options gear, enable switch, delete), in
    Standard + Custom-spells sections. One keybind field routes click vs hover by
    key type; modifiers captured inline. Adds the EUI spell catalog (external
    defensives, smart rez, trinkets) with smart per-class defaults + migration.
    New widgets: Switch, SectionLabel, MenuButton, SquareIcon, IconButton, gear
    popover, bare pickers, dashed/solid keybind border. Settings + delete icons
    (Icons8) as gold-tinted TGA textures. All row metrics central in UI.WIDGET.
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • Create SECURITY.md for security policy
    Added a security policy document outlining supported versions and vulnerability reporting.
  • Merge pull request #40 from NennMichSchinken/feature/3-hovercast
    clickcast: rebuild hovercast (race/clear/keybind-grab fixes
  • clickcast: rebuild hovercast (race/clear/keybind-grab fixes
  • Merge pull request #39 from NennMichSchinken/feature/1-aura-restructure
    raidframes: per-context aura settings + collapsible (Feature 1)
  • raidframes: per-context aura settings + collapsible (Feature 1)
    Dissolve the standalone Auras tab; the aura display knobs (enabled,
    max icons, spacing, auto-fit, swipe, debuff filter) are now per context
    and live in a collapsible section at the bottom of the Raid and Group
    tabs. The tracked-spell list stays shared in the Tracking tab. New
    W.Collapsible widget; collapsed by default, state remembered per
    context. No data carry-over (fresh defaults); Core migrate v5 strips
    the obsolete shared aura knobs.
    Also fixes found while testing on the renamed (LumenUI) folder:
    • assets: build font/texture paths from the addon-folder name (ADDON)
      instead of a hardcoded Lumen, so a folder rename no longer breaks
      fonts/textures.
    • shell: derive the scroll range from the content height instead of the
      frame-late GetVerticalScrollRange, fixing an oversized/overflowing
      scrollbar after collapsing a section.
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • Merge pull request #38 from NennMichSchinken/dev
    Dev
  • chore: english comments in .pkgmeta and release workflow
  • brand: rename product to LumenUI (formal name)
    Formal product name -> LumenUI everywhere the user sees/types it:
    .toc Title + filename (Lumen.toc -> LumenUI.toc), package-as,
    AceAddon name (chat prefix), ESC-menu button, Shell wordmark,
    /lumenui slash command (/lumen + /lu kept as aliases), README.
    Short name 'Lumen' kept in running prose (locale strings) and for
    internal identifiers that no user sees or that would force churn:
    SavedVariables LumenDB, frame names (LumenShellFrame, LumenUnit*,
    LumenCC*), and the Share export-code tag (payload.addon='Lumen',
    kept for code compatibility).
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • release: link CurseForge project (X-Curse-Project-ID 1590189)
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • release: add BigWigs packager workflow + .pkgmeta
    Tag (v*) -> BigWigs Packager -> CurseForge/Wago. Libs are bundled
    from the committed Libs/ folder (no externals). Dev artifacts
    (.luacheckrc, tools, .github, *.md) excluded from the package.
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • Merge pull request #37 from NennMichSchinken/i18n-remaining-strings
    i18n: localize remaining UI strings, drop dead widget gallery
  • i18n: localize remaining UI strings, drop dead widget gallery
    Wrap the last German user-facing strings in ns.T() with deDE pairs:
    ClickCast KEY_DISPLAY/MOD_DISPLAY (filled on locale-ready) and the
    "No spec" fallback; Widgets search/empty/confirm/keybind placeholders;
    Shell error print. Delete the unreachable Gallery sandbox screen and its
    file-level locals; the dead else-branch becomes a no-op. Bump to 0.9.87.
    Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • Merge pull request #36 from NennMichSchinken/cleanup-english-comments-part2
    cleanup: translate remaining code comments to English (part 2)
  • cleanup: translate remaining code comments to English (part 2)
  • Merge pull request #35 from NennMichSchinken/cleanup-remove-ace-shell-and-english-comments
    cleanup: remove the AceConfig backup shell + translate comments to En…
  • cleanup: remove the AceConfig backup shell + translate comments to English (part 1)
    The suite shell is now the only UI, so the old AceConfig backup is gone, and
    the code starts moving to English comments for an international repo.
    Remove AceConfig backup shell:
    • Delete Options.lua; OpenConfig just toggles the suite shell (no "ace" arg,
      no fallback); drop the SetupOptions() call in Core.
    • Drop now-unused libs from embeds.xml and Libs/: AceGUI-3.0, AceConfig-3.0,
      AceDBOptions-3.0.
      Localize the Lumen texture dropdown labels (Shield/Heal-absorb): the stored
      value stays the German key ("Lumen Schild"/"Lumen Heilabsorb", needed for
      texture/pattern matching), only the shown label is translated.
      Translate comments to English (part 1): GameMenu, EditMode, Style, Core,
      Modules/MiniCC, Modules/Share, Locales/Locale, Locales/deDE (comments only,
      German values kept). Remaining large files (Tokens, ClickCast, Shell, Screens,
      Widgets, Raidframes) follow in a part 2.
      luacheck 0/0. Version 0.9.85.
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • Merge pull request #34 from NennMichSchinken/shell-localization-i18n
    i18n: localize the suite shell (English default + German, auto-detect)
  • i18n: localize the suite shell (English default + German, auto-detect)
    Add a lightweight localization layer so the suite shell is usable
    internationally: English is the code default, German is a full
    translation, and the WoW client language is auto-detected.
    • Locales/Locale.lua: ns.T("english") / ns.L lookup (key = English
      source, falls back to the key). ns.onLocaleReady registry +
      RunLocaleReady so string-bearing module constants (dropdown option
      lists etc.) are built AFTER the language is resolved.
    • Locales/deDE.lua: ~240 German translations.
    • Language resolved from db.global.language ("auto" | "enUS" | "deDE")
      in Core:OnInitialize; "auto" follows GetLocale(). Manual picker
      (Auto / English / Deutsch) added to the Global > Base tab; switching
      prompts a reload.
    • All user-facing strings wrapped in T() across Screens, Widgets, Shell
      (ComingSoon + nav tooltip), Core print, Share error texts, Raidframes
      reload popup + aggro text, ClickCast mouse/modifier/action labels.
    • SECTIONS nav/tab labels and module/brand names stay English on
      purpose (they double as ns.Screens lookup keys / §4.1 product terms).
      Note: Options.lua (the /lumen ace backup config) is still German and
      will be localized in a follow-up. Version bumped to 0.9.84.
      Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
  • Merge pull request #33 from NennMichSchinken/raidframes-add-aggro-only-in-dungeon/raid-option-(default-on)
    raidframes: add "aggro only in dungeon/raid" option (default on)
  • raidframes: add "aggro only in dungeon/raid" option (default on)
  • Merge pull request #32 from NennMichSchinken/raidframes-exempt-own-tank-spec-from-aggro-overlay-when-role-unassigned
    raidframes: exempt own tank spec from aggro overlay when role unassigned
  • raidframes: exempt own tank spec from aggro overlay when role unassigned
  • Merge pull request #31 from NennMichSchinken/Global-tab-(profile-mgmt-+-export/import-popup)-
    shell: Global tab (profile mgmt + export/import popup) + coming-soon …
  • shell: Global tab (profile mgmt + export/import popup) + coming-soon nav + UI.Border position fix
  • Merge pull request #30 from NennMichSchinken/clickcast-shell-screen
    clickcast: suite-shell screen (mouse bindings); hovercast deferred to P2
  • clickcast: suite-shell screen (mouse bindings); hovercast deferred to P2
    Click-Cast als Suite-Shell-Screen (ein Tab "Klick auf Frame"), verdrahtet gegen ns.ClickCast.
    • Maus-Bindings: Maustaste / Aktion / Modifier (Dropdown), Spell-Auswahl per W.SpellPicker
      (suchbar/scrollbar, mit Icon), Keycap-Kopf, "Nur ausserhalb Kampf" jetzt auch fuer Menue
      (verhindert versehentliche Menues im Kampf - wirkt nur auf Lumens Frames).
    • ClickCast.lua...
Read more