From 888790e5ff0804be16a0aed1e553c3954edc006e Mon Sep 17 00:00:00 2001 From: Kaysser Kayyali Date: Sat, 20 Jun 2026 16:55:29 -0400 Subject: [PATCH] v0.1.1: track the hax-hooks-lib -> foundry-hooks-lib rename User callout: 'Hax' is Kaysser's nickname, drop it from module names. hooks-lib v0.3.0 renamed its module id; this commit follows: - relationships.modules[0].id: hax-hooks-lib -> foundry-hooks-lib - relationships.modules[0].compatibility.minimum: 0.2.0 -> 0.3.0 (we now require the renamed version) - module.json: version 0.1.0 -> 0.1.1, download URL updated - README.md, scripts/main.js, tests/PLAN.md, tests/test-helpers.mjs: branding text updates - .gitignore: un-ignore the new 0.1.1 zip Verification: 75/75 smoke assertions pass, no logic change. Module title is now 'It's Achievable' (dropped the 'Hax's Tools' umbrella prefix per the same callout). 2 module text changes are non-functional; pure branding. --- .gitignore | 1 + README.md | 10 +++++----- its-achievable-0.1.1.zip | Bin 0 -> 39620 bytes module.json | 12 ++++++------ package.json | 4 ++-- scripts/main.js | 2 +- tests/PLAN.md | 6 +++--- tests/test-helpers.mjs | 6 +++--- 8 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 its-achievable-0.1.1.zip diff --git a/.gitignore b/.gitignore index 363d122..4ff484e 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ scripts/session-prompts.js # versioned so future rebuilds don't accidentally overwrite a released version. its-achievable-*.zip !its-achievable-0.1.0.zip +!its-achievable-0.1.1.zip diff --git a/README.md b/README.md index 3e0ac6f..fcd8c2b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Hax's Tools — It's Achievable (`its-achievable`) +# It's Achievable (`its-achievable`) Foundry VTT module: achievements engine, custom rules, rewards, achievement wall, and combat HUD. Consumes the generic Foundry hook -facade from `hax-hooks-lib` and the encounter state from `battle-focus`. +facade from `foundry-hooks-lib` and the encounter state from `battle-focus`. ## Status @@ -11,7 +11,7 @@ v0.1.0 — first release as a standalone repo. Sourced from custom-achievements-app.js, hud.js, achievement-rules.js}` at `battle-focus` v0.5.0-alpha.12 (`99cf757` on Gitea). -Stage 2 of the Hax's Tools split. The achievement code is now an +Stage 2 of the Foundry module split. The achievement code is now an independent module with its own: - Settings namespace (`its-achievable.*`) - Module id (`its-achievable`, lowercase kebab) @@ -25,7 +25,7 @@ as a soft dependency of battle-focus). ## Dependencies -- **`hax-hooks-lib`** (≥0.2.0) — provides the Foundry event stream via +- **`foundry-hooks-lib`** (≥0.2.0) — provides the Foundry event stream via the generic `{ts, hook, args}` envelope facade. See `hooks-lib/docs/HOOK_CONTRACT.md`. - **`battle-focus`** (soft) — provides the encounter singleton via @@ -87,7 +87,7 @@ in Stage 3 and the existing E2E suite exercises the moved code. ## Architecture notes - **Hooks-lib first.** its-achievable subscribes to - `hax-hooks-lib`'s envelope stream. Combat lifecycle, document CRUD, + `foundry-hooks-lib`'s envelope stream. Combat lifecycle, document CRUD, dnd5e rolls — all via `hooksLib.api.subscribeMany({...})`. No direct `Hooks.on(...)` calls. - **Encounter via battle-focus's API.** its-achievable does not import diff --git a/its-achievable-0.1.1.zip b/its-achievable-0.1.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..f83044da1287aa5f1abdf5e3895760b3041cef5b GIT binary patch literal 39620 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

TAAe`go7=-?q4L zMsbfW0yO;x+A$j!>iz#Mw||-AzvOhK?usLsEPmJID{?|=#<*`uE$E=aIOI=gO0&UN zu-Y~qK5wFhgzLY2VQ4gZDFTzIj)MzJjcr7G49w~Ph`?G~d49Xw;n6;mtrK>e@Ot#~ ztbfM|!UBj{&7%gXX=xGzWAr{mIhWNT)H^>8lIVSL?PXKN486h`#pf-`p<9Rcdss-+ z0f~R2Q42%Id~p>}g%?E5ORSur9L?a|D)pn7D1wtMg4BnqJ>mNuXCGZ%fmLW$cS4n-gZ@%FEYOoGL=BD0^@-OU%DW6 z$Ch%+(L7my9088t0mCVNF4qL@C*@0T3sVheGjooOjL%x@0k+aitoRmrx5x!FMpZKl zW>wUK%RndNG7-W}hN-5zlqvV|`5<&9AQ^#DX&B*4X3MM3%OGB!|8N`g{>+2N6LI<0Qm?A+Ln(R z>xq|GX`H&ATHMBN9kdU6GC$cX@Hi2I21LKtKNNr5Q)cw`)x2O9DRLWL<7E-^qm5CxuMhQp0lZ$dIJ4e=L zEEG4}mG~{J9S~GGuvEcUN2oK8$zq`*HWvBNz}3SPxs{jEtuu3>Tl-ND2p@ zXFr^l)Bx;G%D38k{*tC;vc|&eajQ&w#^vaZKc4FvD!+AF?t(;ceJ3#LyV+C3R6e)O6|u@Hf7Wha1^XUjc#|r`#8N`d}2KVIC$YeT4#6cy&Ngj5x5^- z9?`9|ArfY6mX?V*r^p&_*A*tw+E8vRM)0OOQqS3(Oi)IzE0@2)6!A3!=Ubj=CSWzO zqv`c-8AobM)$CZMY2b+&x7zzOl~Isf!v&#>tsbq0upS)ANx^mf2fwQ37ay1=+xPU* zPIzfJeRHQhhC!VTxtiXnNBATys2ru<;&Zd=jWw1$-2x8DhIsIwdOIs>d?LZDvZP`i zXyqrVnRy{Myv&B6M2#}X&0U+1K(%o%EtkWo`@@T3tTolt#e@#O$onP^hY4g_VWc&pjl(x8$annuPFaO0DvZcQaAuWQ&v(&MV7