Commit Graph

7154 Commits

Author SHA1 Message Date
Donal McBreen a2333d9a37 Add SQLite support
- UUID support
- Schema compatibility layer, ignore MySQL specific options
- Search not working yet
2025-11-21 09:15:19 +00:00
Jorge Manrubia 7f76835150 Merge pull request #1668 from basecamp/pinned-stale
Several fixes for pinned cards
2025-11-21 10:03:32 +01:00
Jorge Manrubia 9d08f26c59 Disable turbo when navigating to another account
So that the turbo-permanent trays get properly replaced

https://app.fizzy.do/5986089/cards/3094
2025-11-21 09:54:16 +01:00
Jorge Manrubia 021831f810 Extract partials for the different sections 2025-11-21 09:48:00 +01:00
Jorge Manrubia 85b9e3dfd4 Make the notifications tray reload on broadcasted refreshes
We can't use the normal refresh: :morph because everything is contained in a turbo permanent section
so that the trays persist across regular navigation.
2025-11-21 09:41:03 +01:00
David Heinemeier Hansson ae640198ae Stick with the same general retention policy we use for everything 2025-11-21 09:40:50 +01:00
David Heinemeier Hansson 0a88565bd7 Slim down 2025-11-21 09:39:59 +01:00
David Heinemeier Hansson f66da318aa No longer needed now that we are back to a single DB 2025-11-21 09:39:33 +01:00
David Heinemeier Hansson 62d4998f27 We stopped using load_async in the code base 2025-11-21 09:35:25 +01:00
Jorge Manrubia e813b7eaf0 Invalidate HTTP caching when the cards change
https://app.fizzy.do/5986089/cards/3067
2025-11-21 09:32:02 +01:00
Jorge Manrubia 1211e180c2 Merge pull request #1667 from basecamp/prevent-lexxy-dup
Fix: duplicated lexxy when toggling done while in edit mode
2025-11-21 09:03:09 +01:00
Jorge Manrubia 649888dbd4 Making the frame permanent with an id would reconnect the editor causing the dup
This is something we need to fix in Lexxy for good, but for now this patch will do it.

https://github.com/basecamp/lexxy/issues/263
2025-11-21 08:52:10 +01:00
Jason Zimdars c9e2927179 Merge pull request #1666 from basecamp/identify-account-in-notificaton-bundle
Show account if you have multiple
2025-11-20 22:05:33 -06:00
Jason Zimdars 9bae30f771 Show account if you have multiple
It's hard to know which account email notifications are coming from
2025-11-20 22:03:54 -06:00
Jason Zimdars 93375f59cd Merge pull request #1665 from basecamp/magic-link-in-subject
Display code right in the subject line
2025-11-20 21:52:12 -06:00
Jason Zimdars dca002bd64 Update test 2025-11-20 21:51:07 -06:00
Jason Zimdars b1762ea6b6 Display code right in the subject line 2025-11-20 21:45:26 -06:00
Jason Zimdars 5e18d79999 Merge pull request #1661 from basecamp/revert-1660-revert-1659-notifications-copy
Add more detail to events summaries
2025-11-20 21:41:09 -06:00
Jason Zimdars ad7eb594d3 Match copy coming in #1663 2025-11-20 21:31:40 -06:00
Mike Dalessio 9ab15688c2 Merge pull request #1664 from basecamp/flavorjones/fix-activejob-retry
Make sure jobs are enqueued only after all transactions are committed
2025-11-20 19:07:20 -05:00
Mike Dalessio 2c2a1c4b4a Make sure jobs are enqueued only after all transactions are committed
This should fix the recurring ActiveStorage::FileNotFoundError errors
from ActiveStorage::AnalyzeJob.

The issue is that, when images are not direct uploaded (e.g. a card
background image or avatar image), the AnalyzeJob has been getting
enqueued before the file itself was uploaded to blob storage.

Setting ActiveJob::Base.enqueue_after_transaction_commit = true makes
sure that jobs are always enqueued only once *all* transactions have
been committed.

This will be the Rails default at some point, but for now we still
need to explicitly set it.

Big thanks to @jeremy for the assist. 👏
2025-11-20 18:47:42 -05:00
Mike Dalessio fdee7aaaa5 Merge pull request #1654 from basecamp/flavorjones/3063-activity-spike-deadlocks
Fix race condition in Card::ActivitySpike::DetectionJob
2025-11-20 15:53:47 -05:00
Mike Dalessio 1bbb6d0c03 Fix race condition in Card::ActivitySpike::DetectionJob
The check-then-act pattern in `register_activity_spike` has been
replaced with `find_or_create_by!` to eliminate the race condition
that could lead to creating multiple activity spikes for a card. To
support this change, the `card_id` index on `cards_activity_spikes`
has been made unique.

ref: https://app.fizzy.do/5986089/cards/3063
2025-11-20 15:40:42 -05:00
Jorge Manrubia c052839bd6 Removed quotes since we were not using them 2025-11-20 21:37:41 +01:00
Jorge Manrubia a5b58e47fe Remove unclosed span 2025-11-20 21:32:43 +01:00
Jorge Manrubia baadd484b4 Review triage 2025-11-20 21:28:41 +01:00
Mike Dalessio 20020043f1 Merge pull request #1662 from basecamp/flavorjones/fix-up-fk-migration
Make sure the migration to remove FK constraints is robust
2025-11-20 15:20:50 -05:00
Mike Dalessio fb742d6d29 Make sure the migration to remove FK constraints is robust
where we've already removed the constraints.
2025-11-20 15:16:26 -05:00
Jorge Manrubia 3f21ea2329 Revert "Revert "Add more detail to events summaries"" 2025-11-20 21:12:41 +01:00
Jorge Manrubia fd812cf862 Merge pull request #1660 from basecamp/revert-1659-notifications-copy
Revert "Add more detail to events summaries"
2025-11-20 21:12:37 +01:00
Jorge Manrubia 7200af879f Revert "Add more detail to events summaries" 2025-11-20 21:12:10 +01:00
Jorge Manrubia 4aef7230e5 Merge pull request #1659 from basecamp/notifications-copy
Add more detail to events summaries
2025-11-20 21:11:58 +01:00
Jorge Manrubia a48aa84f11 Remove legacy event 2025-11-20 21:11:02 +01:00
Jorge Manrubia 93a80ab8c2 Add more detail to events 2025-11-20 21:07:55 +01:00
Mike Dalessio 4804e1367c Merge pull request #1658 from basecamp/fizzy-remove-foreign-key-constraints
Drop all foreign key constraints
2025-11-20 15:06:00 -05:00
Mike Dalessio 6e67a7787a Drop all foreign key constraints
These have been a contributing cause to some deadlocks, but also this
makes some operational tasks harder (data loading, data truncation)
and has some performance impact on insert/update/delete operations.

The team consensus is that we aren't relying on them, and so we're
comfortable with the referential integrity risk.
2025-11-20 15:01:25 -05:00
Mike Dalessio 23c310e154 Merge pull request #1657 from basecamp/fizzy-admin-stats-20251120
Add total counts and restructure admin stats dashboard
2025-11-20 14:40:40 -05:00
Mike Dalessio 1341830ed2 Add total counts and restructure admin stats dashboard
- Add total counts for accounts and identities alongside 7-day and 24-hour metrics
- Change layout from horizontal to vertical stacking

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 14:39:19 -05:00
Andy Smith 75a978e972 Merge pull request #1655 from basecamp/hide-title-scrollbar
Add hide-scrollbar utility and use on card titles
2025-11-20 11:37:17 -06:00
Mike Dalessio 8ce97e85b2 Merge pull request #1652 from basecamp/flavorjones/3062-draft-card-creation-time
Change "ADDED" to "DRAFTED" when rendering draft cards
2025-11-20 12:17:30 -05:00
Andy Smith 7fe2ea203d Add hide-scrollbar utility and use on card titles 2025-11-20 11:03:10 -06:00
Andy Smith 3469965f7a Merge pull request #1644 from basecamp/fix-too-large-filters
Remove special Safari hack
2025-11-20 10:48:22 -06:00
Stanko Krtalić c33802d37b Fix attachemnts (#1627)
* Load keys from tenanted dbs

* Implement sgid swapping

* Fix sgid generation

* Flip the logic to do lookups by tenant and id

* Create missing blobs

* Copy over variations

* fix-active-storage-links: fix mentions

* Fix variant generation

* Fix avatars

* Fix avatars

---------

Co-authored-by: Mike Dalessio <mike@37signals.com>
2025-11-20 11:47:49 -05:00
Jason Zimdars fd3b32fd15 Merge pull request #1643 from basecamp/account-to-cache-key
Add `Current.account` to cache key
2025-11-20 10:27:59 -06:00
Mike Dalessio 7ba4d7ed73 Merge pull request #1653 from basecamp/flavorjones/claude-md
Add a CLAUDE.md and a STYLE.md
2025-11-20 11:18:15 -05:00
Mike Dalessio 7ef7a8e49b Add a CLAUDE.md and a STYLE.md
The CLAUDE.md file is a stripped-down version of a file originally
generated by Claude.

The STYLE.md file is inspired by an internal 37signals style guide.
2025-11-20 10:20:02 -05:00
Mike Dalessio 71f2ffbf59 Change "ADDED" to "DRAFTED" when rendering draft cards
ref: https://app.fizzy.do/5986089/cards/3062
2025-11-20 09:32:42 -05:00
Stanko Krtalić 4217984f1b Merge pull request #1651 from basecamp/add-retries-to-activestorage-analzejob
Retry file analisys on FileNotFoundError
2025-11-20 15:27:25 +01:00
Mike Dalessio 88750a3498 Prefer Time.current to Time.now 2025-11-20 09:13:17 -05:00
Stanko K.R. e8a7b19647 Retry file analisys on FileNotFoundError 2025-11-20 15:09:43 +01:00