New Features
- [#10] A new
dontForget.reminderDeletedhook fires on every client when a reminder disappears from a user's list. - [#10] Reminders can carry a
refkey so a module can tag which of its own entities a reminder is about. A newfindRemindersAPI query filters by source, ref, owner, or completion state. - [#12] A new world setting turns in-world due dates on or off. With it off the date pickers disappear from the create and edit dialogs and no new Calendaria notes are made, while existing due dates keep their notes.
- [#12] The reminder list sorts due-and-arrived reminders to the top, then reminders by due date oldest first, then undated ones, with completed reminders last.
- [#5] New
dontForget.reminderCreatedanddontForget.reminderCompletedhooks fire on every client, flagged with whether the change came from another client. - [#5] Other modules can create, update, complete, and delete reminders through a public API at
game.modules.get('dont-forget').apiandglobalThis.DONTFORGET.api. - [#5] Reminders record which module made them. A module that declares a different source is refused when it tries to edit, complete, or delete another module's reminder.
- [#5] The open reminder window refreshes live when reminders change on any client.
- [#6] Each due date is backed by a hidden Calendaria note that toasts the reminder's owner when the date arrives and flags the reminder as due in the list.
- [#6] Reminders can carry an in-world due date picked from Calendaria in the create and edit dialogs, shown on the reminder row when Calendaria is active.
- [#6] Removing a due date, deleting or clearing the reminder, or deleting the backing note clears the link on both sides.
- [#6][#15] Note creation, moves, and deletion are relayed through the ATLAS primary GM, so players without note permission can still set due dates. Setting a due date warns when no primary GM is connected.
- [#9] A new toolbar adds a text filter, a hide-completed toggle, and a clear-completed button. GMs also get a user picker with an explicit all-users option.
- [#9] Reminder labels can be renamed in place by clicking them. A quick-add field creates a reminder on Enter, or carries its text into the full create dialog.
- [#9] The reminder window is rebuilt as a compact row list on the ATLAS theme instead of a table.
Bug Fixes
- [#10] A user first seen after startup no longer reports their entire existing list as newly created.
- [#10] Creating a reminder for another user is refused unless you are a GM.
- [#10] Reminder updates write only the changed fields, so two clients editing the same list no longer clobber each other's changes.
- [#5] A GM viewing another player's list is no longer snapped back to their own list on every render.
- [#9] The list no longer re-renders under you while a text field in the window has focus.
- [#9] The module stylesheet is now loaded by module.json, so the reminder window picks up its styles.
- Creating a reminder now only reports success when one was created. A permission failure no longer shows a false "reminder created" notification.
- The reminder checkbox tooltip reads "mark not done" when the reminder is already complete instead of always reading "mark done".
Changes
- [#11] A permission failure while clearing completed reminders is reported once per affected user rather than once per reminder.
- [#11] Clearing completed reminders saves once per owning user instead of once per reminder.
- [#12] Text fields, dropdowns, checkboxes, and buttons in the reminder window follow the ATLAS palette instead of Foundry's default styling.
- [#13] npm scripts now run eslint, prettier, and stylelint, plus a combined
validatecheck. - [#13] The eslint-plugin-jsdoc, stylelint, and stylelint-config-standard packages the existing configs need are now declared, and the unused prettier-eslint package is dropped.
- [#13][#7] Localization keys moved from the
DONT-FORGETnamespace toDONTFORGET, and form labels and placeholder text now resolve in the templates instead of being passed in from code. - [#13][#7] Module scripts are reorganized into ES modules split by concern, with the reminder window, shared helpers, constants, public API, and hooks in separate files.
- [#13][#7] The create and edit reminder dialogs build their contents from one shared context, so both show the same fields, placeholder text, and owner picker.
- [#14] The delete reminder and delete all completed confirmation prompts carry the module class, so they render in the ATLAS theme instead of Foundry's default dialog styling.
- [#8] Release automation builds the bundle before publishing and uploads the built manifest and zip.
- [#8] The Discord release announcement posts the curated release notes, links the release page and Foundry package, pings both module roles, and shows one Foundry version when no maximum is set.
- [#8] The module ships as a single minified rollup bundle with extracted styles, replacing the loose script and style files in the release zip.
- Editor settings and an i18n-ally framework config are added, teaching key lookup the ATLAS locale file and the v14
_localias forgame.i18n.localize. - LICENSE copyright holder changed from "Tyler" to "3 Death Saves".
- Line endings are normalized to CRLF across tracked files, and every file the new config covers is reformatted.
- Module styles read ATLAS theme variables directly with no hardcoded color fallbacks.
- Repository-local prettier and stylelint configs are added so the module formats and lints without the parent workspace. eslint is bumped to 9.x.
- The create and edit dialog buttons and the rename tooltip pull their text from the shared ATLAS strings instead of module copies.
- Verified compatibility raised to Foundry v14.366.
What's Changed
Full Changelog: release-2.2.0...release-2.3.0
Installation: To manually install this release, use the following manifest URL: https://github.com/Sayshal/dont-forget/releases/download/release-2.3.0/module.json