Commit Graph

5643 Commits

Author SHA1 Message Date
Mike Dalessio bffaedc604 dep: Add indirect dependency "benchmark" to quash Ruby 3.5 warnings
```
gems/sniffer-0.5.0/lib/sniffer/adapters/net_http_adapter.rb:4: warning: lib/ruby/3.4.0/benchmark.rb was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add benchmark to your Gemfile or gemspec to silence this warning.
Also please contact the author of sniffer-0.5.0 to request adding benchmark into its gemspec.
```

Sadly it looks like sniffer is not really maintained, so I'm adding
this here for now.
2025-10-13 08:50:55 -04:00
Mike Dalessio 63458ceb87 Fix SQLiteBackupsJob to work with AR::Tenanted v0.5.0
ref: https://github.com/basecamp/activerecord-tenanted/pull/215
2025-10-13 08:47:16 -04:00
Mike Dalessio 0e0103c492 Merge pull request #1294 from basecamp/flavorjones/dep-20251012
Update dependencies
2025-10-12 14:48:12 -04:00
Mike Dalessio 9b00d59e57 dep: update solid_cache and aws_partitions 2025-10-12 14:40:02 -04:00
Mike Dalessio f100eb89ee dep: update selenium-webdriver 2025-10-12 14:38:54 -04:00
Mike Dalessio 824c62b4b0 dep: update rails 2025-10-12 14:36:11 -04:00
Mike Dalessio 0e40a28b25 dep: update activerecord-tenanted 2025-10-12 14:34:51 -04:00
Jeremy Daer b8f09b7f75 Deploy to fully-qualified domain names to eliminate DNS search path driven query amplification (#1293) 2025-10-11 15:57:47 -07:00
Mike Dalessio 5bbb94e1c6 Merge pull request #1292 from basecamp/flavorjones/fix-webhook-cleanup
Fix recurring job config for webhook cleanup
2025-10-11 13:59:22 -04:00
Mike Dalessio 28e9b4a496 Fix recurring job config for webhook cleanup 2025-10-11 13:57:19 -04:00
Mike Dalessio ab5451f1c9 Merge pull request #1291 from basecamp/flavorjones/yabeda-actioncable
Add yabeda-actioncable metrics
2025-10-11 13:41:16 -04:00
Mike Dalessio 4f981e9c2f Add yabeda-actioncable metrics 2025-10-11 13:35:31 -04:00
Mike Dalessio 5c651a7f94 Tidy recurring.yml 2025-10-11 13:23:25 -04:00
Mike Dalessio eb1d1c0302 Merge pull request #1290 from basecamp/flavorjones/perf-tuning-5
Increase the number of job workers to match CPUs
2025-10-11 11:32:50 -04:00
Mike Dalessio b9a616b083 Increase the number of job workers to match CPUs
JOB_CONCURRENCY would still override this number.
2025-10-11 11:29:21 -04:00
Mike Dalessio b056bd61dc Merge pull request #1289 from basecamp/flavorjones/perf-tuning-4
Additional Autotuner suggestions
2025-10-11 11:20:48 -04:00
Mike Dalessio 956962de7f Additional Autotuner suggestions
The following suggestions reduce the number of minor garbage collection cycles, specifically a cycle called "malloc". Your app runs malloc cycles in approximately 18.52% of all minor garbage collection cycles.

Reducing minor garbage collection cycles can help reduce response times. The following tuning values aim to reduce malloc garbage collection cycles by setting it to a higher value. This may cause a slight increase in memory usage. You should monitor memory usage carefully to ensure your app is not running out of memory.

Suggested tuning values:
  RUBY_GC_MALLOC_LIMIT=33554432
  RUBY_GC_MALLOC_LIMIT_MAX=67108864
2025-10-11 11:15:54 -04:00
Jeremy Daer 440e96cfe1 bin/setup: drop spinners since they interfere with bash trap and error output 2025-10-10 22:44:44 -07:00
Andy Smith 95529899fc Merge pull request #1288 from basecamp/hide-columns-when-creating
Hide column list when creating a new card
2025-10-10 16:57:25 -05:00
Andy Smith 424a7795a9 Hide column list when creating a new card 2025-10-10 16:53:34 -05:00
Andy Smith f09dcfc4ed Merge pull request #1287 from basecamp/tray-trigger-height
Tray toggle height should match card size
2025-10-10 16:41:35 -05:00
Andy Smith cafb17d21f Tray toggle height should match card size 2025-10-10 16:38:38 -05:00
Mike Dalessio 3c4266f689 Merge pull request #1286 from basecamp/flavorjones/perf-tuning-3
GC: Defer major GC cycles until after request handling completes
2025-10-10 16:56:10 -04:00
Mike Dalessio 550a4b7c33 Don't set puma performance settings in dev 2025-10-10 16:53:52 -04:00
Mike Dalessio 257aeb8511 GC: Defer major GC cycles until after request handling completes 2025-10-10 16:49:01 -04:00
Andy Smith 47b8b83561 Merge pull request #1285 from basecamp/done-column-verbiage
Done column verbiage
2025-10-10 15:32:13 -05:00
Mike Dalessio ab524f0a9d Merge pull request #1284 from basecamp/flavorjones/perf-tuning-2
Set Autotuner GC recommendations
2025-10-10 16:27:30 -04:00
Mike Dalessio 0b0f16cc5d Set Autotuner GC recommendations 2025-10-10 16:19:11 -04:00
Andy Smith fe842723b6 Nevermind about the default reason :) 2025-10-10 15:07:17 -05:00
Andy Smith 5ff50fd352 Change default reason from Completed to Done 2025-10-10 15:04:47 -05:00
Andy Smith 81ce61aa9e Match the column name in workflows 2025-10-10 14:56:25 -05:00
Mike Dalessio e79a546d87 Merge pull request #1283 from basecamp/flavorjones/perf-tuning-1
Performance tuning round 1
2025-10-10 15:52:57 -04:00
Mike Dalessio fb45b9d366 Install Autotuner for GC recommendations 2025-10-10 15:49:48 -04:00
Mike Dalessio 016f00dfb5 Call Process.warmup 2025-10-10 15:17:13 -04:00
Andy Smith 19863dd519 Merge pull request #1282 from basecamp/fizzy-menu-scrollbar
Use stable scrollbar gutters for the Fizzy menu
2025-10-10 14:13:39 -05:00
Mike Dalessio ba090196d8 Baseline puma worker/thread config
Because we expect fewer I/O waits than Rails apps that connect to the
database over the network, let's start with a baseline config of 1
worker per CPU, 1 thread per worker and tune it from there.

https://edgeguides.rubyonrails.org/tuning_performance_for_deployment.html#puma
2025-10-10 15:00:03 -04:00
Andy Smith 8085509cfd Use stable scrollbar gutters for the Fizzy menu 2025-10-10 13:22:06 -05:00
Jorge Manrubia 423a9c3e08 Update lexxy to latest now for good! 2025-10-10 19:26:48 +02:00
Jorge Manrubia 52c6c42bfb Update lexxy to latest 2025-10-10 19:15:12 +02:00
Mike Dalessio f95470e96b Merge pull request #1280 from basecamp/flavorjones/remove-identity-fragment-cache
Remove the caching around Identity-related fragments
2025-10-10 11:55:53 -04:00
Jorge Manrubia 5b90f00bae Update lexxy to latest 2025-10-10 17:55:39 +02:00
Mike Dalessio ec119b774a Remove the caching around Identity-related fragments
The Identity table read should be OK given the menu is etagged
and the untenanted page should be a rarity.
2025-10-10 11:53:36 -04:00
Mike Dalessio d973509895 Merge pull request #1279 from basecamp/flavorjones/add-beamer-duh
db: Add beamer to the untenanted database
2025-10-10 11:44:13 -04:00
Mike Dalessio c368485e84 db: Add beamer to the untenanted database 2025-10-10 11:43:07 -04:00
Mike Dalessio 9c438816c3 Merge pull request #1278 from basecamp/flavorjones/fix-existing-session-identities
Fix identities for existing sessions
2025-10-10 11:14:48 -04:00
Mike Dalessio b7abf33c29 Bump identity cache fragments 2025-10-10 11:08:39 -04:00
Mike Dalessio 04be825609 Fix identities for existing sessions 2025-10-10 10:58:30 -04:00
Mike Dalessio 25d3e471df Merge pull request #1277 from basecamp/flavorjones/identity-and-membership
Introduce an "Identity" model to ease login
2025-10-10 10:35:05 -04:00
Mike Dalessio 3399e45130 Introduce an "Identity" model to ease login
- New untenanted Identity and Membership models
- New `identity_token` cookie with path "/" holds state across tenants

We're not sure whether the untenanted database will be sqlite or
MySQL, and so I've been careful to minimize

- database reads, placing them behind etags and caching
- database writes, only writing when a new Session is created (login)

Note that we track two things in the identity_token cookie: a signed
id, and the updated_at for the underlying Identity object. This allows
us to effectively cache on the Identity without having to hit the
database, by using an Identity::Mock object that is compatible with
etag and cache methods.

The new integration test shows the desired user-facing behavior, which
is to make it easy to login without a tenanted URL and to jump between
tenants.

- the untenanted "login_help" page shows all linked memberships
- the jump menu shows all linked memberships (except the current)

Also introduced a utility script to populate existing employee
Identities, grouping accounts by email address.
2025-10-10 10:12:25 -04:00
Jorge Manrubia f38410890a Merge pull request #1276 from basecamp/udpate-fizzy
Update lexxy to latest
2025-10-10 15:45:57 +02:00