Commit Graph

5338 Commits

Author SHA1 Message Date
Jorge Manrubia 8baf5b8abd Make mission control only accessible for staff members 2025-11-28 15:53:58 +01:00
Jorge Manrubia c1334f7ffe Don't choke if no structured logging
Temporary workaround, we need a better solution here.
2025-11-28 15:53:58 +01:00
Jason Zimdars d4e540d633 Need to replace the entire block, not just the buttons in most cases
Fixes that closure notice was missing from views
2025-11-28 08:36:41 -06:00
Mike Dalessio 3f8d10d679 Merge pull request #1747 from basecamp/flavorjones/perf-20251127
Address some N+1 query situations
2025-11-27 12:46:56 -05:00
Mike Dalessio 09366fc949 style: rubocop fix 2025-11-27 12:34:31 -05:00
Jorge Manrubia e0d3e7f170 Merge pull request #1746 from basecamp/scroll-columns
Fix: scrolling to parent navigable list despite of setting
2025-11-27 18:06:44 +01:00
Jorge Manrubia 0a0a8642c9 Fix: scrolling to parent navigable list despite of setting
We need to check the setting of the parent controller

https://app.fizzy.do/5986089/cards/3184
2025-11-27 18:04:38 +01:00
Stanko K.R. e3d91f4ba2 Fix join codes skipping user setup
If someone joined an account with the same identity as they were signed in with the old logic would skip the user setup step
2025-11-27 17:59:17 +01:00
Mike Dalessio 198e404eb0 Avoid N+1 on account and board settings pages 2025-11-27 11:44:16 -05:00
Mike Dalessio 50fe973105 Remove N+1 on the cards board. 2025-11-27 11:30:54 -05:00
Mike Dalessio 0ab3aaca72 Preload Event to avoid N+1s on the timeline 2025-11-27 11:27:10 -05:00
Mike Dalessio 79c9ea2ce1 Remove a bunch of N+1s
related to notification and comment rendering
2025-11-27 11:08:45 -05:00
Jason Zimdars 29e62ac90c Fix that board button was leaking to the right of columns
See: https://app.fizzy.do/5986089/cards/3148
2025-11-27 09:18:33 -06:00
Jason Zimdars 5e971f41af Set entropy to 1 year so cards don't close before they can play 2025-11-27 09:18:33 -06:00
Jorge Manrubia 0453526bf1 Prevent Fizzy menu from closing on page refreshes
https://app.fizzy.do/5986089/cards/3190
2025-11-27 09:18:33 -06:00
Jorge Manrubia 5e23e6c3d3 Prevent Fizzy menu from closing on page refreshes
https://app.fizzy.do/5986089/cards/3190
2025-11-27 07:07:27 +01:00
Jason Zimdars 48d9a25820 Fix that 'closed'->'done' change broke this route 2025-11-26 14:58:17 -06:00
Mike Dalessio 9446bc18d2 Simplify Current.with_account and .without_account
Co-authored-by: Jeffrey Hardy <jeff@37signals.com>
2025-11-26 12:31:49 -05:00
Jason Zimdars e26845709a Disable focus ring 2025-11-26 11:24:13 -06:00
Jason Zimdars 9ca4cda5e4 Larger emojis in picker, fit on narrow viewports 2025-11-26 11:13:18 -06:00
Rosa Gutierrez 3e716bfa26 Fix a couple of typos 2025-11-26 13:16:44 +01:00
Donal McBreen c4498212dc Merge branch 'main' into sqlite
* main: (116 commits)
  Ensure avatar thumbnails are square
  Update useragent to recognize twitterbot/facebot
  Add defensive styles for non-square avatar images
  Update test for copy changes
  Missed commit
  AI: standardize on https://agents.md
  Make it clear this is just notifications, not comprehensive activity
  AI: configure MCP servers for Chrome, Grafana, and Sentry (#1727)
  Allow requests from Google Image Proxy
  Update to basecamp's useragent fork
  Clean up a little bit the CSRF reporting code
  Claude: production observability guidance (#1725)
  Prevent autoscroll to the root columns container to prevent jump on page load
  Include full name string so you can type your name to filter
  Prioritize current user and assigned users in assignment dropdown
  Check and report on Sec-Fetch-Site header for forgery protection
  bundle update
  Bump bootsnap from 1.18.6 to 1.19.0
  Bump rails from `077c3ad` to `17f6e00`
  Fix cards getting stuck in edit mode
  ...
2025-11-26 10:07:41 +00:00
Donal McBreen 9c86205510 Enforce SQLite column limits via CHECK constraints
Patch the sqlite adapter to add CHECK constraints for string and text
column limits. We'll do them inline, so that any column changes
automatically update the constraints.
2025-11-26 09:50:29 +00:00
Kevin McConnell ca5065a378 Ensure avatar thumbnails are square
Previously we were fitting the image inside a 256x256 box while keeping
it's original aspect ratio. But this can lead to images that are
squished and/or pixelated when we try to show them inside a square
container in the app.

Instead we can resize them to be square.
2025-11-26 09:21:46 +00:00
Jason Zimdars d825447e6b Add defensive styles for non-square avatar images 2025-11-25 16:51:07 -06:00
Jason Zimdars 154cbf0cde Make it clear this is just notifications, not comprehensive activity 2025-11-25 16:08:11 -06:00
Jason Zimdars 14650df246 Merge pull request #1723 from basecamp/fix-scroll-jump
Prevent autoscroll to the columns container to remove jump on page load
2025-11-25 15:31:26 -06:00
Rosa Gutierrez fac9f3c369 Clean up a little bit the CSRF reporting code
Small follow-up to https://github.com/basecamp/fizzy/pull/1721
2025-11-25 21:28:50 +01:00
Jorge Manrubia ca10e4ba4e Prevent autoscroll to the root columns container to prevent jump on page load
https://app.fizzy.do/5986089/cards/3160
2025-11-25 21:01:18 +01:00
Mike Dalessio 396c1ffdcf Merge pull request #1722 from basecamp/fwt-user-list-improvement
Prioritize current user and assigned users in assignment dropdown
2025-11-25 14:36:14 -05:00
Jason Zimdars 3d429c1dea Include full name string so you can type your name to filter 2025-11-25 13:19:33 -06:00
Mike Dalessio 3811088db3 Prioritize current user and assigned users in assignment dropdown
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 13:46:14 -05:00
Rosa Gutierrez d88949288c Check and report on Sec-Fetch-Site header for forgery protection
This is a great, solid alternative to CSRF tokens for CSRF protection
when we aren't worried about older browsers or other kind of actors
doing modifying requests in our app, and could be a good test for future
upstreaming to Rails (although there we'd need to continue using CSRF
tokens or at least letting people opt out manually).

Let's start checking the header and reporting on it when CSRF fails or
when it doesn't match the other checks Rails does, and then promote this
to be the only way to defend from CSRF.
2025-11-25 19:19:50 +01:00
Donal McBreen 97bcdf1853 Enforce column limits via concern
SQLite columns lengths are purely informational, so we'll enforce the
limits via a concern that checks the lengths from the schema.
2025-11-25 15:32:34 +00:00
Stanko K.R. a7df8260c3 Fix cards getting stuck in edit mode 2025-11-25 15:36:13 +01:00
Donal McBreen c2eb840e2b Use Uuid type directly 2025-11-25 13:47:08 +00:00
Stanko K.R. f64a49dcc0 Determine staff members based on flag
This replaces the old system based on email addresses, the aim is to make it more generic and thus appropriate for OSS/self-hosting

See: https://3.basecamp.com/2914079/buckets/37331921/todos/9302705265#__recording_9320051455
2025-11-25 14:09:31 +01:00
Donal McBreen b571303385 Don't use Current.account for search records
It doesn't actually work, and even if we could make it work reliably
we are better off if the records always know to go to the right shard.

It does make the interface a bit more complicated as we need to select
the right shard class with `for(account_id)`.
2025-11-25 11:34:41 +00:00
Stanko K.R. 4e52f9b9a9 Show tags the card is tagged with first 2025-11-25 11:24:21 +01:00
Stanko Krtalić c8169c1972 Merge pull request #1712 from basecamp/fix-background-image-previews
Fix background images not showing up after upload
2025-11-25 08:15:20 +01:00
Stanko K.R. c11a13dc20 Replace the whole card on update 2025-11-25 08:13:18 +01:00
Jason Zimdars 3e0d2d8b4d Include bottom inset on the modal and footer, too
Makes sure everything moves together on mobile
2025-11-24 21:28:48 -06:00
Jason Zimdars 5215c5ccb9 Attempt to fix expanded search input 2025-11-24 21:24:09 -06:00
Jason Zimdars b45554966f Lose the second close button 2025-11-24 17:48:21 -06:00
Jason Zimdars 0c05694a3c This seems to have caused the unwanted effect of not focusing the field in Mobile Safari
Looks like it regressed in
https://github.com/basecamp/fizzy/commit/250935530f86eb628d6b54ec6b7212dac9e76f8b.
Let's see if we can get focus in Safari without sacrificing select in
other browsers by simply moving the nextFrame() call
2025-11-24 17:48:02 -06:00
Jason Zimdars 74cd88d626 Always display the cancel button, esc isn't obvious 2025-11-24 17:19:01 -06:00
Jason Zimdars cfc61c318d Nothing should cover the bar, trays or search results 2025-11-24 17:18:44 -06:00
Jason Zimdars 789c00b87f Dark theme color isn't black
I *think* we don't need the theme color in the manifest since it doesn't
have dark mode support anyway
2025-11-24 16:37:50 -06:00
Jason Zimdars a1fcabf01e Add env constaints for mobile layout
In theory, this prevents overlapping device elements like the dynamic
island in landscape
2025-11-24 16:33:32 -06:00
Jason Zimdars b93224b45c Smaller on mobile
It really takes up a lot of space in landscape
2025-11-24 16:22:33 -06:00