Stanko Krtalić
17a545fffa
Merge pull request #2530 from basecamp/notification-sorting-optimization
...
Index notifications on updated_at
2026-02-12 11:41:36 +01:00
Stanko K.R.
22276a25c8
Index notifications on updated_at
...
As we now update notifications with unread counts we sort them by the
time they were updated instead of when they were created. To keep that
performant we also have to change the previous indices that used
created_at to use updated_at.
2026-02-12 11:36:46 +01:00
Stanko Krtalić
61144667fc
Merge pull request #2512 from basecamp/server-side-notification-grouping
...
Stack notifications in all views
2026-02-12 10:33:12 +01:00
Stanko K.R.
36ee253a1a
Stack notifications everywhere
...
We had client-side notification stacking in the tray since launch, but now we want to stack notifications in the notifications page, in API responses and in email bundles.
2026-02-12 10:29:50 +01:00
Zoltán Hosszú
446c75bb5c
Merge pull request #2457 from basecamp/lexxy-version-bump
...
- Bump Lexxy's version to latest 0.7.4
- Enable tables with the recent UX enhancements
- Use Lexxy's built-in CSS for rich text rendering, removing the duplicate CSS from Fizzy
2026-02-12 10:04:10 +01:00
Zoltan Hosszu
e0f8a182c5
HR fixes
2026-02-12 09:54:21 +01:00
Zoltan Hosszu
343bf016a3
Removing duplicate code language picker
2026-02-12 09:54:21 +01:00
Zoltan Hosszu
9a2e30b9c8
Regression fixes
2026-02-12 09:54:21 +01:00
Andy Smith
322de4217f
Touch up link button hover styles
2026-02-12 09:54:21 +01:00
Zoltan Hosszu
0d45a42ebf
Remove link dialog size limit
2026-02-12 09:54:21 +01:00
Zoltan Hosszu
374856f641
Fix toolbar dropdown icon background
2026-02-12 09:54:21 +01:00
Zoltan Hosszu
a315af1090
Table tweaks
2026-02-12 09:54:21 +01:00
Andy Smith
a4303dbe71
Use existing lexxy-content styles instead of rewriting everything
2026-02-12 09:54:21 +01:00
Andy Smith
4e5a5e1523
Use built-in lexxy styles and sprinkle in some overrides
2026-02-12 09:54:20 +01:00
Zoltan Hosszu
a586f77a71
Use Lexxy's built in CSS for Lexxy
2026-02-12 09:54:20 +01:00
Zoltan Hosszu
2ee745cf82
Lexxy version bump
2026-02-12 09:54:20 +01:00
Stanko Krtalić
680a718379
Merge pull request #2527 from basecamp/pre-notification-stacking-migrations
...
Add card_id and unread_count to notifications
2026-02-12 08:10:56 +01:00
Stanko K.R.
c84d783b2a
Add card_id and unread_count to notifications
2026-02-12 08:07:51 +01:00
Stanko K.R.
37d7f5c569
Give more detail about why the import failed
2026-02-11 13:47:21 +01:00
Alp Keser
03ed6df109
Merge pull request #2455 from basecamp/expose-has-attachment-for-card
...
Add json.has_attachments for the card
2026-02-10 11:36:30 +03:00
Andy Smith
4db715ca5f
Merge pull request #2515 from basecamp/card-column-refresh
...
Only disable the current column if it's open
2026-02-09 16:09:40 -06:00
Andy Smith
b3951564bc
Only disable the current column if it's open
2026-02-09 16:02:02 -06:00
Andy Smith
e1a70a330d
Merge pull request #2513 from basecamp/truncate-account-menu
...
Truncate long account names in the menu
2026-02-09 10:51:02 -06:00
Mike Dalessio
8c5b47d774
Group notification emails by board ( #2506 )
...
* Group notification emails by board
Notification bundle emails now group items by board instead of
showing the board name redundantly for each card. Each board
section has a linked header and an <hr> separator.
* Adjust board title styles and remove rem units
* Sort board groups alphabetically
Sort notification email board sections alphabetically by name
(case-insensitive).
Also, rewrite mailer tests to use Nokogiri::HTML5 for precise DOM
assertions instead of regex matching.
---------
Co-authored-by: Andy Smith <andy@37signals.com >
2026-02-09 11:29:11 -05:00
Andy Smith
4127eaeacf
Truncate long account names in the menu
2026-02-09 10:22:58 -06:00
Rosa Gutierrez
692fd73512
Run only Solid Queue's maintenance tasks in staging
...
And not all production tasks, because that causes unexpected side
effects such as cards being auto-postponed and firing webhooks
configured to trigger on that event.
2026-02-09 13:19:12 +01:00
dependabot[bot]
9622e5dad4
Bump actions/attest-build-provenance from 3.1.0 to 3.2.0 ( #2499 )
...
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance ) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/attest-build-provenance/releases )
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md )
- [Commits](https://github.com/actions/attest-build-provenance/compare/v3.1.0...v3.2.0 )
---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
dependency-version: 3.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-08 10:35:19 -08:00
dependabot[bot]
52ec23ff21
Bump docker/login-action from 3.6.0 to 3.7.0 ( #2500 )
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3.6.0...v3.7.0 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: 3.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-08 10:35:11 -08:00
Mike Dalessio
bd1ef1f650
dep: bump console1984 to 746cd443 ( #2495 )
...
to pick up the session incineration fix
ref: https://3.basecamp.com/2914079/buckets/27/card_tables/cards/9552285400
2026-02-06 10:24:04 -05:00
Adrien Maston
a8676ada4c
Merge pull request #2490 from basecamp/fix-hidden-filters-in-firefox
...
Fix hidden filters in Firefox
2026-02-06 11:01:54 +01:00
Andy Smith
90cf405391
Merge pull request #2492 from basecamp/accounts-page-overflow
...
Content overflow scrolling for users list
2026-02-05 13:23:22 -06:00
Andy Smith
8e93f9d45e
Content overflow scrolling for users list
2026-02-05 13:20:01 -06:00
Adrien Maston
9c7afcbee8
Merge pull request #2484 from basecamp/mobile/fix-board-scroll-position
...
Mobile / Fix expanded column not being scrolled into view
2026-02-05 17:47:38 +01:00
Adrien Maston
cf6cd7d7c5
Merge pull request #2491 from basecamp/mobile/bridge-back-to-board-button
...
Mobile / Bridge back to board button
2026-02-05 17:43:12 +01:00
Adrien Maston
4072688974
Use a dedicated link to bridge a "go to" board button
2026-02-05 17:36:48 +01:00
Adrien Maston
fe555f751e
Move "Edit" action to ellipsis menu
2026-02-05 17:33:29 +01:00
Adrien Maston
626b8aa8a6
Revert "Show "Go to" board button in card perma"
...
This reverts commit d689f560b4 .
2026-02-05 17:31:37 +01:00
Adrien Maston
186d759672
Instant scrolling on restore, animated on user action
2026-02-05 17:17:49 +01:00
Adrien Maston
d689f560b4
Show "Go to" board button in card perma
2026-02-05 17:04:03 +01:00
Stanko Krtalić
421525e725
Merge pull request #2480 from basecamp/move-import-button-to-signup-screen
...
Move import button to sign up screen
2026-02-05 12:33:11 +01:00
Adrien Maston
9d4655d35e
Make filters "open" by default then hide in mobile apps
2026-02-05 11:12:50 +01:00
Mike Dalessio
14aa95d982
Add migration script to fix misplaced comment events ( #2487 )
...
Finds comment events that are on the wrong board (after a card move)
and updates them to the correct board.
2026-02-04 15:27:33 -05:00
Mike Dalessio
d611b2cc6c
Move comment events when card moves to a new board ( #2486 )
...
When a card moves between boards, comment events were staying on the
old board. Now they move with the card.
2026-02-04 15:04:28 -05:00
Denis Svara
d032f88c59
Merge pull request #2476 from basecamp/mobile/associated-domains
...
Add `apple-app-site-association` file to support iOS Universal Links
2026-02-04 20:32:35 +01:00
Adrien Maston
171b8caa45
Switch non-animated scrolling in the mobile apps
2026-02-04 18:35:12 +01:00
Mike Dalessio
1e4a411cf2
Merge pull request #2482 from basecamp/omit-inactive-users-from-mentions
...
Omit inactive users from board mention picker
2026-02-03 18:45:19 -05:00
Mike Dalessio
e311d8f521
Omit inactive users from board mention picker
...
The board-scoped mention prompt was returning all users with board access,
including those marked as inactive. This adds the `.active` scope to match
the behavior of the account-wide mention prompt.
Fixes https://app.fizzy.do/5986089/cards/3861
2026-02-03 18:42:15 -05:00
Mike Dalessio
8074bfd43e
Merge pull request #2481 from basecamp/import-associations-check
...
Validate ActionText associations during import check phase
2026-02-03 17:47:10 -05:00
Mike Dalessio
7f473eda66
Validate ActionText associations during import check phase
...
ActionTextRichTextRecordSet now calls check_associations_dont_exist to
ensure imported ActionText records only reference records within the
same import, matching the behavior of the parent RecordSet class.
2026-02-03 13:46:28 -05:00
Stanko K.R.
02e6c15e32
Move import button to sign up screen
2026-02-03 18:02:58 +01:00