Repository navigation
v0.2.0-beta
Pre-release
Pre-release
·
5 commits
to main
since this release
Campkeeper
v0.2.0-beta (2026-10-10)
Full Changelog Previous Releases
- Status texts: Campkeeper is in beta
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - sync_wiki: tell a network error from a missing wiki
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Rescan build 70334, specs follow beta findings, tasks 6.3 6.4 8.3 10.2 11.1
- Rescan: catalog IDs, skills and replacements unchanged; Enchanted Lute
now gives +114 armor and +4 to all stats (was +71 and +2). Wiki page
regenerated, research notes the 1 h -> 5 min cooldown change. - Specs: panel only at the camp (hides 10 s after leaving even with
benefits), queue only during chat lockdown, player names with surnames,
planner without "per hour". - Tasks confirmed in game: one-click placement, sitting bar and hints,
pins for own and seen camps, catalog "known" marks, client rescan.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
- Rescan: catalog IDs, skills and replacements unchanged; Enchanted Lute
- Beta checklist: A5, A7, A11, A15 pass; radius samples and session notes
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Beta fixes: addon messages, unique names, recipes, panel away from camp
From the 2026-10-10 beta session (build 70334):- Comm: AreOutgoingAddonChatMessagesRestricted() is always true in Forever,
yet guild and channel messages go out and echo back. Queue only during
InChatMessagingLockdown(); the flag is only recorded for research. - Forever has regionally unique names ("Name Surname"). New
ns.api.unitFullName/senderName: own echo is no longer taken for another
player, the self whisper reaches us, the planner matches PROF senders. - Recipes learned in the profession window were wiped at login
(IsPlayerSpell is false for profession recipes); now only the window
may clear them. - Panel hides 10 s after leaving the camp even while benefits last.
- /ck commtest and per-tick client state samples for Q5 research.
- Shared cooldown wording without "per hour" (5 min measured in 70334);
wiki, listing and checklist updated.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
- Comm: AreOutgoingAddonChatMessagesRestricted() is always true in Forever,
- Add Boosty donation link to the listing texts and the wiki
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add player wiki: camping guide, generated camp objects page, sync script
docs/wiki/ holds the GitHub wiki pages. Camp-Objects.md is generated by
tools/gen_wiki.py from Data/Catalog.lua and tools/wiki_objects.json, and a
test fails when it falls behind the catalog. tools/sync_wiki.py publishes
the pages to the repository wiki. listing.md gets the CurseForge wiki,
issues, donation and Roadmap page fields.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Beta checklist: A9 benefits composition passes
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Panel: keep long effects inside the panel
The tent's two-sentence effect spilled far left of the panel and squeezed
the object names. The status column now has a fixed width (text is cut with
an ellipsis), rows show the first sentence and the tooltip the full effect;
the panel is 300 px wide.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Apply first beta data: short benefit names, Boosted Rest, Q5 queue tracking
The benefits tooltip names the tent 'Палатка' (item: 'Лагерная палатка'):
the parser now accepts a name contained as whole words in exactly one
object (or one tier chain) and logs the match. Boosted Rest is aura 1229451
'Улучшенный отдых' (3600 s): added to the catalog and shown on the panel
and the alts tab. Research records why messages were queued and when the
queue was sent. Findings written to the research notes; task 5.5 done.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add beta research collector and /ck report
Dev/Research.lua records, locally only, what the open client questions need:
raw Camp Benefits tooltips (Q1), distance to the own fire when its aura
appears or disappears (Q2) and the burn time, auras gained at camps with a
tent (Q3), camp blueprints in bags (Q4), addon messages sent / echoed /
received per channel (Q5), blocked actions, aura durations, placement errors
and catalog IDs missing in the client. /ck report prints a summary; an option
turns collection off. Spec addon-shell and tasks group 12 added.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - CI: allow the release job to create GitHub releases; bump actions
v0.1.0-alpha reached CurseForge and Wago but the GitHub release failed with
403: the default GITHUB_TOKEN is read-only in new repositories. Also move
to actions/checkout@v5 and setup-python@v6 (Node 24). Tasks 7.2-7.3 done.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add Wago project ID to the .toc
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add CurseForge project ID to the .toc
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Keep LICENSE as the plain MIT text; note embedded libraries in README
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add MIT license (matches the CurseForge project)
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add project logo and CurseForge/Wago listing texts
tools/make_logo.py draws original artwork (night sky, tent, campfire) into
docs/media/logo.png; docs/listing.md holds the form fields and the EN/RU
descriptions.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - README: replace local paths with placeholders
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Record window check in tasks and beta checklist
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Planner tab: drop manual profession entry
Members without Campkeeper are listed as such and explained under the plan;
they get no assignments but their classes still count for class buffs.
Spec and task 10.4 updated.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Planner tab: explain what it is for and why the plan is short
Heading and one-line explanation (one camping item per member per hour),
radio buttons for goal and campfire instead of disabled-looking buttons,
members with professions on their own line and a 'set professions' link,
labelled manual entry with dropdowns (modern menu, cycling fallback) and a
skill placeholder, numbered plan and notes when it is shorter than the
places (alone, no free members, no skills, class buffs skipped).
Planner reports skipped families; manual entries no longer write into
professions received from another member's addon.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Alts tab: live cooldown countdown, details on two lines
The window refreshes tabs marked LIVE once a second while open, so the
cooldown counts down; recipes and blueprints moved to their own line
instead of being cut off.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add main window: catalog, planner and alts tabs
UI/Window.lua with three tabs (Esc closes, /ck and minimap left click
toggle). Catalog: profession x tier grid with skill, replacement and known
recipes (cooking tier 1 is the basic fire). Planner: group roster with
professions from PROF messages or manual entry, role and fire tier, plan
posted to group chat. Alts: per-character professions, items, recipes,
blueprints (unknown until Q4) and cooldown; minimap tooltip lists alts'
cooldowns. Planner gives the fire to the member least needed elsewhere.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add camp planner
Core/Planner.lua assigns the fire and objects to group members: one item per
member (shared 1 h cooldown), class buffs present in the group excluded,
role weights, highest tier among free members, deterministic; chat lines
for the group. Planner spec gains the one-item-per-member rule.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add camp sharing; fix panel header layout and glyphs
Comm/Protocol.lua: CAMPK messages (CAMP/SYNC/PROF) with an arithmetic
object mask, version check and validation of every incoming message.
Comm/Comm.lua: guild, group and hidden channel, queue while addon chat is
restricted, broadcasts own/seen camps, answers guild SYNC (max two
responders, random 2-8 s delay), errors contained and logged.
Panel: the middle dot rendered as a box and the header wrapped over the
first row; the fire timer now has its own line, texts never wrap, and a
test keeps locale strings to ASCII and Cyrillic.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add camp store and map pins
Core/CampStore.lua keeps known camps (own, seen, reported), merges records
within 30 yd with overlapping lifetimes, prefers the most precise source,
prunes expired ones, caps at 200 and confirms channel reports from two
players. UI/Pins.lua shows them on the world map and minimap (translucent
when unconfirmed, edge-floating within 500 yd) and sets a TomTom or
built-in waypoint on click. Mock UnitPosition axis order fixed.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add beta checklist, CI workflow and packaging layout
docs/testing/beta-checklist.md with alpha/beta/1.0 scenarios and results so
far; GitHub Actions runs the Lua tests on every push and BigWigs Packager on
v* tags; .pkgmeta moves Campkeeper/Campkeeper to the zip root and ignores
the tooling folders.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add camp panel with row model and secure place buttons
Core/PanelModel.lua computes rows (placed / placeable / covered), header
and sitting state without frames. UI/Panel.lua renders them next to the
buffs: shown near a camp, hidden 10 s after leaving and in combat, secure
item buttons reconfigured only out of combat, sitting bar and placement
error hints. Class buff names are cached and missing ones logged once.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add professions, own camp, cooldown, saved benefits and alerts
Core/Professions.lua keeps per-character skills, camp items and known
recipes; Core/OwnCamp.lua tracks the own fire and objects within 30 yd,
placement errors 57/58, the shared camping cooldown and the last benefits
across sessions; UI/Alerts.lua schedules five optional alerts. Test
harness gains a relog helper that round-trips SavedVariables.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add minimap button (LibDataBroker launcher + LibDBIcon)
Left click opens the window (settings until the window exists), right
click opens settings; the existing option shows and hides the button.
Part of task 10.1, brought forward.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Rename slash command to /ck and /campkeeper
/camp is the client's built-in logout command and runs before addon
commands, so /camp config logged the character out. Spec now forbids
shadowing client commands; a test guards the registered names.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add camp state machine and Camp Benefits parser
Core/CampState.lua derives AWAY/NEAR/SITTING/BUFFED from the three camp
auras on UNIT_AURA, rebuilds on login, full updates and after combat, and
freezes on combat or secret values. Core/BenefitsParser.lua reads the
benefits tooltip (multi-line description, grammar codes, colour codes,
all tier names) and retries until the description arrives.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add Campkeeper catalog: tier table, generator and lookups
tools/catalog_tiers.json (35 objects, 3 fires, class buffs, planner
weights); tools/gen_catalog.py resolves placement/craft spells and
replacements from the client scan and guards the protocol bit order;
generated Data/Catalog.lua; Core/Catalog.lua with async client names.
fad.py json --key extracts the scan section. Catalog spec wording
matches the client data (cooking has tiers 2-3, craft spells optional).
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add Campkeeper shell: debug log, safe API calls, locales, options
Core/Log.lua ring buffer (200, persisted) with /camp debug [all|clear];
Core/Util.lua safeCall that contains errors and secret values, UTF-8
Cyrillic-aware normalize; enUS/ruRU locales; AceConfig options with
profiles; README section on Campkeeper development.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add Campkeeper skeleton, library fetcher and Lua test harness
Campkeeper.toc (Interface 16001), embeds.xml and AceAddon entry point;
.pkgmeta externals with tools/fetch_libs.py (SVN over HTTP, git clones);
tools/toc.py load-order resolver; tests/wowmock.lua + tests/wowenv.py
run the full addon in lupa, smoke test loads and enables it.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add OpenSpec change add-campkeeper
Proposal, design, task list and delta specs for nine capabilities
(catalog, status, panel, timers, map, sharing, planner, alts, shell)
based on the Campkeeper design spec.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add OpenSpec with Claude Code integration
openspec init (schema spec-driven, ru artifacts), /opsx commands and
skills in .claude/, project context in openspec/config.yaml.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add WoW Forever API tooling, research notes and Campkeeper spec
ForeverApiDump dev addon (API dump, camp probe, ID scanner), offline
parsers and tests, market and client-data research, and the Campkeeper
design specification.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com