Commit Graph

5623 Commits

Author SHA1 Message Date
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
Jorge Manrubia a5b8012eb6 Update lexxy to latest 2025-10-10 15:42:21 +02:00
Andy Smith e068faf3ec Merge pull request #1275 from basecamp/public-description-lists
Public description lists
2025-10-09 16:12:58 -05:00
Andy Smith 9ead1d82ac Merge branch 'main' into public-description-lists
* main: (21 commits)
  Ruby 3.4.7 (#1274)
  bin/setup: enpurple step headings
  bin/setup: ensure PATH is prepared after a new Ruby is installed
  Drop defunct bin/bundle that interferes with Bundler's own version management
  bin/setup: use Bash so we can bootstrap Ruby (#1273)
  Don't try to wrap with a download link, every file already has one in the caption
  bundle lock --normalize-platforms
  Show column title on public collections
  Docker: explicit libssl dep
  Ruby 3.4.6 (#1272)
  Check the selected color
  Style
  Add column color to cache keys
  Make the edit form the same dimensions as the add form
  Don't let the column button effect apply to buttons in the picker
  Set and change column colors
  Prom metrics in dev (#1269)
  Cleanup prototyping
  Properly scroll and center content
  Sorta working x-scroll
  ...
2025-10-09 16:08:16 -05:00
Jeremy Daer 0cdf68125d Ruby 3.4.7 (#1274) 2025-10-09 13:24:01 -07:00
Jeremy Daer 0d4a045e1c bin/setup: enpurple step headings 2025-10-08 22:05:27 -07:00
Jeremy Daer 5c48e47c02 bin/setup: ensure PATH is prepared after a new Ruby is installed 2025-10-08 22:02:57 -07:00
Jeremy Daer 2faaba3ef0 Drop defunct bin/bundle that interferes with Bundler's own version management
Without it, Bundler auto-installs the correct version to run, including
newer Bundler versions.
2025-10-08 22:01:57 -07:00
Jeremy Daer 0e82255601 bin/setup: use Bash so we can bootstrap Ruby (#1273)
And chew gum
2025-10-08 21:45:18 -07:00
Jason Zimdars 094c2c056b Don't try to wrap with a download link, every file already has one in the caption 2025-10-08 21:54:25 -05:00
Jeremy Daer 3dd3dcc2e7 bundle lock --normalize-platforms 2025-10-08 16:02:09 -07:00
Jason Zimdars 37ba5e8b67 Merge branch 'public-columns-fix' 2025-10-08 18:01:50 -05:00
Jason Zimdars 8c3f0c66b7 Show column title on public collections 2025-10-08 17:55:35 -05:00
Jeremy Daer 2411ab74a0 Docker: explicit libssl dep 2025-10-08 15:50:55 -07:00
Jeremy Daer 398946aa9e Ruby 3.4.6 (#1272)
* Bundler 2.7.2
* Minor dep bumps
2025-10-08 15:40:21 -07:00
Jason Zimdars 4bc304f762 Check the selected color 2025-10-08 17:37:10 -05:00
Jason Zimdars 300a7b2faa Merge pull request #1271 from basecamp/add-colors-to-cache-keys
Add column color to cache keys
2025-10-08 17:16:47 -05:00
Jason Zimdars 3390cd95af Style 2025-10-08 17:11:42 -05:00
Jason Zimdars fcba8b6acb Add column color to cache keys
So cards change colors when you change the column color
2025-10-08 17:08:32 -05:00
Andy Smith 24eaf9ff1f Make lists in public description less weird 2025-10-08 16:52:22 -05:00
Jason Zimdars 9d1d21b625 Merge pull request #1270 from basecamp/set-column-colors
Set column colors
2025-10-08 16:52:22 -05:00