Commit Graph

9270 Commits

Author SHA1 Message Date
Zoltan Hosszu 135fe128f7 Table style tweaks 2026-02-12 11:46:04 +01:00
Zoltan Hosszu ff80dfeb06 Fix dark mode colors 2026-02-12 11:37:08 +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