Commit Graph

706 Commits

Author SHA1 Message Date
Jorge Manrubia 5dc33c304c Restore reminder period I replaced by mistake 2025-06-04 17:17:47 +02:00
Jorge Manrubia a6ffbf7ec6 Rename method 2025-06-04 14:56:19 +02:00
Jorge Manrubia db86d17880 Refactor to introduce an entropy model
Instead of keeping two tracks of similar logic (auto-reconsider / auto-close).
2025-06-04 14:40:02 +02:00
Jorge Manrubia 653186a8b9 Remove unneeded parenthesis 2025-06-04 12:59:02 +02:00
Jorge Manrubia b35aefd07b Format 2025-06-04 12:58:33 +02:00
Jorge Manrubia b8b8a2fa03 Simpler 2025-06-04 12:58:17 +02:00
Jorge Manrubia dd78ec2db2 Shortcut to grab the default entropy configuration 2025-06-04 12:56:11 +02:00
Jorge Manrubia f721bc2c0a Format 2025-06-04 12:52:11 +02:00
Jorge Manrubia 75ce06733a Review entropy tests to include the new behavior and settings 2025-06-04 12:45:04 +02:00
Jorge Manrubia 23f3c42114 Use the new setting to calculate the auto_reconsider_period 2025-06-04 12:34:17 +02:00
Jorge Manrubia f4bbab1485 More concise 2025-06-04 12:13:36 +02:00
Jorge Manrubia f3e6f1e5e0 This is clearer imo 2025-06-04 12:12:10 +02:00
Jorge Manrubia ae1ad9c509 Extract scope to clarify semantics 2025-06-04 12:04:11 +02:00
Jorge Manrubia a39ad0cae3 Not needed 2025-06-04 12:02:19 +02:00
Jorge Manrubia 741a6faaf5 Consider the new recording period for stagnated cards 2025-06-04 12:01:09 +02:00
Jorge Manrubia 6501604a5f All the collections are "auto closing now" 2025-06-04 11:44:18 +02:00
Jorge Manrubia 3c61fc3cdf Add screen to edit account settings to tweak default entropy configuration 2025-06-04 11:25:10 +02:00
Jorge Manrubia 91787a3523 Revamp entropy configuraiton
- Move both settings to its dedicated model entropy configuration
- A collection can have an entropy configuration, or will default to the account if not
2025-06-04 10:41:08 +02:00
Jason Zimdars acfc7da551 Merge pull request #548 from basecamp/change-collection
Change collection
2025-06-03 08:56:00 -05:00
Mike Dalessio 3a5ce1ca4c No need to delegate auto_closing? anymore
Related to #568
2025-06-02 12:41:55 -04:00
Jorge Manrubia c0cd5e1967 Merge pull request #566 from basecamp/fix-caching
Invalidate card caches when editing workflows
2025-06-02 18:09:52 +02:00
Jorge Manrubia 08c5abfbdb Extract common method to query when entropy is cleaned
We were always quering auto_close_at
https://37s.fizzy.37signals.com/collections/2/cards/743
2025-06-02 18:04:14 +02:00
Jason Zimdars 902a99ca56 Merge branch 'main' into change-collection
* main: (25 commits)
  Add controller to retarget links
  Use more complete regexp
  dep: bundle update
  refactor: Extract a Card::Entropy concern
  Autolink emails and URLs at rendering time
  Remove the "mirror" storage service
  Update production storage to write to the Pure blob store
  Clean up the purestorage config, and add explanatory comments.
  Drop the action_text_markdowns table
  Mount mission control under `/admin/jobs`
  dep: add mission_control-jobs
  Flip the storage mirror to write to Pure as the primary
  Production mirrors Active Storage to `:purestorage`
  Make sure Sentry is configured for the beta env.
  Update lexical
  update lexical
  update lexical
  Create a distinct "beta" environment
  Revert "Patch for cards missing description"
  Add a kamal "ssh" alias
  ...
2025-06-02 09:34:01 -05:00
Jorge Manrubia 51dcf8b25f Invalidate card caches when editing workflows
https://37s.fizzy.37signals.com/collections/2/cards/607
2025-06-02 13:08:54 +02:00
Mike Dalessio 28ed744d0c refactor: Extract a Card::Entropy concern
to encompass behavior related to auto-closing and auto-reconsidering.

Note that putting this code in a single place reveals an asymmetry
between the actions:

- Auto-closing period is an optional attribute of a collection
- Auto-reconsidering period is hard-coded to 30 days for all collections
2025-06-01 16:50:12 -04:00
Jason Zimdars 5051e5d53d Linter: TrailingWhitespace 2025-05-29 23:27:28 -05:00
Jason Zimdars ac53f9ee21 Need to do this in one transaction 2025-05-29 23:25:29 -05:00
Jason Zimdars c1cc1f8fca Track events for changing collections 2025-05-29 22:54:28 -05:00
Jason Zimdars fdc90eb538 Grant access to assignees when changing collections 2025-05-29 22:09:23 -05:00
Jorge Manrubia fa04016cbe Revert "Revert "Replace House with Lexical"" 2025-05-29 14:25:16 +02:00
Jorge Manrubia 08d8b2e5ff Revert "Replace House with Lexical" 2025-05-29 14:22:27 +02:00
Jorge Manrubia 62bef018ea Merge branch 'main' into lexical
* main:
  Don't choke when rendering commands where the card was deleted
  Update tests
  Rework system events
  test: add missing assertions
  dep: bump active_record-tenanted to fix URI support
  Remove hyphen from "Un-do"
  Prevent default when handling keyboard shortcuts
  dep: update AR::Tenanted to support database URIs
  Detect platform and label the correct hotkey shortcut
  Things got too tight
  Don't require TLS for Beamer at the moment
  dep: update dependencies

# Conflicts:
#	Gemfile
#	Gemfile.lock
#	app/assets/stylesheets/comments.css
2025-05-29 12:44:14 +02:00
Jorge Manrubia 3eeba253ad Don't choke when rendering commands where the card was deleted 2025-05-29 00:39:17 +02:00
Jason Zimdars c6c9e0d5fc Rework system events
- Restyle system events so they don't look like comments and aren't attributed to the system user
- Ensure the event creator is included in the description so it's clear who did it.
- Walk back system comment replacement. Yes, it potentially avoids embarassing people when they change their mind, it's also losing data. If two intentional assigments happen in proximity, we've been only showing the latest one,.
2025-05-28 15:26:41 -05:00
Jason Zimdars d17134cb5c Detect platform and label the correct hotkey shortcut
Yes, Platform Agent is overkill for just this but there isn't a one-size JS solution for updating both input placeholders and other HTML text and we're likely to need it later for other things like displaying platform-specific PWA prompts.
2025-05-27 12:14:24 -05:00
Jorge Manrubia 10b2aad647 Replace House with lexical-powered actiontext 2025-05-23 11:41:08 +02:00
Jason Zimdars 99797ca856 Just basic 2025-05-22 21:55:18 -05:00
Jason Zimdars 701912e977 Accounts get a default workflow and stages 2025-05-22 17:05:38 -05:00
Jason Zimdars 8c2ba6cdc7 Assign a random color to new stages 2025-05-22 16:50:30 -05:00
Jason Zimdars 09c1543227 Assign colors to default stages when you create a workflow 2025-05-22 16:47:43 -05:00
Jason Zimdars c74d5a881f Use the same defaults as Basecamp's card table 2025-05-22 16:43:10 -05:00
Jason Zimdars d79f2f903f Allow filtering activity by user via user profile 2025-05-21 21:57:58 -05:00
Mike Dalessio ecbe040e3e Implement Notification#card
Models now know how to find their cards, rather than trying to
implement this logic in a view helper.
2025-05-21 16:30:18 -04:00
Jason Zimdars 84b6a1291f Fizzy do with AI polish 2025-05-19 17:08:00 -05:00
Jorge Manrubia f5ecb41446 Merge pull request #483 from basecamp/fizzy-llm-experiment
Fizz Do with AI
2025-05-16 17:39:01 +02:00
Jorge Manrubia 541f24ab0b Limit the tokens we send for embeds
See insight by Donal here https://github.com/basecamp/fizzy/pull/483#discussion_r2084766023
2025-05-16 16:39:18 +02:00
Mike Dalessio 388fe2de73 Introduce a stimulus controller for bubbles
The "closing soon" bubbles were introduced in #406, and the "falling
back" bubbles in #500. However, these bubbles are part of the cached
card and so as time passes, the relative time doesn't change unless
the card is touched.

This PR introduces a stimulus controller for bubbles, which takes care
of:

- making the bubble visible during the reminder period
- calculating the relative number of days until entropy kicks in
- rendering appropriate text around the day count

ref: https://37s.fizzy.37signals.com/collections/693169850/cards/999009091
2025-05-16 10:27:00 -04:00
Mike Dalessio bdbc0aa909 Merge pull request #500 from basecamp/considering-bubble
Considering bubble
2025-05-16 10:26:50 -04:00
Jorge Manrubia 5ac5b5ebde Add test for the composite command 2025-05-16 15:38:22 +02:00
Jorge Manrubia 2c0f6913ce Test fixes 2025-05-16 15:02:59 +02:00