Commit Graph

9293 Commits

Author SHA1 Message Date
Stanko K.R. 05042ed54a Fix crash when a notification is deleted while a bundle is being sent 2026-02-13 09:22:51 +01:00
Stanko K.R. ae3d277868 Fix race condition on notification creation 2026-02-13 09:14:24 +01:00
Jeremy Daer 231db6e742 Fix double _seconds suffix in GVL request wait metric name (#2539)
Rename histogram from :request_wait_seconds to :request_wait so Yabeda's
unit: :seconds produces gvl_request_wait_seconds instead of
gvl_request_wait_seconds_seconds.
2026-02-12 16:41:20 -08:00
Jeremy Daer a5a5a62169 Add GVL contention metrics via gvltools (#2538)
* Add GVL contention metrics via gvltools and Yabeda

Expose per-request and process-wide GVL wait time as Prometheus metrics
to diagnose suspected GVL contention from Solid Cable and Action Cable
threads in Puma workers.

Metrics: gvl_request_wait_seconds (histogram), gvl_waiting_threads
(gauge), gvl_global_timer_total_seconds (gauge).

* Add unit: :seconds to GVL histogram for consistency
2026-02-12 16:28:29 -08:00
Andy Smith 8aa934a594 Merge pull request #2534 from basecamp/copy-fix
Update copy
2026-02-12 12:16:00 -06:00
Andy Smith f77850f5be Update copy 2026-02-12 12:13:05 -06:00
Andy Smith c6b24e9713 Merge pull request #2533 from basecamp/slow-message
Add temporary performance degradation message
2026-02-12 12:04:33 -06:00
Andy Smith 2a1f9cd15b Add temporary performance degradation message 2026-02-12 12:01:18 -06:00
Mike Dalessio 851f13a934 Render inline code in card titles (#2518)
* Remove unused marked JS dependency

* Remove unused redcarpet dependency

* Render inline code in card titles

Add card_html_title helper that HTML-escapes input then converts
backtick-wrapped text to <code> elements. Apply to card titles in
board preview, card detail, public views, and notification emails.
Style inline code elements in titles to match description styling.

Co-authored-by: Andy Smith <andy@37signals.com>

---------

Co-authored-by: Andy Smith <andy@37signals.com>
2026-02-12 12:07:40 -05:00
Adrien Maston 486da76a26 Merge pull request #2497 from basecamp/mobile/fix-stage-button-gap 2026-02-12 18:03:55 +01:00
Adrien Maston 8f924bd5d4 Merge pull request #2494 from basecamp/mobile/fix-truncated-comment-dates 2026-02-12 18:03:39 +01:00
Adrien Maston 07dfeedb7d Merge pull request #2521 from basecamp/mobile/tweak-card-draft-ui 2026-02-12 18:03:14 +01:00
Donal McBreen a690fa59e5 Merge pull request #2532 from basecamp/add-stackprof
Add stackprof for profiling
2026-02-12 16:06:45 +00:00
Donal McBreen 1506624cd3 Add stackprof for profiling
So you can do something like this:

```ruby
  require "stackprof"

  report = StackProf.run(mode: :wall, interval: 100) do
    Account.find_by(external_account_id: 123)
  end

  StackProf::Report.new(report).print_text
```
2026-02-12 15:42:50 +00:00
Zoltán Hosszú ee4511180a Merge pull request #2529 from basecamp/lexxy-dark-mode-fix
- Fix dark mode colors
- Table style tweaks
2026-02-12 11:50:17 +01:00
Zoltan Hosszu 135fe128f7 Table style tweaks 2026-02-12 11:46:04 +01:00
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
Zoltan Hosszu ff80dfeb06 Fix dark mode colors 2026-02-12 11:37:08 +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
Adrien Maston c992ac1be5 Extend background color 2026-02-10 17:22:31 +01:00
Adrien Maston 5785e2a5c1 Adjust space between title, description and steps 2026-02-10 17:22:20 +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
Adrien Maston 2bfd54437c Use a px padding 2026-02-09 09:31:50 +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
Adrien Maston aa2f0e7fdc Fix unwanted divider 2026-02-06 17:45:09 +01:00
Adrien Maston 8f95a6f228 Add a little space around stage buttons 2026-02-06 17:32:55 +01:00