Commit Graph

7496 Commits

Author SHA1 Message Date
Mike Dalessio 6f725fc9cf Stagger the timings on recurring jobs
just to avoid dogpiling writes on the database
2025-10-16 09:42:08 -04:00
Jorge Manrubia a59e988593 Merge pull request #1327 from basecamp/turbo-refresh-issues
Fix assorted issues when reloading pages with morphing and the pagination system
2025-10-16 14:32:47 +02:00
Jorge Manrubia e6df694f4b Fix keep right order in the stream column 2025-10-16 14:30:37 +02:00
Jorge Manrubia 067007f097 Remove ID that is not really needed and messes up with data-turbo-permanent 2025-10-16 14:23:39 +02:00
Jorge Manrubia 41ab8e4ced Remove empty / duplicated ids that can confuse idiomoprh 2025-10-16 14:04:48 +02:00
Jorge Manrubia 8c8dbe888e Fix assorted issues when reloading pages with morphing and the pagination system
This patches 2 problems in Turbo/idiomorph that are causing problems when reloading the pagination frames:

- No remove callback in idiomorph when removing a node that had been mapped.
- Regression introduced by https://github.com/hotwired/turbo/pull/1311, where it won't prevent the removal of frames with refresh=morph

I will upstream both patches, this is temporary.

https://fizzy.37signals.com/5986089/cards/2291
2025-10-16 13:39:16 +02:00
Jorge Manrubia 063c480b0a Merge pull request #1326 from basecamp/bundle-time-zone
Fix: use user timezone when delivering notification emails
2025-10-16 06:36:23 +02:00
Jorge Manrubia 7f918ca73f Fix: use user timezone when delivering notification emails 2025-10-16 06:35:27 +02:00
Jason Zimdars 6460c40f29 Update test 2025-10-15 20:41:09 -05:00
Jason Zimdars 317731b821 Merge pull request #1325 from basecamp/jz/10-15-25
JZ 10/15/25
2025-10-15 20:36:19 -05:00
Jason Zimdars e2c9df7c43 Include drafts in filter collection 2025-10-15 20:34:03 -05:00
Jason Zimdars 85e69460dc Move style out of .considering scope so it can apply in the filter view 2025-10-15 20:34:03 -05:00
Jason Zimdars c640505ad8 We don't need this anymore since it takes you to a filtered view 2025-10-15 17:10:26 -05:00
Jason Zimdars f9355ea475 Use "Fizzy" if they only have one account 2025-10-15 17:07:44 -05:00
Jason Zimdars e3346fde08 Update copy 2025-10-15 17:01:39 -05:00
Jason Zimdars 67aed4ad94 Update icon to better indicate unpinned state 2025-10-15 16:57:03 -05:00
Andy Smith 419384185b Merge pull request #1322 from basecamp/mobile-search-bar
Footer height takes safe area into account
2025-10-15 16:17:48 -05:00
Jason Zimdars da413e7540 Remove closure reasons 2025-10-15 16:15:56 -05:00
Andy Smith 884bd1787e Footer height takes safe area into account 2025-10-15 16:14:37 -05:00
Andy Smith d0458708bd Merge pull request #1321 from basecamp/column-button-a11y
Show column buttons on focus
2025-10-15 15:50:13 -05:00
Andy Smith ce444d7075 Show column buttons on focus 2025-10-15 15:45:52 -05:00
Andy Smith 9d11897d6a Merge pull request #1320 from basecamp/better-localstorage-keys
Make collection-specific keys for collapsed column state
2025-10-15 15:36:01 -05:00
Andy Smith f7afd6c939 Make collection-specific keys for collapsed column state 2025-10-15 15:28:46 -05:00
Andy Smith a1fd09627d Merge pull request #1319 from basecamp/z-index-fix
Only bump z-index if collection dialog is open
2025-10-15 15:23:08 -05:00
Andy Smith 5babf59e99 Only bump z-index if collection dialog is open 2025-10-15 15:18:13 -05:00
Andy Smith 808f3f4bb6 Merge pull request #1318 from basecamp/show-all-watchers
Show all overflow watchers in a dialog
2025-10-15 15:10:22 -05:00
Andy Smith f99eedabca Fix typo 2025-10-15 14:41:56 -05:00
Andy Smith f2530587d6 Show all overflow watchers in a dialog 2025-10-15 14:35:21 -05:00
Jason Zimdars c1bcab96f0 They're all just *done* 2025-10-15 14:10:38 -05:00
Jason Zimdars a6c692affe Just close as done 2025-10-15 14:02:08 -05:00
Andy Smith ab6f6194a1 Merge pull request #1317 from basecamp/truncations
Truncations
2025-10-15 13:47:53 -05:00
Andy Smith fad74c1282 Add screen reader labels for card ID 2025-10-15 13:45:51 -05:00
Andy Smith 963f0dab15 Aria labels for preview card meta icons 2025-10-15 13:42:47 -05:00
Andy Smith 2568c84268 Wrap collection filters when a bunch are added 2025-10-15 13:35:59 -05:00
Andy Smith af5c06d00b Truncate long column names 2025-10-15 13:26:51 -05:00
Jason Zimdars 626aa0ea8a Don't animate expanding columns when restoring 2025-10-15 12:51:06 -05:00
Jorge Manrubia 4c6ee468cb Merge pull request #1315 from basecamp/system-postpone
Assign postpone_by to system when auto-cleaning
2025-10-15 15:10:36 +02:00
Jorge Manrubia 0666e504d6 Assign postpone_by to system when auto-cleaning 2025-10-15 15:08:41 +02:00
Jorge Manrubia 4cc8ab829e Don't choke if no user 2025-10-15 15:06:16 +02:00
Jorge Manrubia b2b05e1da8 Remove wrong migration 2025-10-15 14:31:02 +02:00
Jorge Manrubia bd178fef3c Remove null constraint 2025-10-15 14:22:44 +02:00
Jorge Manrubia 26fb6a9c73 Merge pull request #1310 from basecamp/now-now-stamp
Add stamp to Not Now (doesn't include the name, though)
2025-10-15 14:14:21 +02:00
Jorge Manrubia 634270a1e8 Merge main into now-now-stamp and resolve schema conflicts 2025-10-15 14:05:27 +02:00
Jorge Manrubia acdc7706ce Add not now and closed as status filters
https://fizzy.37signals.com/5986089/cards/2342
2025-10-15 13:59:50 +02:00
Jorge Manrubia 9263cff3d5 Store and show the user that postpones cards 2025-10-15 13:44:49 +02:00
Fernando Álvarez 662798801b Add sc-chi and df-ams app and lb nodes to Production config 2025-10-15 12:24:45 +02:00
Kevin McConnell e528c382aa Merge pull request #1242 from basecamp/routing-headers
Populate writer and last transaction in responses
2025-10-15 09:06:41 +01:00
Kevin McConnell c1600a99e2 Populate writer and last transaction in responses
In order to control routing dynamically, we need to expose some Beamer
information to the proxy.

The `beamer_writer` value is used by the proxy to keep track of which
node should receive write requests. When it changes due to a failover,
the proxy will update after seeing a new value in this header. We
provide this to the proxy in the `X-Writer` response header.

The `beamer_last_txn` value will be used to control writer pinning.
Setting it in the cookie here is the first stage of this. The second
stage will be to catch situations where a reader gets a request where
this header value is set to a large value than the reader has seen; when
that happens if means there's a risk of reading stale data, so rather
than serve the request we should request the proxy to reproxy it back to
the writer.

We also set `X-Kamal-Target` in the response to match the
`X-Kamal-Target` that was set in the request; this lets us see which
proxy target served each request, which is useful for diagnostics.
2025-10-15 08:46:45 +01:00
Mike Dalessio b827ca685c Merge pull request #1314 from basecamp/flavorjones/minio-in-dev
Minio support in development
2025-10-14 19:12:34 -04:00
Mike Dalessio ffc0c86f36 Minio support in development
for when we need to debug direct upload problems
2025-10-14 19:11:50 -04:00