Crafting Army Manager for Alts

Account-wide panel for Midnight crafting alts that tracks weekly treatises, quest status, concentration pools, Moxie, and pulls missing treatises from your bank automatically.

File Details

v0.8.0

  • R
  • May 25, 2026
  • 57.86 KB
  • 4
  • 12.0.5
  • Retail

File Name

Treatises-v0.8.0.zip

Supported Versions

  • 12.0.5

Treatises

v0.8.0 (2026-05-25)

Full Changelog Previous Releases

  • feat: concentration tracking, sortable columns, context menu, column visibility, summary bar
    Concentration:
    • Add CONCENTRATION_CURRENCY_IDS map (verified Midnight currency IDs 3161-3168)
    • Read concentration via C_CurrencyInfo on login, bag updates, and TRADE_SKILL_SHOW
    • RecordConcentrationObservation stores last reading and refines regen rate from observations
    • GetConcentrationDisplay projects forward using 1/310s default rate; shows exact value
      immediately after a read, estimated (~) value between reads
    • Conc. and MAX columns added to each profession block in the main panel
    • MAX column formats as minutes, hours, or a specific day/time (e.g. Fri 6pm)
      Panel and UI:
    • All column headers converted to sortable buttons; active sort shows ^ / v indicator
    • Dividers between Realm/Prof1 and Prof1-MAX/Prof2 blocks
    • Right-click context menu on character rows: Swap Professions, Untrack Character
    • Swap Professions persists a professionDisplaySwapped flag applied at analysis time
    • Untrack Character removes saved data and invalidates cache
    • Column visibility checkboxes in Options > General (Treatise, Quest, Moxie, Conc., MAX)
      — hides columns from display without stopping tracking
    • Options Characters tab: checkboxes now labelled Show (was Hide); All checkbox added
      at top-right for bulk show/hide; scroll position no longer resets on checkbox click
    • Floating summary bar: draggable, resizable, toggled via /treatises bar or Options
      Bugfixes and cleanup:
    • math.max(0, elapsed) guards against negative elapsed from clock adjustments
    • Nil guards on realm/name in GetSortedCharacters tiebreaker sort
    • professionConcentrationCurrencyIDs nilled on load to clean up stale SavedVariables data
    • DebugConcentration trimmed to print current state only (no API/currency scanning)
    • Renamed Auto remove from warband bank -> Auto pull treatises from warband bank
      Docs:
    • README rewritten to cover all new features, columns, options, and summary bar
      Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
  • Merge pull request #2 from SandShock-Modifications/copilot/review-code-logical-errors
    fix: resolve logical bugs, dead code, and CI failures from luacheck warnings
  • fix: add missing WoW globals to .luacheckrc and wrap long lines from merge
  • merge: resolve conflicts with origin/main (quest/currency tracking, autoPullAttemptCount)
  • tracking quests, currencies
  • fix: code review — logical errors, dead code, bad habits, and line-length warnings
    • Util.safeCall: fix 5-value truncation by using table/unpack so all return
      values are forwarded (fixes GetProfessionInfo and similar 11-value APIs)
    • IsInRestrictedInstance: remove dead RESTRICTED_INSTANCE_TYPES lookup; the
      final unconditional return true made it unreachable. Simplified to a
      single inInstance check with an explanatory comment.
    • Remove Constants.RESTRICTED_INSTANCE_TYPES (now unused constant)
    • GetCurrentCharacterProfessions: fix independent sort of two parallel arrays
      (midnightProfessionIDs / midnightProfessionNames); sort them together to
      prevent desync in non-English locales
    • GetProfessionItemID: remove unused record parameter and update call sites
    • Treatises_Core: remove unused Constants import (luacheck warning)
    • Treatises_Core HandleSlashCommand: remove unused rest variable (no command
      currently uses arguments; luacheck warning)
    • Treatises_Core: remove PLAYER_REGEN_DISABLED event registration — the event
      has no handler; activity blocking is already handled reactively
    • .luacheckrc: add GetItemCooldown, GetItemSpell, GetSpellCooldown, C_Spell to
      read_globals; move SlashCmdList from read_globals to globals (it is written)
    • Fix all 40 pre-existing line-too-long luacheck warnings across all four files
  • Initial plan
  • fixes and tests
  • Pause addon during restricted activities
  • Reduce addon Lua error risk
  • fixes