* refactor: replace presigned URL uploads with backend upload endpoints
* feat: update avatar upload to use new endpoint
* refactor: use createS3Client in auth hooks
* feat: generate presigned URLs for avatars
* fix: show avatar image in user menu
* fix: hide tooltip if content is empty
* fix: support external avatar URLs in generateAvatarUrl
* fix: remove content type restriction on attachments
* feat: setup schema for workspace roles
* chore: regen migration
* feat: add publicId to workspace roles
* feat: setup default permissions
* feat: add repo funcs
* feat: setup basic router interactions
* feat: add card permissions
* feat: assert permissions for lists
* feat: assert board permissions
* feat: assert permission for remaining routes
* feat: add permissions page to settings
* feat: enable updating member roles
* feat: order members by role and createdAt
* feat: allow editing individual permissions
* feat: reset role defaults
* feat: clear all permission overrides
* feat: allow users to delete entities they have created
* feat: set roleId when inviting new members
* feat: disable UI elements if user does not have permissions
* feat: allow admins to assign the admin role to other users
* feat: allow delete:list as default
* refactor: centre permissions modal
* chore: translations
* feat(workspace): sanitize member emails for non-admin users in workspace router
* feat(workspace): add email visibility setting and update member display logic
* fix(workspace): update default value for showEmailsToMembers column to true
* - Removed unnecessary type assertions
- Added anonymous name handling (anonymous_[publicId]) in the API
- Removed placeholder logic
- Reverted null check
- Avoided as unknown cast
* feat: implement drag-and-drop reordering for checklist items
* WIP: Changes before syncing with main
* feat: update drag icon and positioning
* refactor: consolidate checklist item updates into single endpoint
- Remove standalone reorderItem route (now part of updateItem)
- Add optional index parameter to updateItem for reordering
- Change updateItem from PUT to PATCH method
- Add deletedAt IS NULL filter to reorderItem SQL queries
- Follows existing pattern from card.update route
* feat: add optimistic updates
* chore: translations
---------
Co-authored-by: Henry <henry_ball@hotmail.co.uk>
* feat: add card due dates to schema
* feat: update repo funcs
* feat: update card router to support due dates
* chore: update migration journal
* feat: add date selector
* feat: display date icon and label on cards
* feat: add due date filters
* feat: add due date to new card form
* feat: light mode tweaks
* feat: improve text eligibility on light mode
* feat: reduce selector font size
* feat: display date updates in card activity
* chore: gen translations
* feat: add list filter to board view
* feat: implement API-driven list filtering
* refactor: remove unnecessary list join from card filtering queries
* feat: enable list filter options for public boards
* refactor(perf): move to main query
---------
Co-authored-by: Henry <henry_ball@hotmail.co.uk>
* feat: add migration to remove not null constraint from referenceId on subscriptions
* feat(cloud): write worspace slug availability checks to db
* feat: add migration to add cascade set null to referenceId on subscription
* feat: update workspace and subscripton schema
* feat: add createWorkspaceSlugCheck repo func
* feat: set workspace url on creation
* chore: update translations
* refactor: various tweaks and fixes
* feat: add pro bolt to pricing notice
* feat: toggle pro subscription
* fix: hide pro subscription notice for self hosters
* feat: add pro upgrade message on members page
* feat: hide pro upgrade notice on small viewports
* feat: update workspace url placeholder
* feat: add template selection when creating new boards with predefined lists
* feat: extend templates with labels, update design and add translations
* feat: add validation and error states to new board form
---------
Co-authored-by: Henry <henry_ball@hotmail.co.uk>
* feat: implement Trello integration with OAuth and user fields
* feat: migrate Trello integration to new integrations table
* refactor: migrate Trello integration to use new integration system
* refactor: migrate Trello integration to use new integrations table
* fix: add loading check for Trello integration and update VSCode settings
* feat: enhance import boards UI with dynamic integration providers and local storage config
* feat: add select/unselect all buttons and loading state to board import form
* feat: add Trello import env vars on README
* docs: update Trello import guide to use OAuth flow instead of API keys
* feat: add integrations table for OAuth token management
* feat: connect trello from import modal
* refactor: consolidate Trello integration endpoints into unified integration router
* fix: trello import again
* refactor: generalize integration authorization flow and improve error handling
* refactor: update Trello API endpoints and tags for better organization
* feat: add Integrations tag to OpenAPI specification
* refactor: update Trello auth endpoint to use generic integration provider param
* refactor: move Trello integration logic from trello.ts to import.ts router
* refactor: consolidate Trello integration endpoints and fix API URL
* chore: remove debug logs
---------
Co-authored-by: Henry <henry_ball@hotmail.co.uk>