Commit Graph

678 Commits

Author SHA1 Message Date
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
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
Jorge Manrubia 7c2a1022a2 Fix test 2025-05-16 14:52:16 +02:00
Jorge Manrubia a5de913608 Improve prompt and tests 2025-05-16 14:49:51 +02:00
Jorge Manrubia 3ccfc165b2 Remove unused command 2025-05-16 14:20:20 +02:00
Jorge Manrubia 5fe5419905 Move similarity search to a param
To keep current tests working. This is all quite experimental. Used as a sandbox for now.
2025-05-16 14:16:14 +02:00
Jorge Manrubia 0a607fab4c Refresh search embeddings in jobs 2025-05-16 14:00:54 +02:00
Jorge Manrubia 29fb57ac36 Event comments should reference the actual assignees 2025-05-16 13:57:26 +02:00
Jorge Manrubia 54ce3f900c Rename method 2025-05-16 13:29:18 +02:00
Jorge Manrubia 53977fb905 Use symbolized keys 2025-05-16 13:29:18 +02:00
Jorge Manrubia b8f94c4ecb Add VCR and some initial tests 2025-05-16 13:29:18 +02:00
Jorge Manrubia cd0a07740e Make sure that uses insight to reply to questions 2025-05-16 13:29:18 +02:00
Jorge Manrubia c12bf1301b More promot improvements 2025-05-16 13:29:18 +02:00
Jorge Manrubia 95d9cec353 Understand "my cards" better 2025-05-16 13:29:18 +02:00
Jorge Manrubia b867a189ae Place the variable context at the end so that it's more cache friendly 2025-05-16 13:29:18 +02:00
Jorge Manrubia 096933d326 Relax conditions to match collections 2025-05-16 13:29:18 +02:00
Jorge Manrubia 6933449d2d Tweak prefix 2025-05-16 13:29:18 +02:00
Jorge Manrubia 50d323d402 Rename method 2025-05-16 13:29:18 +02:00
Jorge Manrubia b2c273bd5f Extract method 2025-05-16 13:29:18 +02:00
Jorge Manrubia 8d017b0a19 Add cache when translating to commands 2025-05-16 13:29:18 +02:00
Jorge Manrubia 188ae20fd8 Reorder methods 2025-05-16 13:29:18 +02:00
Jorge Manrubia 8cb16abb16 extract method 2025-05-16 13:29:18 +02:00
Jorge Manrubia 36478934fd Inline method 2025-05-16 13:29:18 +02:00
Jorge Manrubia fbe14a6533 Resolve "my" "I" in the context of the user using the system 2025-05-16 13:29:18 +02:00
Jorge Manrubia 28cd03668a Show multi-line confirmations 2025-05-16 13:29:18 +02:00
Jorge Manrubia 88fd3a7aaa Don't generate invalid JSON 2025-05-16 13:29:18 +02:00
Jorge Manrubia 2510c1e0ac Major rework of the command/ai abstractions
- Big simplification of the overall workflow.
- Composite commands store their commands properly, these are undoable now.
- Child commands are excluded from history
2025-05-16 13:29:18 +02:00
Jorge Manrubia 1e5112ffcc Refine prompt 2025-05-16 13:29:18 +02:00
Jorge Manrubia b57cf84335 Improve prompt 2025-05-16 13:29:18 +02:00
Jorge Manrubia 8528223c15 Improve prompt 2025-05-16 13:29:18 +02:00