Commit Graph

5282 Commits

Author SHA1 Message Date
Adrien Maston bdfdb5bf84 Hide mobile-apps only elements on web 2025-11-26 10:37:01 +01:00
Adrien Maston 0e290feaf2 Merge branch 'main' into mobile-app/scoped-stylesheets
* main: (30 commits)
  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
  Don't report ConcurrentMigrationError to Sentry
  ...
2025-11-26 10:27:33 +01:00
Adrien Maston cba3c68c23 Add utilities files and insets 2025-11-26 10:25:54 +01: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
Stanko K.R. a7df8260c3 Fix cards getting stuck in edit mode 2025-11-25 15:36:13 +01: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
Stanko K.R. 4e52f9b9a9 Show tags the card is tagged with first 2025-11-25 11:24:21 +01:00
Adrien Maston df2e4c1518 Merge branch 'main' into mobile-app/scoped-stylesheets
* main: (35 commits)
  Replace the whole card on update
  Include bottom inset on the modal and footer, too
  Attempt to fix expanded search input
  Lose the second close button
  This seems to have caused the unwanted effect of not focusing the field in Mobile Safari
  Always display the cancel button, `esc` isn't obvious
  Nothing should cover the bar, trays or search results
  Dark theme color isn't black
  Add env constaints for mobile layout
  Smaller on mobile
  Reasonalbe max heights
  Remove top orientation (it doesn't work well), make right and left classes exclusive
  This is too fancy, remove it
  Set reasonable maxes
  Restore bubble to Maybe
  Restore structured logging of `queenbee_id`
  Add a kamal pre-build hook with some safety checks
  Configure beta to use production blob store
  Configure beta load balancer
  Update beta deployment and secrets config
  ...
2025-11-25 10:36:48 +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
Jason Zimdars 4e14c0df27 Reasonalbe max heights
Use all the available space above the search/trays footer. On mobile use
the full viewport height
2025-11-24 16:16:09 -06:00
Jason Zimdars ed19e6d494 Remove top orientation (it doesn't work well), make right and left classes exclusive
In certain cases (board picker) both classes would be applied making a
mess
2025-11-24 15:49:42 -06:00
Jason Zimdars 9cc63c6dce This is too fancy, remove it 2025-11-24 15:48:08 -06:00
Jason Zimdars 2f6f4cd3f5 Set reasonable maxes 2025-11-24 15:47:57 -06:00
Jason Zimdars 3a2b347aba Restore bubble to Maybe
Stalled cards in Maybe are often out of view
2025-11-24 15:17:45 -06:00
Mike Dalessio e0aa1d257e Drop User.system and replace with Account#system_user 2025-11-24 13:23:57 -05:00
Jason Zimdars a9da44b575 Merge pull request #1663 from basecamp/not-now-polish
Not now polish
2025-11-24 10:33:25 -06:00
Jason Zimdars dd2b067e98 Add properties for Lexxy's built-in styles
Usually, `<b>`, `<i>`, etc are enough but when you attempt a combo like
bold-italic, Lexxy applies two classes to a single element instead of
rendering tags like in the output
2025-11-24 10:04:12 -06:00
Kevin McConnell bd259f7795 Add optimistic pausing to avoid stale reads
Instead of writer pinning, we'll track the last transaction ID of each
write in the session. Then on each read we'll wait for the replica to
report that this transaction is available.

If it doesn't become available within a reasonable timeout, we'll
proceed anyway, and accept the possibility of a stale read.

The hope here is that most of the time, the replica is caught up in the
time between a write request and the following read request. If it's
not, we now have a little tolerance to wait for it, which hopefully
proves enough to stale reads are not encountered in normal use.

We also disable the writer affinity opt-out mechanism that we had
before, since we will no longer be using writer affinity at the load
balancer.
2025-11-24 13:29:52 +00:00
Stanko K.R. 46d80f2ca2 Serve system user avatar as an asset 2025-11-24 13:16:14 +01:00
Adrien Maston 27556448c4 Fix icon paths 2025-11-24 12:07:15 +01:00
Stanko K.R. e85c5736c9 Render system user avatars using redirects 2025-11-24 12:05:32 +01:00
Jason Zimdars 433a19e103 Add an avatar for the System user 2025-11-24 12:04:33 +01:00
Jason Zimdars 0c49d3c2a6 Use "Done" for consistency
Closed is domain language
2025-11-24 12:04:33 +01:00
Jason Zimdars 2f3d602deb No longer used
These are for the old closed section at the bottom of the screen and are
no longer relevant
2025-11-24 12:04:33 +01:00
Jason Zimdars 87c2428d47 Differentiate, even though they share some properties 2025-11-24 12:04:33 +01:00
Jason Zimdars 6af569ddd8 Use move icon here, too 2025-11-24 12:03:34 +01:00
Jason Zimdars 31d3aea3fa More copy edits 2025-11-24 12:03:34 +01:00
Jason Zimdars 86932803e4 Clarify not now move actions copy 2025-11-24 12:03:34 +01:00
Jason Zimdars 5fac18d01f Restore auto-postponed events to the timeline 2025-11-24 12:03:34 +01:00
Adrien Maston 70fefe5e92 Clean unwanted styles 2025-11-24 11:54:50 +01:00
Adrien Maston 041ac0c28e Add conditional stylesheets for mobile apps 2025-11-24 11:52:56 +01:00
Mike Dalessio 26ccbf6968 Merge pull request #1695 from basecamp/flavorjones/better-card-edit-form-behavior
Update card buttons dynamically
2025-11-23 23:36:10 -05:00