Releases: martin-papy/coc7-qol
Release list
v0.5.0
What's Changed
- feat: GM-only visibility highlighting (v0.5.0) by @martin-papy in #11
- Release v0.5.0 by @martin-papy in #12
Full Changelog: v0.4.9...v0.5.0
v0.4.9
What's Changed
- fix: make AI generator dialogs scrollable on small displays (#8) by @martin-papy in #9
- Release prep: AI dialog scroll fix (#8) + Playwright testing docs by @martin-papy in #10
Full Changelog: v0.4.8...v0.4.9
v0.4.8
What's Changed
- ci: bump actions/checkout to v5 for Node.js 24 support by @martin-papy in #3
- fix: route blind/private rolls to GM when chat box is 'Self' by @martin-papy in #5
- chore: add v0.4.8 changelog entry by @martin-papy in #7
Full Changelog: v0.4.7...v0.4.8
v0.4.7
What's Changed
- Add interactive release.sh helper by @martin-papy in #1
- Small adjustments in the doc by @martin-papy in #2
New Contributors
- @martin-papy made their first contribution in #1
Full Changelog: v0.4.6...v0.4.7
v0.4.6
Added
- AI NPC equipment — NPC generation now returns weapons and possessions alongside characteristics and skills. Weapons render in a dedicated section of the confirmation dialog (name, skill, damage, range, ammo); possessions render as a flat list. Items can be toggled on/off before acceptance and are created in a single batch on accept.
- AI NPC warnings — A warnings section in the confirmation dialog surfaces non-blocking issues raised by the generator (e.g. ambiguous skill, suspicious value) so the GM can review them before creating the actor.
- Language-aware prompts — The NPC system prompt now instructs the model to honour the world locale for names and prose, so output matches the language of the campaign.
- Roll visibility selector — A roll visibility dropdown (public / private / blind / self) is now embedded in the CoC7 bonus dialog. The last choice is remembered per user and persisted through CoC7 standby flags so it survives the standby → resolve roundtrip.
Fixed
- AI-generated NPCs that reference a weapon now also get the matching skill auto-added when it is missing from the skills list (e.g. Pocket Knife → Fighting (Brawl)), with a fallback skill value of 20.
- Civilian NPCs default to 0 weapons unless the role is explicitly combat — pharmacists no longer ship with revolvers.
- Weapon
usesPerRoundsplit intonormalandmaxso multi-shot weapons map correctly to CoC7's data model, and default ammo now falls back to magazine capacity instead of zero. - Weapon detail span in the NPC confirmation dialog is HTML-escaped, and remove listeners are deduplicated to avoid double-firing on re-render.
Full Changelog: v0.4.5...v0.4.6
v0.4.5
Security
escapeHtmlextended to the full OWASP attribute-value set (&,<,>,",',/, backtick), closing escape gaps that surfaced with French apostrophes breaking the placeholder attribute.- Gemini API key moved from the URL query string to the
x-goog-api-keyrequest header so the key no longer leaks into browser history, proxy logs, orRefererheaders. - Provider error responses sanitized before display:
formatApiError()maps 401/429/5xx to friendly strings, strips HTML tags, and truncates unknown bodies to 300 chars — Cloudflare/proxy HTML interstitials no longer reachui.notifications.error. - API key setting hint strengthened to surface the direct-browser-access caveat. Users are now advised to use a provider-scoped, spend-limited key.
Fixed
- 60 s
AbortControllertimeout added to all three LLM providers. Stuck requests now fail cleanly instead of leaving the UI in "Generating…" indefinitely. - Anthropic
max_tokensraised from 1024 to 4096. Long NPC responses no longer get truncated mid-JSON. applyRandomCharacteristicsnow returns a new object instead of mutating its argument.- Weapon range enforced as a finite integer or
nullfor melee — string units can no longer slip through. - Single quotes added to
escapeHtml; placeholder attribute switched to double quotes so French strings render correctly.
Changed
- Module compatibility bumped: FoundryVTT minimum v13, verified v14. CoC7 system minimum v8.
Full Changelog: v0.4.4...v0.4.5
v0.4.4
Internationalization Support
This release adds full i18n support to the CoC7 QoL module. All user-visible strings are now managed through FoundryVTT's translation system.
What's New
- English and French — Complete translations for all dialogs, buttons, settings, and notifications
- Automatic localization — UI automatically displays in the user's configured FoundryVTT language
- Developer-friendly — Helper functions
t()andtf()for consistent string handling across modules
Files Included
All runtime files: module.json, scripts/, lang/, styles/
Language Files
lang/en.json— 75 English translation keyslang/fr.json— 75 French translations with professional typography
Technical Details
- Uses FoundryVTT v13+ i18n API (
game.i18n.localize,game.i18n.format) - Proper handling of module load timing constraints via lazy getters
- No impact on LLM prompt content (system/user prompts remain hardcoded)
Installation
From FoundryVTT: Go to Settings > Manage Modules > Install Module and use the manifest URL:
https://github.com/martin-papy/coc7-qol/releases/latest/download/module.json
Or download the zip and extract to your Data/modules/ directory.
v0.4.3
What's new
NPC random characteristics
When generating an NPC, a new Random characteristics checkbox lets the AI return rulebook dice formulas (e.g. 5*(3d6)) instead of fixed values. The characteristics are rolled on token drop, giving each NPC a unique stat spread without losing the AI-generated flavour.
README screenshots
Added in-context screenshots to the README for all features (Weapon Generation, NPC Generation, Close All Cards, Possession Tab Image Popout).
v0.4.2
Code cleanup & optimisation
This release contains no user-visible changes — it is a pure internal refactor.
What changed
- Extracted all inline CSS from JavaScript files into two dedicated stylesheets (
styles/close-all-cards.css,styles/ai-generator.css) - Extracted shared
escapeHtmlutility intoscripts/utils.js(was copy-pasted across 4 files) - Merged the duplicate weapon/NPC prompt-view functions in
dialog-injector.jsinto a single parameterised flow (config-object pattern)
v0.4.1
Fixed
- Improved error logging for AI generation failures: invalid JSON responses from LLM providers now log the full raw response to the browser console, and all FoundryVTT operation errors (actor/item creation, skill attachment) are consistently logged with their full stack trace.