Version: 3.15.0
New Features
- Permission-based controls for canvas boards, ideas and docs - Blueprint boards, goals, ideas and Docs show their create, edit and delete controls by the permissions of the item's own project, so custom roles see only what they can use (#3993)
- Permission checks for comments, files, tokens and imports - Comments, files, personal access tokens, CSV imports and integrations check specific permissions instead of role rank (#3994)
- forms.field component - A new
forms.fieldcomponent bundles label, control and help text; user, client, API key and 22 dialog forms use it (#4003, #4004)
Improvements
- Clearer board and table styling - Kanban headers, lanes, group boxes and table headers now stand off the white card for better contrast (#4063)
- Accessible field help - Help text under a form field is announced by screen readers with its control (#4003)
- Cloud deployment - Leantime Cloud now deploys from this repository through the Deploy Cloud workflow (#4045, #4059)
Fixes
- Docs delete confirmations check the notebook's or article's own project, so deleting a doc opened from another project no longer returns 403 (#3993)
- Update and comment notifications on Blueprint, canvas and goal items go to the item's own project, not to the project that happens to be open (#3993)
- The idea dialog shows Save only to users who may save; the comment list and the client page show write controls only to users whose posts would be accepted (#3993, #3994)
Upgrade Notes
- No database changes in this release.
- For plugin developers: the legacy HTMX event aliases are removed (#3996). Listeners for
ticket_update,subtasks_updateorsubtasksUpdatedno longer fire. Listen forlt:tickets:ticket.updated/lt:tickets:subtask.updatedinstead, or reference the event class (TicketUpdated::class,SubtasksUpdated::class).
What's Changed
Other Changes
- chore(deploy): deploy Leantime Cloud from this repo with one workflow by @marcelfolaron in #4045
- chore(plugins): bump app/Plugins for the Billing paid-after-cancellation restore (#145) by @marcelfolaron in #4060
- fix(deploy): bound Coolify requests in the Deploy Cloud workflow by @marcelfolaron in #4059
- feat(ui): kanban headers, lanes, group boxes and table headers stand off the white card by @marcelfolaron in #4063
- chore(events): remove the legacy htmx event aliases by @marcelfolaron in #3996
- feat(components): forms.field for label + control + help by @marcelfolaron in #4003
- feat(roles): comments, files, tokens and imports check permissions by @marcelfolaron in #3994
- feat(components): dialog fields on forms.field by @marcelfolaron in #4004
- feat(roles): canvas boards, ideas and docs show controls by permission by @marcelfolaron in #3993
- Release v3.15.0 by @marcelfolaron in #4066
Full Changelog: v3.14.0...v3.15.0