Jason Zimdars
df2d938b7e
Copy and design polish
2025-12-01 22:23:25 -06:00
Kevin McConnell
2c1ab1bb29
Formatting
2025-12-01 17:19:59 +00:00
Kevin McConnell
3eaf9cb350
Put fizzy in the export filename
2025-12-01 16:01:41 +00:00
Kevin McConnell
c492e6c4c4
Make the JSON prettier
2025-12-01 15:54:24 +00:00
Kevin McConnell
45afe494ec
Skip missing files
2025-12-01 15:40:07 +00:00
Kevin McConnell
12f6dbf79f
Handle remote image attachments too
2025-12-01 15:36:35 +00:00
Kevin McConnell
e16cc21b0a
Add "data export" feature
...
- Adds a button in Account Settings where you can request a ZIP export of your
Fizzy data
- Export files are created in the background. When ready, a link to
download them is sent to the requester.
- Exports expire after 24 hours. And are limited to 10 per day.
2025-12-01 15:23:26 +00:00
Mike Dalessio
edf6b53469
Introduce an "owner" role, and prevent it from being administered
...
to prevent the owner from being demoted or kicked out.
ref: https://app.fizzy.do/5986089/cards/3213
2025-11-29 14:13:29 -05:00
Stanko K.R.
7df30534f4
Change copy
2025-11-29 15:20:21 +01:00
Stanko K.R.
2311efd03e
Make sign up Magic Links work across devices
...
Previously if someone started signing in on their phone, but finished it on their laptop, they'd end up on the menu screen with no account. Bu tracking the purpose of a Magic Link we can always direct the user to sign up if they requested a magic link through sign up. This also makes the logic for changing the copy in the email more robust.
2025-11-29 12:36:00 +01:00
Stanko K.R.
e302e79b55
Remove unused view
2025-11-29 11:59:10 +01:00
Stanko K.R.
354dd1e95a
Update signup with the design from signin
2025-11-29 11:58:48 +01:00
Stanko K.R.
658b5a07cf
Organize everything under Signups
2025-11-29 11:46:09 +01:00
Stanko K.R.
5747445977
Create signups controller
2025-11-29 10:15:48 +01:00
Mike Dalessio
434a9671cc
Ensure Account::ExternalIdSequenceTest.value is never nil
...
If no record exists, create it. This fixes a test in fizzy-saas in
test/models/signup_test.rb that was not actually testing with a valid
external account id.
2025-11-28 14:27:14 -05:00
Jorge Manrubia
a8c4c0fb4b
Merge pull request #1748 from basecamp/update-system-user-avatar
...
Update system user avatar
2025-11-28 18:24:30 +01:00
Rosa Gutierrez
f8a1e0500d
Switch from report-only to actually using Sec-Fetch-Site for CSRF protection
...
As a fallback for Rails's token-based mechanism. To use Sec-Fetch-Site
exclusively, we'll wait until Rails offers that (when we upstream this).
2025-11-28 16:26:03 +01:00
Jorge Manrubia
3223ba53c3
We need the check in both test/code
2025-11-28 15:53:58 +01:00
Jorge Manrubia
6ccf655597
Move yabeda/prometheus stuff to the gem
2025-11-28 15:53:58 +01:00
Jorge Manrubia
3b0ddf4cfb
Move sentry to engine
2025-11-28 15:53:58 +01:00
Jorge Manrubia
1897cc238f
Only staff can access beta/staging
...
https://app.fizzy.do/5986089/cards/3208
2025-11-28 15:53:58 +01:00
Jorge Manrubia
d4ad62109c
Rename/extract methods
2025-11-28 15:53:58 +01:00
Jorge Manrubia
4e09352c09
Bring simple signup flow from the fizzy-saas gem
...
We skip the QB code and we fill external account ids automatically on creation with a sequence
See:
https://github.com/basecamp/fizzy-saas/pull/7
2025-11-28 15:53:58 +01:00
Jorge Manrubia
2061ab4ab2
Use dedicated sequence record instead of deal with issues with ids and uuids when using the previous approach
2025-11-28 15:53:58 +01:00
Jorge Manrubia
07b4c55185
Auto-increment external_account_id automatically by default to allow upcoming simple signups
2025-11-28 15:53:58 +01:00
Jorge Manrubia
e30709f6a7
Remove structured logging moved to the engine
2025-11-28 15:53:58 +01:00
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
Sean Mitchell
09b39f3f16
Update system user avatar
2025-11-27 13:49:33 -08: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