Commit Graph

9663 Commits

Author SHA1 Message Date
Joseph Hale c61f49cce9 Extract detached-blob guard into its own file
Separate the attachment existence check from the broadcast suppression
override so each file has a single responsibility. The guard now lives
in ActiveStorageAnalyzeJobSkipDetached with its own documentation
explaining the upload-then-delete race condition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 14:38:19 -07:00
Joseph Hale 143508fc22 Skip AnalyzeJob when blob has no attachments
Upload-then-delete races cause AnalyzeJob to hit S3 after PurgeJob has
already removed the object, producing Aws::S3::Errors::NoSuchKey noise
in solid_queue_failed_executions. Since PurgeOnLastAttachment destroys
the attachment row before enqueueing PurgeJob, checking
blob.attachments.exists? catches this — a fast DB query that avoids the
S3 round-trip entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 14:13:00 -07:00
Jay Ohms 1e18ddcad5 Merge branch 'mobile/search-scrolling' into mobile/search-scrolling+clear-suggestion
* mobile/search-scrolling:
  Extract event particulars helper method
  Reapply "Push event payload body updates"
  Bump z-index
  Bump z-index
  dep: Fix up Gemfile.saas.lock
2026-03-02 11:53:55 -05:00
Jay Ohms 71e295fb22 Merge branch 'main' into mobile/search-scrolling
* main:
  Extract event particulars helper method
  Reapply "Push event payload body updates"
  Bump z-index
  Bump z-index
  dep: Fix up Gemfile.saas.lock
2026-03-02 11:53:28 -05:00
Adrien Maston bedd2ff8ac Add check icon 2026-03-02 16:56:24 +01:00
Adrien Maston f4c35a1ca4 Merge pull request #2642 from basecamp/mobile/fix-missing-draft-button
Mobile / Fix missing draft button
2026-03-02 16:28:18 +01:00
Adrien Maston 1cb556ab2e Merge pull request #2639 from basecamp/mobile/fix-new-column-dialog
Mobile / Fix new column dialog
2026-03-02 16:27:40 +01:00
Jirka Hutárek f22afa7b56 Extract event particulars helper method 2026-03-02 16:15:28 +01:00
Jirka Hutárek 7e05794114 Reapply "Push event payload body updates"
This reverts commit 6e9de6a017.
2026-03-02 16:15:28 +01:00
Adrien Maston 911d114eb5 Add tap target button utility 2026-03-02 15:46:34 +01:00
Adrien Maston 85ba8a63d5 Bump z-index 2026-03-02 15:07:26 +01:00
Adrien Maston ef980a0d48 Allow notice to take more inline space 2026-03-02 14:50:58 +01:00
Adrien Maston 6a4db9af4d Show the custom clear button
... instead of the browser's
2026-03-02 14:22:28 +01:00
Adrien Maston 340d9aa763 Delegate clearing the input to new controller 2026-03-02 14:21:32 +01:00
Adrien Maston cc6809cd1f Bump z-index 2026-03-02 11:03:32 +01:00
Adrien Maston b8f7d5be2f Merge remote-tracking branch 'origin/style-devices-page' into style-devices-page
* origin/style-devices-page:
  Update saas/app/views/devices/index.html.erb
2026-03-02 10:21:14 +01:00
Adrien Maston 0caf9b057b Update empty state test 2026-03-02 10:20:58 +01:00
Adrien Maston fd13ffb5cc Update saas/app/views/devices/index.html.erb
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-02 10:17:36 +01:00
Mike Dalessio 6a9121078e dep: Fix up Gemfile.saas.lock 2026-02-28 10:06:55 -05:00
Dain Miller bdf4459716 Fix small documentation typos 2026-02-28 05:41:55 -05:00
Jay Ohms 4e52b9b1d9 Display the save form button on Board Settings page as a bridge button 2026-02-28 05:18:48 -05:00
Jay Ohms 8a1a18562c Display the native search input clear button in the native apps 2026-02-28 05:10:30 -05:00
Jay Ohms cac08c8f06 Disable search results nested scrolling behavior for mobile apps 2026-02-28 04:39:36 -05:00
dependabot[bot] 9128fb276b Bump the development-dependencies group with 2 updates (#2629)
* Bump the development-dependencies group with 2 updates

Bumps the development-dependencies group with 2 updates: [web-console](https://github.com/rails/web-console) and [selenium-webdriver](https://github.com/SeleniumHQ/selenium).


Updates `web-console` from `bdbb391` to `90e3474`
- [Release notes](https://github.com/rails/web-console/releases)
- [Commits](https://github.com/rails/web-console/compare/bdbb39114348b037a515b2ce75a47457b0e647d1...90e3474306f2367cfeaf2875e91e2bc2d71b5f0f)

Updates `selenium-webdriver` from 4.40.0 to 4.41.0
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.40.0...selenium-4.41.0)

---
updated-dependencies:
- dependency-name: web-console
  dependency-version: 90e3474306f2367cfeaf2875e91e2bc2d71b5f0f
  dependency-type: direct:development
  dependency-group: development-dependencies
- dependency-name: selenium-webdriver
  dependency-version: 4.41.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync Gemfile.saas.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-27 23:46:48 -08:00
Jay Ohms 976f596990 Merge pull request #2635 from basecamp/mobile/remote-config
Update the android remote path config with the properties
2026-02-27 16:44:39 -05:00
Jay Ohms 29e80876e2 Update the android remote path config with the properties 2026-02-27 16:39:47 -05:00
github-actions[bot] 763af3f4a4 Sync Gemfile.saas.lock 2026-02-27 20:26:07 +00:00
dependabot[bot] a9c45c5979 Bump stackprof from 0.2.27 to 0.2.28
Bumps [stackprof](https://github.com/tmm1/stackprof) from 0.2.27 to 0.2.28.
- [Changelog](https://github.com/tmm1/stackprof/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tmm1/stackprof/compare/v0.2.27...v0.2.28)

---
updated-dependencies:
- dependency-name: stackprof
  dependency-version: 0.2.28
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-27 20:25:56 +00:00
github-actions[bot] e1ffecb4f6 Sync Gemfile.saas.lock 2026-02-27 20:24:55 +00:00
dependabot[bot] a21e93611e Bump thruster from 0.1.17 to 0.1.18
Bumps [thruster](https://github.com/basecamp/thruster) from 0.1.17 to 0.1.18.
- [Changelog](https://github.com/basecamp/thruster/blob/main/CHANGELOG.md)
- [Commits](https://github.com/basecamp/thruster/compare/v0.1.17...v0.1.18)

---
updated-dependencies:
- dependency-name: thruster
  dependency-version: 0.1.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-27 20:24:45 +00:00
Jay Ohms 4819b89a78 Merge pull request #2621 from basecamp/fix-long-card-title-truncation
Fix long card titles truncating in Safari
2026-02-27 14:14:53 -05:00
Stanko Krtalić 5426c619fb Merge pull request #2627 from basecamp/revert-2626-push-event-payload-body-update
Revert "Push event payload body updates"
2026-02-27 20:02:26 +01:00
Stanko Krtalić 6e9de6a017 Revert "Push event payload body updates" 2026-02-27 19:59:18 +01:00
Stanko Krtalić b2658eaf98 Merge pull request #2626 from basecamp/push-event-payload-body-update
Push event payload body updates
2026-02-27 19:56:50 +01:00
Jirka Hutárek ad45eabfdc Add fallback handling for blank board and title names in event payloads 2026-02-27 19:00:14 +01:00
Jirka Hutárek 97d188fae4 Rename new_board_name to new_location_name for clarity in event payload handling 2026-02-27 18:54:15 +01:00
Jirka Hutárek fd0df9d8b4 Add tests for fallback payload when collection name is missing or blank, reformat 2026-02-27 18:52:21 +01:00
Jirka Hutárek 7ae3bbc6a5 Add test for fallback payload when column name is blank in triage event 2026-02-27 18:49:08 +01:00
Jirka Hutárek 44235da9c1 Add fallback message for card triage when column name is missing 2026-02-27 18:47:41 +01:00
Jirka Hutárek 7702e49afa Handle collection change the same as board change 2026-02-27 18:42:49 +01:00
Jirka Hutárek 566dd8ded2 Update default message 2026-02-27 18:30:12 +01:00
Jirka Hutárek 856d17c510 Handle missing fields 2026-02-27 18:26:50 +01:00
Jirka Hutárek 9678bdbd24 Add more specific messages to event push payload body 2026-02-27 18:17:56 +01:00
Jirka Hutárek b93752dbb5 Mention column name and creator in push event body when card is moved between columns 2026-02-27 18:10:37 +01:00
Jay Ohms e685d68dec Merge pull request #2620 from basecamp/identity-accounts
Only return identity accounts that are active with an active user
2026-02-27 09:48:06 -05:00
Jay Ohms 1ebd706d9a Merge pull request #2625 from basecamp/mobile/hide-subscriptions
Mobile: Hide the subscription panel in the mobile apps
2026-02-27 09:47:28 -05:00
Jay Ohms d758d9913e Hide the subscription panel in the mobile apps 2026-02-27 09:40:05 -05:00
Jay Ohms 74eac289ee Improve the structure so users_with_active_accounts is available on identity 2026-02-27 09:17:12 -05:00
Zoltán Hosszú 11e81a255f Merge pull request #2624 from basecamp/remove-lexxy-content-class
Remove lexxy-content class on comment editor
2026-02-27 12:13:15 +01:00
Zoltan Hosszu 41cc5467c6 Remove lexxy-content class on comment editor 2026-02-27 12:09:46 +01:00