* main: (100 commits)
Fix notification broadcast test for turbo-rails 2.0.21
Update `turbo-rails` to get latest Turbo version
Remove reference to removed controller
Fix bad formatting on bridge page title attr
Use private functions for bridge components
Setup focus handling on touch target's connect callback
Setup proper focus handling for mobile on the card perma's board picker
Move dialog focus handling into the dialog controller
Create popup initial alignment classes
Fix class typo
Hide the board selector button if card is closed
Align board and tag picker dialogs without using math
Add dialog manager to card perma
Fix "M" hotkey using stale user from fragment cache
Solve problem when Action Text raises on missing attachables
Solve problem when Action Text raises on missing attachables
Completing a step removes stalled status from UI
Bump Bootsnap to v1.21.1
Add Enable all/Disable all buttons to webhook event selection
Use correct class selectors to target cards with background images
...
turbo-rails 2.0.21 changed `capture_turbo_stream_broadcasts` to only
return broadcasts produced within the block, matching its documented
behavior (see hotwired/turbo-rails#736).
Since `broadcast_unread` uses `broadcast_prepend_later_to` (async via
job), we need to wrap the call in `perform_enqueued_jobs` so the
broadcast actually happens within the assertion block.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* main:
Create popup initial alignment classes
Fix class typo
Hide the board selector button if card is closed
Align board and tag picker dialogs without using math
Add dialog manager to card perma
Fix "M" hotkey using stale user from fragment cache
Add Enable all/Disable all buttons to webhook event selection
Remove whitespace
Remove hover styles from disabled menu items
# Conflicts:
# app/views/cards/_container.html.erb
Add a SelfAssignmentsController to resolve the current user at request
time, avoiding the use of an incorrect user id baked into a cached URL.
ref: #2211 originally added the "M" hotkey
ref: https://app.fizzy.do/5986089/cards/3722
* main:
Solve problem when Action Text raises on missing attachables
Solve problem when Action Text raises on missing attachables
Completing a step removes stalled status from UI
Bump Bootsnap to v1.21.1
Use correct class selectors to target cards with background images
Update lexxy to latest
Hide table button for now
Table CSS tweaks
Update to Lexxy 0.7.0beta
Revert "Wrap tables in div"
Wrap tables in div
CSS updates for `<table>` support
Update to latest Lexxy
Show only active subscriptions
Add paid accounts stats to admin dashboard
Keep URLs in webhook events absolute
Delete orphaned watches and pins when a card is moved to a private board
I created this https://github.com/basecamp/lexxy/pull/596 to address this for good but
it is still happening in production.
Locally I don't manage to reproduce the issue.
This will be solved for good once we go back to vanilla action text with the new
Rails adapter, so I will go with this is a temporary patch for now.
Add `updatedAt` to stalled bubble options so JS can check if the card
was recently updated, matching the `Card::Stallable#stalled?`
logic. Refresh the bubble via Turbo Stream when a step is updated.
This should have been part of #1625
Fixes https://app.fizzy.do/5986089/cards/3668
Shows total, 7-day, and 24-hour counts of paid accounts based on
subscription created_at. Excludes comped accounts and avoids
double-counting accounts with multiple subscriptions.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>