David Heinemeier Hansson
f0583888eb
More missing dependencies for libvips
2026-02-13 17:47:30 +01:00
David Heinemeier Hansson
d7a10bea1c
Include missing vips dependencies
2026-02-13 17:40:08 +01:00
Mike Dalessio
dc492ef17e
Merge pull request #2540 from basecamp/fix-quotes
...
Fix double-escaped HTML entities in basecamp and campfire webhook payloads
2026-02-13 09:26:00 -05:00
Samuel Péchèr
ab0320b9f5
Merge pull request #2542 from basecamp/remove-performance-notice
...
Revert "Add temporary performance degradation message"
2026-02-13 10:10:00 +00:00
Samuel Péchèr
0ab88af118
Revert "Add temporary performance degradation message"
...
This reverts commit 2a1f9cd15b .
2026-02-13 10:05:22 +00:00
Stanko Krtalić
7ce88b5d7e
Merge pull request #2541 from basecamp/notification-fixes
...
Fix race conditions with notifications
2026-02-13 09:45:23 +01:00
Mike Dalessio
0c10622672
Fix double-escaped HTML entities in webhook payloads
...
`Event::Description#to_plain_text` now returns an html-safe string to
prevent double-escaping when the ERB template renders the basecamp
and campfire payloads.
ref: https://3.basecamp.com/2914079/buckets/27/card_tables/cards/9574495379
2026-02-13 03:25:59 -05:00
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
Mike Dalessio
4ead778e12
Backfill tests for Event::Description strings' html-safety
2026-02-12 15:52:56 -05: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