Skip to content

Releases: cjber/hoard-forever

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:30
e5329aa

Hoard Forever

v0.1.5 (2026-11-03)

Full Changelog Previous Releases

  • chore(release): 0.1.5 (#37)
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • fix: localize source tooltips and clarify empty searches (#36)
    Use the row's translated source label in tooltips and omit the link hint
    when no results exist. Cover both regressions with the loaded UI harness
    and refresh the empty-state preview.

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:15
56ae87a

Hoard Forever

v0.1.4 (2026-11-03)

Full Changelog Previous Releases

  • chore(release): 0.1.4 (#35)
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • fix: preserve bank snapshots and align Hoard UI (#34)
    • fix: preserve bank snapshots and align hoard UI
      Keep cached bank records when a bag-only scan runs after the bank closes, and
      track bag and bank ages independently so stale data remains honest. Refresh the
      window with the native portrait, search box and bottom panel tabs, compact the
      result rows, localise visible status and source labels, and update the mock to
      the pinned Forever build with honest cloth examples.
    • fix: correct shared guidance pin
      Point the contributor guide at the verified merged Forever Core commit and
      use the repository's colon style for standards pointers.
    • fix: regenerate native hoard screenshot evidence
      Replace the conflicted screenshot manifest with fresh records. Render the
      PortraitFrameTemplate rock and streak layers and align row coordinates with
      the runtime anchors. Keep localized search status messages as whole sentences.
  • fix: retain closed-bank results and combine uncached item records (#33)
    Use the current character's saved bank while a live bank scan is
    unavailable. Group item variants independently of cached display data,
    filling missing metadata from other records. Cover both regressions.
  • ci: fix the Sloppatrol gate path, fold the changelog into project-rules, pin the runner (#32)
    • ci: fix the Sloppatrol gate path, fold the changelog into project-rules, pin the runner
    • The Sloppatrol profile's gate check called .sift/gate.py, which does not
      exist; it now calls .sloppatrol/gate.py and .sloppatrol/agents.py.
    • The changelog check moves from its own job into project-rules, as in the
      published addons.
    • tools/typecheck.sh runs tools/typecheck_coverage.py, as Commissions does, so a
      LuaLS setting that would skip a TOC-loaded file fails the typecheck.
    • Every job runs on ubuntu-24.04 instead of ubuntu-latest.
    • AGENTS.md lists the jobs and the deadcode command; the Speedpatrol
      instructions say why CI runs no benchmark here (no bench script).
      Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
      Claude-Session: https://claude.ai/code/session\_01P9EQuFw4Vx9qUMezvtTuRU

    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 02 Nov 18:17
c613882

Hoard Forever

v0.1.3 (2026-11-02)

Full Changelog Previous Releases

  • chore(release): 0.1.3 (#31)
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • fix: run LuaLS in typecheck and read the Forever bag indices in Snapshots.Scan (#30)
    • CI's typecheck job installed no language server, so tools/typecheck.sh
      stopped after the tooling checks and never checked a type. It now pins
      the Ketho/vscode-wow-api annotations and lua-language-server 3.19.1,
      runs the server into a fresh report dir and fails on any diagnostic.
      types/ adds the minimum FrameXML declarations that needs.
    • Snapshots.Scan read container -1 as the bank (the keyring on the Forever
      client), counted the reagent bag among the bank tabs and missed the
      reagent bag in Bags. It now takes its containers from Enum.BagIndex -
      carried bags 0..NUM_BAG_SLOTS plus ReagentBag, the bank as
      Characterbanktab plus CharacterBankTab_1..9 - with the same numbers as
      fallback on a client without the enum, and never reads the keyring.
    • tests/snapshots_spec.lua covers bag-only, an open bank with the Forever
      enum, and a client with no enum at all.
      Refs #29
      Claude-Session: https://claude.ai/code/session\_01JcwULHwLekhyjYKyVykXY3
      Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • docs: caption the store screenshots and check the copy in CI (#28)
    The store page stacked its three screenshots with no text between them,
    so check_copy.py failed on it (WFA-25). Each image now has a line under
    it saying what to look at.
    No addon ran check_copy.py in CI, so the failure went unnoticed.
    typecheck.sh now runs it on the README and the store page, beside the
    family block and locale checks the typecheck job already runs.
    Claude-Session: https://claude.ai/code/session\_01UkMWrynmLdVQj4NFs9fs4Z
    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
  • fix: open on the default tab and show each alt's snapshot age (#27)
    • settings.defaultTab was declared but never read. The window now opens on
      it (All for a value no tab has), and Settings > AddOns gains the "Open on
      tab" dropdown the build brief lists, so the setting can be changed.
    • Alt stacks carry their snapshot's time, and the result tooltip lists each
      alt's stack with a dimmed "Updated 3d ago", so an old reading is not taken
      for what the alt carries now.
      Claude-Session: https://claude.ai/code/session\_01UkMWrynmLdVQj4NFs9fs4Z
      Co-authored-by: Claude Opus 5.5 noreply@anthropic.com

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 02 Nov 17:22
9862e8b

Hoard Forever

v0.1.2 (2026-11-02)

Full Changelog Previous Releases

  • chore(release): 0.1.2 (#26)
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • chore(ci): move the project rules from .sift to .sloppatrol (#23)
    Co-authored-by: merge-patrol[bot] <349684721+merge-patrol[bot]@users.noreply.github.com>
    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
  • fix: count bank items once, keep the vault off Alts, and scroll long results (#25)
    Bugpatrol found these against the headless harness; each is covered by a
    spec that fails on the old code.
    • The open-bank scan looped over containers -1 to NUM_BANKGENERAL_SLOTS,
      which includes the carried bags 0 to 4, so every carried stack counted
      twice. It now reads -1 and the bank bags after NUM_BAG_SLOTS.
    • Guild records carry the guild name as their holder, so the Alts tab
      matched them. Alts now skips guild sources.
    • Rebuild saved this character even with "Record this character for the
      Alts tab" off. It now shares SaveSnapshot, which honours the setting.
    • The result list had no scroll frame, so rows past the fifth drew below
      the window. Rows now sit in a scroll child sized to its rows.
    • Rows show the item tooltip on hover, the status says "1 result." for a
      single match, and clearing alt snapshots rebuilds the index.
    • The Sloppatrol profile drops the screenshots check, which a run
      checkout cannot pass after any source change.
      Claude-Session: https://claude.ai/code/session\_01UkMWrynmLdVQj4NFs9fs4Z
      Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
  • ci(patrols): add speed and sloppatrol profiles over the gate (#24)
    Both wrote unusable defaults for this repo (an HTTP API and a failing placeholder
    check), so the profiles are by hand: speedpatrol times the spec suite and
    tools/typecheck.sh, sloppatrol's oracle is the gate itself. The linters now skip
    the patrol run folders, which hold whole checkouts of the repo.
  • f"chore: update Mergepatrol skill (#{n})"
    Co-authored-by: merge-patrol[bot] <349684721+merge-patrol[bot]@users.noreply.github.com>
  • ci(bugpatrol): add the profile that drives the harness (#21)
    The game client cannot run here, so the app Bugpatrol explores is the
    headless Lua harness: the specs stub the client API and load the addon
    files in TOC order. The profile names the read-only invariant that matters
    most, and forbids launching the game or editing files.
    AGENTS.md said python3 tools/typecheck.sh, but the file is a bash script and
    CI runs it with bash.
  • ci(mergepatrol): queue this repo through Mergepatrol (#20)
    Add the config file Mergepatrol reads from the default branch, and the
    agent skill that tells coding agents to queue PRs rather than merge them.
  • chore(deps): bump astral-sh/setup-uv from 10.3.2 to 10.3.3 in the actions group (#19)
    Bumps the actions group with 1 update: astral-sh/setup-uv.
    Updates astral-sh/setup-uv from 10.3.2 to 10.3.3
    updated-dependencies:
    • dependency-name: astral-sh/setup-uv
      dependency-version: 10.3.3
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: actions
      ...
      Signed-off-by: dependabot[bot] support@github.com
      Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • ci: shorten the Dependabot cooldown to one day (#18)
    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
  • docs(readme): name the live _forever_ client folder on install (#17)
    wowaddon 1.0.0 and the suite's AGENTS.md docs now treat the live WoW: Forever
    client as the _forever_ folder; the beta keeps _classic_beta_. Install paths
    in the README name both so neither reader is sent to the wrong folder.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • docs(agents): commits are signed with git commit -S (#16)
    Claude-Session: https://claude.ai/code/session\_01UkMWrynmLdVQj4NFs9fs4Z
    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
  • chore(deps): bump astral-sh/setup-uv from 10.3.0 to 10.3.2 (#15)
    Bumps the actions group with 1 update: astral-sh/setup-uv.
    Updates astral-sh/setup-uv from 10.3.0 to 10.3.2
    updated-dependencies:
    • dependency-name: astral-sh/setup-uv
      dependency-version: 10.3.2
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: actions
      ...
      Signed-off-by: dependabot[bot] support@github.com
      Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • chore: standardise dependabot (daily, 7-day cooldown, grouped)

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 30 Oct 20:37
e8bc8ad

Hoard Forever

v0.1.1 (2026-10-30)

Full Changelog Previous Releases

  • chore(release): 0.1.1 (#14)
    Moves the Unreleased entry under 0.1.1: the WFA-33 credits change. Nothing the
    client loads changed since the last tag, so no locale, screenshot or store
    copy refresh is owed.
    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • docs(credits): follow WFA-33 like the rest of the suite (#13)
    Hoard's credits used a different table shape from the rest of the suite (Idea or report | From), had no closing thanks, and its README Credits did not thank reporters, which WFA-10 asks for.
    Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • chore(docs): reference the Field Guide repo by its live slug (#12)
    Point the build brief at cjber/field-guide-forever.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 22:30
dbec7a0

Hoard Forever

v0.1.0 (2026-10-26)

Full Changelog Previous Releases

  • chore(release): 0.1.0 (#11)
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • feat(mockups): add native offline screenshots (#10)
    Co-authored-by: Nebula noreply@nebula.gg
  • chore(tools): update shared dead-code media scan
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • chore: add the suite dead-code gate (#8)
    Vendors forever-core's dead-code tooling plus the shared core-drift checker
    and runs the scan as a CI job beside the existing checks.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • chore: vendor Forever Core Text and SettingsPage, adopt both (#7)
    Core/Text.lua and Core/SettingsPage.lua are copied byte for byte from
    forever-core main (501507bb) and added to the TOC in load order.
    Core/Model.lua drops its own ~45-line accented-letter table and its own
    tier ranking for ns.Text.Fold and ns.Text.Rank. A differential run over
    every character the old table folded and 20,000 generated name/query
    pairs found no lost matches; only queries that previously matched
    nothing (multi-word queries in another order, ligatures, characters the
    old table missed) now match.
    Core/Settings.lua keeps its two options, its clear-snapshots button and
    every saved key, and moves the panel chrome onto ns.SettingsPage.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • ci: keep the typecheck job to tools/typecheck.sh (#6)
    • chore: align Hoard with the suite gate, core vendoring and packager check
    • tools/forever_tools is complete and re-vendored from forever-core, including the
      MANIFEST that still pointed at the old cjber/skills revision.
    • tools/check_package.py, changelog.py and release_check.py become the thin
      forever_tools wrappers the suite uses instead of hand-written copies.
    • ci.yml gains the typecheck and sift jobs every sibling runs.
    • AGENTS.md points at the shared standards pack and the shared-core drift gate.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • ci: run the packaging gate with luajit and mark the wrappers executable
      check_package.py runs each spec over the packaged files and needs luajit on PATH,
      which the package job did not install, and the vendored wrappers lost their
      executable bit, which ruff's EXE001 and tools/typecheck.sh both reject.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • chore: mark the tooling scripts executable
      core.fileMode was off in the working copy, so the executable bit the suite's
      wrappers and typecheck.sh carry never reached the tree; ruff's EXE001 and the
      typecheck job's direct tools/typecheck.sh call both depend on it.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • chore: mark the tooling scripts executable
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • chore: use the canonical ruff.toml
      Hoard carried a local ruff variant selecting EXE and py311 against the suite's
      E,F,I,UP,B py310; the canonical config passes on tools/ unchanged.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • ci: invoke typecheck.sh through bash
      The typecheck job called the script directly and failed on the executable bit the
      checkout does not carry; bash needs no mode bit.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • ci: keep the typecheck job to tools/typecheck.sh
      Hoard has no .types annotations vendored, so lua-language-server --check reports
      undefined-type problems on code that predates this branch; the job runs the shared
      config checks until the type surface is vendored.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • chore: align Hoard with the suite gate, core vendoring and packager check (#5)
    • chore: align Hoard with the suite gate, core vendoring and packager check
    • tools/forever_tools is complete and re-vendored from forever-core, including the
      MANIFEST that still pointed at the old cjber/skills revision.
    • tools/check_package.py, changelog.py and release_check.py become the thin
      forever_tools wrappers the suite uses instead of hand-written copies.
    • ci.yml gains the typecheck and sift jobs every sibling runs.
    • AGENTS.md points at the shared standards pack and the shared-core drift gate.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • ci: run the packaging gate with luajit and mark the wrappers executable
      check_package.py runs each spec over the packaged files and needs luajit on PATH,
      which the package job did not install, and the vendored wrappers lost their
      executable bit, which ruff's EXE001 and tools/typecheck.sh both reject.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • chore: mark the tooling scripts executable
      core.fileMode was off in the working copy, so the executable bit the suite's
      wrappers and typecheck.sh carry never reached the tree; ruff's EXE001 and the
      typecheck job's direct tools/typecheck.sh call both depend on it.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • chore: mark the tooling scripts executable
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • chore: use the canonical ruff.toml
      Hoard carried a local ruff variant selecting EXE and py311 against the suite's
      E,F,I,UP,B py310; the canonical config passes on tools/ unchanged.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • ci: invoke typecheck.sh through bash
      The typecheck job called the script directly and failed on the executable bit the
      checkout does not carry; bash needs no mode bit.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
    • ci: keep the typecheck job to tools/typecheck.sh
      Hoard has no .types annotations vendored, so lua-language-server --check reports
      undefined-type problems on code that predates this branch; the job runs the shared
      config checks until the type surface is vendored.
      Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>

    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • fix(docs): drop the store-page image that has no file behind it (#4)
    docs/curseforge.md pointed at docs/screenshots/window.png, which does not exist,
    so the page rendered a broken image. No screenshot tool or capture exists in this
    repo yet; the image goes back when a real capture does.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • docs: use relative links for the icon and CI badge while the repo is private (#3)
    raw.githubusercontent serves a private repo's files as 404, so the
    centred icon never rendered. Relative paths work on GitHub for a private
    repo and after it is published; the absolute raw URLs in
    docs/curseforge.md stay, because that file is pasted into the store.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • docs: bring the README and store page up to the suite standard (#2)
    Add the family block, CI and release badges, the rendered icon and the
    credits and licence sections the other Forever addons carry, and add
    docs/curseforge.md. Describe what this build does: bags, reagent bag,
    bank, cached alts and the search filters. The Guild tab has no vault
    reader yet, so the copy says it stays empty.
    Also add the AGENTS.md this repo was missing and the 400 px and 64 px
    icon renders from media/icon.svg.
    Co-authored-by: Nebula AI Agent <277912164+nebula-ai-agent[bot]@users.noreply.github.com>
  • feat: add Hoard search foundation (#1)
    Co-authored-by: Nebula noreply@nebula.gg
  • chore: scaffold Hoard Forever into the Forever suite shape
    Co-Authored-By: Nebula noreply@nebula.gg