The board-scoped mention prompt was returning all users with board access,
including those marked as inactive. This adds the `.active` scope to match
the behavior of the account-wide mention prompt.
Fixes https://app.fizzy.do/5986089/cards/3861
ActionTextRichTextRecordSet now calls check_associations_dont_exist to
ensure imported ActionText records only reference records within the
same import, matching the behavior of the parent RecordSet class.
When updating a draft card (e.g., adding a background image), the turbo
stream response was using the published card container partial, which
includes the reactions/boost button. Draft cards should use the draft
container partial which intentionally omits reactions.
Fixes https://app.fizzy.do/5986089/cards/3970
ZipKit creates a placeholder record when add_file is called, this record is then filled with the content that's passxed to write. But if the blob's file doesn't exist then an error is rased and the placeholder is never filled. This results in a ZIP that has a place in its catalog for the blob, but no contant for it, which makes it invalid.
* main: (65 commits)
Fix crash due to missing ActiveStorage URL options
Capture backtrace of nested errors
Remove debug code
Add more debug info
Pass all service options
Prevent duplicate files in user data export
Write in binmode
Replace custom IO object with a transport manager IO
Explain imports & exports
Add missing method to IO object
Rename jobs
Finishing touches
Delete accounts for failed imports
Check that associations don't exist
Bust the cache after import
Explicitly use the default storage service
Fix ActiveStorage writing to disk
Fix crash on successful import email
Fix orphaned attachments when deleting the whole account
Add size to remote io
...
Without this exporting, deleting and then re-imporing an account would reuse the old cache entries since the IDs are the same, but those cache entries will likely have the old account ID and would break