Donal McBreen
b92aba383e
account_key is MySQL specific
2025-11-21 11:47:28 +00:00
Donal McBreen
2e4d0b38db
Fix matching scope after merge
2025-11-21 11:43:01 +00:00
Donal McBreen
366dbd393c
Merge branch 'main' into sqlite
2025-11-21 11:39:47 +00:00
Donal McBreen
adff4591fe
Search with the tenant key
...
The key has been added and populated so use it for searching.
2025-11-21 11:09:06 +00:00
Donal McBreen
74d1cf735b
Only add and fill account_key
2025-11-21 10:20:27 +00:00
Donal McBreen
70dd754cf7
Account key for search records
...
Add an account key field to improve search performance. This field
allows us to filter the records by account directly in the fulltext
index, so we only need to examine rows belonging to the relevant account.
2025-11-21 09:38:35 +00:00
Jorge Manrubia
e4558f00ab
Merge branch 'main' into expand-activity-columns
2025-11-21 10:25:39 +01:00
Donal McBreen
4f6ec19491
Drop comments
2025-11-21 09:15:19 +00:00
Donal McBreen
0e11a139a5
Move quoting
2025-11-21 09:15:19 +00:00
Donal McBreen
62d102578f
Table name already correct
2025-11-21 09:15:19 +00:00
Donal McBreen
ca17193620
Belongs_to not optional
2025-11-21 09:15:19 +00:00
Donal McBreen
6dfb961b83
Delegate to_s to terms
2025-11-21 09:15:19 +00:00
Donal McBreen
ec06b7085b
No need to default created_at
2025-11-21 09:15:19 +00:00
Donal McBreen
19b0e25eac
Split sqlite/mysql record stuff
2025-11-21 09:15:19 +00:00
Donal McBreen
a4850fbe73
Remove adapter specific logic from searchable
2025-11-21 09:15:19 +00:00
Donal McBreen
a682a807ed
Handle SQLite date subtraction
2025-11-21 09:15:19 +00:00
Donal McBreen
cc7e091508
Disable multi-db for SQLite
2025-11-21 09:15:19 +00:00
Donal McBreen
bb36b4846f
Support SQLite searching
2025-11-21 09:15:19 +00:00
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
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
Mike Dalessio
88750a3498
Prefer Time.current to Time.now
2025-11-20 09:13:17 -05:00
Stanko Krtalić
f6cfb5fde4
Merge pull request #1648 from basecamp/fix-user-avatars-in-notification-bundles
...
Fix missing avatars in notification bundle emails
2025-11-20 11:19:13 +01:00
Stanko K.R.
cc41a42221
Fix missing avatars in notification bundle emails
2025-11-20 10:33:42 +01:00
Kevin McConnell
e37038c0a6
Merge pull request #1647 from basecamp/avoid-notification-deadlocks
...
Process notification recipients in consistent order
2025-11-20 09:27:57 +00:00
Kevin McConnell
bc73cf692d
Process notification recipients in consistent order
...
We've seen some cases of deadlock when processing notifications, because
locks are gathered on the users in different orders. Let's try sticking
to a consistent order instead, which should cause the jobs to serialize
rather than deadlock.
2025-11-20 09:20:48 +00:00
Mike Dalessio
378705a30d
Deduplicate filter results
...
when both a card and that card's comments match the search term, we
don't want to show it multiple times.
ref: https://app.fizzy.do/5986089/cards/3030
2025-11-19 17:51:38 -05:00
Jason Zimdars
eba749a193
Expand activity columns
2025-11-19 12:48:36 -06:00
Jorge Manrubia
63d08c5b13
Prevent creating overlapping records
...
https://3.basecamp.com/2914079/buckets/27/card_tables/cards/9275047474
2025-11-19 11:02:00 +01:00
Mike Dalessio
dbbee2c661
Stalled cards are unstalled by anything that touches updated_at
...
ref: https://app.fizzy.do/5986089/cards/2492
2025-11-18 17:46:56 -05:00
David Heinemeier Hansson
c606de7b41
Instead of trying to suppress from the wrong layer of the stick, just don't touch until published?
2025-11-18 15:35:40 +01:00
Jorge Manrubia
4a86e3a298
Don't show closed carsd when filtering by "added by"
...
You can still select the done filter if you want to.
https://app.fizzy.do/5986089/cards/2639
2025-11-18 11:40:01 +01:00
Jorge Manrubia
793aace69a
Remove implicit order when filtering by closed cards
...
We set the order in the dedicated column controllers and we don't want this in place when using composable filters.
Also, this raises an error with the MySQL move when combined with assignees. Because we inject a .distinct there,
that messes up with the query select, resulting in having to add a redundant select to the closed sorting scope, so that
the closure.created_at is not lost.
2025-11-18 11:36:47 +01:00
Jason Zimdars
385b70eea5
Should be "Done" when user-facing
2025-11-17 16:59:56 -06:00
Mike Dalessio
97a6916ae1
Update a card's created_at when it is published
...
ref: https://app.fizzy.do/5986089/cards/2854
2025-11-17 17:39:25 -05:00
Mike Dalessio
e3ce26c53d
rubocop: more style fixes
2025-11-17 14:54:42 -05:00
Stanko K.R.
0f7b1312eb
Fix tests broken by optimizations
2025-11-17 17:45:24 +01:00
Stanko K.R.
0b8c51c2e9
Preload cards for columns
2025-11-17 16:16:19 +01:00
Mike Dalessio
2cb050af33
Missed a few changes in a rebase somewhere
...
This changeset now matches plan-b commit 609a0041
2025-11-17 09:19:46 -05:00
Mike Dalessio
3b09a92193
rubocop: style fixes
2025-11-17 09:12:41 -05:00
Stanko K.R.
e539754e2c
Preload cards
2025-11-17 09:12:41 -05:00
Stanko K.R.
ee85c25672
Include association used to render events
2025-11-17 09:12:41 -05:00
Mike Dalessio
f5305b2fe6
Use Card number as the model param
...
instead of the UUID `id`
2025-11-17 09:12:41 -05:00
Mike Dalessio
3ed36004e4
Use script_name and url helpers
...
instead of string concatenation
2025-11-17 09:12:41 -05:00
Mike Dalessio
29aa0f7fea
Make sure notifications jobs don't need Current.account set
2025-11-17 09:12:41 -05:00
Mike Dalessio
4976e4a7bb
Update Card::Entropic so its scopes work cross-accounts
...
with an eye towards making the postpone_all_due recurring job work efficiently.
2025-11-17 09:12:41 -05:00
Mike Dalessio
e3d86bb21e
Clean up some spots where "current account" is ambiguous
...
Primarily this is in tests (which were caught by temporarily
introducing acts_as_tenant and enabling safety checks), but notably
action cable connections were not working properly, and that's now
fixed.
2025-11-17 09:12:41 -05:00
Mike Dalessio
2c765fa03f
rubocop: style fixes
2025-11-17 09:12:41 -05:00
Stanko K.R.
15eeba82f5
Scope model methods by account
2025-11-17 09:12:41 -05:00
Stanko K.R.
a0251255a7
Rename IdenityMailer to UserMailer
2025-11-17 09:12:41 -05:00
Stanko K.R.
e0693de7c3
Scope jobs and controllers by account
2025-11-17 09:12:41 -05:00