Jorge Manrubia
90617e8e3d
Rename redundant name
2025-09-17 13:57:07 +02:00
Jorge Manrubia
87c0e3faaa
Merge pull request #1126 from basecamp/notify-system
...
Don´t add system users to collections
2025-09-17 13:32:00 +02:00
Jorge Manrubia
f1d76a7cb7
Exclude inactive users
...
The system user should never be a subsriber but we should not serve it if it is
2025-09-17 13:26:53 +02:00
Stanko K.R.
5710aa724f
Send HTML to campfire instead of JSON
2025-09-17 13:16:00 +02:00
Jason Zimdars
b5d880c063
Merge pull request #1101 from basecamp/involvement-defaults
...
Involvement defaults
2025-09-16 14:16:24 -05:00
Jason Zimdars
1258b0e6e0
Merge pull request #1111 from basecamp/on-deck-entropic
...
Cards in On Deck adopt the same entropy behavior as ones in Doing
2025-09-16 14:15:47 -05:00
Stanko K.R.
dd3063b01d
Simplify delinquency tracking
2025-09-16 20:08:03 +02:00
Stanko K.R.
02a421675f
Scope Webhooks to Collections
2025-09-16 20:07:25 +02:00
Stanko K.R.
1d192c9d42
Ignore low-volume webhooks for delinquency checks
2025-09-16 20:04:20 +02:00
Stanko K.R.
fee25a49ea
Periodically cleanup deliveries
2025-09-16 20:04:20 +02:00
Stanko K.R.
9d77b17b8c
Remove encryption
2025-09-16 20:04:20 +02:00
Stanko K.R.
2fc9215b1d
Add support for Basecamp, Campfire & Slack webhooks
2025-09-16 20:04:20 +02:00
Stanko K.R.
1d69b171b6
Test the abuse prevention logic
2025-09-16 20:04:20 +02:00
Stanko K.R.
0bdbc5f5e8
Add abuse prevention
2025-09-16 20:04:18 +02:00
Stanko K.R.
a515ea3b1f
Create webhooks
2025-09-16 20:03:55 +02:00
Jorge Manrubia
b5a2c4a25e
Tidy up code a bit
2025-09-16 13:18:13 +02:00
Jason Zimdars
f57b6627e7
User needs to be explicity set to watching to receive this notification
2025-09-16 12:58:56 +02:00
Jorge Manrubia
a6eb928688
Fix: update ends_at when flushing bundles
...
If not, it can happen that the bundlers remains in a delivered state
even when it is not covering its window anymore because it has been delivered.
2025-09-16 12:10:06 +02:00
Jorge Manrubia
09325403e5
Add missing test (we were only testing this logic via the bundle test)
2025-09-16 11:22:14 +02:00
Mike Dalessio
d5a4239d19
Rename the queenbee_id and signal_user_id columns
...
to be more generic for the open-source release.
Find the signal account via Account#external_account
Find the signal user via User#external_user
2025-09-15 13:57:53 -04:00
Mike Dalessio
2630e4bd74
Extract 37id and QB controllers, models, and tests
2025-09-13 16:03:02 -04:00
Mike Dalessio
8f39c015ea
Tests now pass with local authentication
...
This is the first step of a multi-step SaaS engine extraction.
Looking ahead to an open source release, we need to make sure that
local authentication is treated as an "official" option, and not just
a hack I added for Kevin to do load testing outside our DC. So this PR
gets to green, and adds a CI step in "local authentication" mode.
This all probably feels a little hacky to you, Reader, but the goal of
this change is to ease the next step, which will be extracting the
37id and Queenbee integrations into a proprietary "SaaS mode" engine.
In service of that goal, this commit simply wraps all of the dependent
code and tests with a conditional check on
`config.x.local_authentication`.
2025-09-13 15:21:00 -04:00
Jason Zimdars
9ad813e5d0
Fix misleading test
...
The access involvement changes exposed that this test wasn't doing what it said it was. For this to be a self-assignment the event creator and assignee need to be the same
2025-09-11 21:33:21 -05:00
Jason Zimdars
c4dec29b49
Assignment notifications should always be delivered
...
- They're effectively @mentions
- This means watching really reflects the UI state: Watching for new cards
2025-09-11 21:21:11 -05:00
Jason Zimdars
e68b344cc2
Remove _Everything_ inolvement
2025-09-11 12:34:31 -05:00
Jorge Manrubia
7f7ecf0346
Delete notifications when the user loses access to the collection
2025-09-10 10:24:20 +02:00
Jorge Manrubia
2e51a34694
Extract method to fetch all the notifications for a card for a given user
...
We'll need to handle access changes
2025-09-10 10:08:14 +02:00
Jorge Manrubia
58c525e5a6
Broadcast notifications that are deleted
...
To prevent 404s when someone doesn't refresh the page
2025-09-10 09:50:22 +02:00
Jorge Manrubia
07bdcb7a9c
Pass the new param this partial requires
2025-09-09 12:12:39 +02:00
Jorge Manrubia
c36420800e
Fix test (and remove warning)
2025-09-09 12:12:22 +02:00
Jorge Manrubia
d9cc592566
Merge pull request #1007 from basecamp/weekly-highlights
...
Weekly highlights
2025-09-05 17:03:38 +02:00
Jorge Manrubia
aad61b36bc
Generate highlights in the user timezone, now that we persist it
...
Also, remove the dates and duration from the highlights records. Those are not relevant, only the events-derived
key is. If two users with different timezones have different activities, they should see different summaries.
2025-09-05 12:39:09 +02:00
Jorge Manrubia
d785f9f80f
Don't show summaries when using filters
2025-09-02 12:20:02 +02:00
Mike Dalessio
85b6f46422
Do not try to bundle notifications for system users
...
ref: https://fizzy.37signals.com/5986089/collections/7/cards/1471
2025-09-01 12:37:34 -04:00
Jorge Manrubia
dfbc77c2e5
Render weekly highlights considering periods of inactivity
2025-09-01 17:09:43 +02:00
Jorge Manrubia
5b68750713
Generate weekly highlights instead of daily ones
...
https://3.basecamp.com/2914079/buckets/37331921/todos/9010176047
2025-09-01 16:01:19 +02:00
Jorge Manrubia
6f2670d6dd
Merge main into bundle-emails branch and resolve conflicts
2025-09-01 11:49:20 +02:00
Jason Zimdars
e86be26f43
Update test
...
This test is a little naive because it matches cards in stages
regardless of engagement status unlike the actual conroller. For example
`@new_card` gets created and moved to a stage but it's actually not even
published and so shouldn't be stageable.
2025-08-28 21:24:23 -05:00
Jorge Manrubia
960f074b3f
Don't bundle new notifications is bundling is disabled
2025-08-28 12:53:19 +02:00
Jorge Manrubia
4e2717a61f
Merge main into bundle-emails branch
2025-08-28 12:42:43 +02:00
Jorge Manrubia
c1c359f030
Review existing bundles when changing the pending bundles
2025-08-28 12:29:40 +02:00
Jorge Manrubia
53144a379c
Add option to change the bundled email notification frequency
2025-08-28 11:56:40 +02:00
Jorge Manrubia
082a10e3d0
Add notification settings model
2025-08-28 11:20:28 +02:00
Jorge Manrubia
88976806b9
Format
2025-08-27 15:56:58 +02:00
Jorge Manrubia
5a4c40fd56
Test to make sure it skips bundles that are not due
2025-08-27 15:51:20 +02:00
Jorge Manrubia
ccceeb1699
Add method for delivery job
2025-08-27 15:48:27 +02:00
Jorge Manrubia
744faf12c0
Extract "response cost" object to unify calculations around LLM usage costs
2025-08-27 13:18:41 +02:00
Jorge Manrubia
e696c69d60
Merge branch 'main' into bundle-emails
2025-08-27 10:17:32 +02:00
Jorge Manrubia
81d6df3616
Remove comments from card prompts
...
We don't use to_prompt to generate AI responses anymore, only for events. Grabbing
all the comments don't make as much sense, and I'm sure it is quite expensive
2025-08-27 09:56:13 +02:00
Jorge Manrubia
853a75a54f
Rename "cost_microcents" => "cost_in_microcents"
2025-08-27 09:38:23 +02:00