1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-01 19:45:19 +02:00
Maybe/app/models
Zach Gollwitzer 297a695d0f
Transaction rules engine V1 (#1900)
* Domain model sketch

* Scaffold out rules domain

* Migrations

* Remove existing data enrichment for clean slate

* Sketch out business logic and basic tests

* Simplify rule scope building and action executions

* Get generator working again

* Basic implementation + tests

* Remove manual merchant management (rules will replace)

* Revert "Remove manual merchant management (rules will replace)"

This reverts commit 83dcbd9ff0.

* Family and Provider merchants model

* Fix brakeman warnings

* Fix notification loader

* Update notification position

* Add Rule action and condition registries

* Rule form with compound conditions and tests

* Split out notification types, add CTA type

* Rules form builder and Stimulus controller

* Clean up rule registry domain

* Clean up rules stimulus controller

* CTA message for rule when user changes transaction category

* Fix tests

* Lint updates

* Centralize notifications in Notifiable concern

* Implement category rule prompts with auto backoff and option to disable

* Fix layout bug caused by merge conflict

* Initialize rule with correct action for category CTA

* Add rule deletions, get rules working

* Complete dynamic rule form, split Stimulus controllers by resource

* Fix failing tests

* Change test password to avoid chromium conflicts

* Update integration tests

* Centralize all test password references

* Add re-apply rule action

* Rule confirm modal

* Run migrations

* Trigger rule notification after inline category updates

* Clean up rule styles

* Basic attribute locking for rules

* Apply attribute locks on user edits

* Log data enrichments, only apply rules to unlocked attributes

* Fix merge errors

* Additional merge conflict fixes

* Form UI improvements, ignore attribute locks on manual rule application

* Batch AI auto-categorization of transactions

* Auto merchant detection, ai enrichment in batches

* Fix Plaid merchant assignments

* Plaid category matching

* Cleanup 1

* Test cleanup

* Remove stale route

* Fix desktop chat UI issues

* Fix mobile nav styling issues
2025-04-18 11:39:58 -04:00
..
account Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
assistant improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
balance Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
chat Personal finance AI (v1) (#2022) 2025-03-28 13:08:22 -04:00
concerns Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
demo Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
exchange_rate Personal finance AI (v1) (#2022) 2025-03-28 13:08:22 -04:00
family Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
holding Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
import Feature: Add "amount type" configuration column for CSV imports (#1947) 2025-04-18 10:48:10 -04:00
income_statement Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
plaid_item Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
provider Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
rule Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
security provider: Ensure data provider exist before fetching for price. (#2045) 2025-04-04 12:14:28 -04:00
tool_call improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
transaction Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
account.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
account_import.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
address.rb Fix: No comma when locality is empty (small fix) (#2111) 2025-04-16 20:26:45 -05:00
application_record.rb Initial commit 2024-02-02 09:05:04 -06:00
assistant.rb improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
assistant_message.rb improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
balance.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
balance_sheet.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
budget.rb Fix time period key conflicts (#1944) 2025-03-03 12:47:20 -05:00
budget_category.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
category.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
chat.rb improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
credit_card.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
crypto.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
current.rb Impersonation (#1325) 2024-10-18 11:26:58 -05:00
data_enrichment.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
depository.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
developer_message.rb improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
entry.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
entry_search.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
entryable.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
exchange_rate.rb Data provider simplification, tests, and documentation (#1997) 2025-03-17 11:54:53 -04:00
family.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
family_merchant.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
holding.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
impersonation_session.rb Impersonation (#1325) 2024-10-18 11:26:58 -05:00
impersonation_session_log.rb Impersonation (#1325) 2024-10-18 11:26:58 -05:00
import.rb Feature: Add "amount type" configuration column for CSV imports (#1947) 2025-04-18 10:48:10 -04:00
income_statement.rb Fix incorrect totals calculation when family has loan payments (#1984) 2025-03-11 12:37:57 -04:00
investment.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
invitation.rb Fix duplicate invites (#1437) 2024-11-08 09:58:35 -06:00
invite_code.rb Rubocop updates (#1118) 2024-08-23 10:06:24 -04:00
loan.rb loan: Set the first valuation as the original principal. (#2088) 2025-04-14 09:09:25 -04:00
measurement.rb Vehicle view (#1117) 2024-08-23 09:33:42 -04:00
merchant.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
message.rb improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
mint_import.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
other_asset.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
other_liability.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
period.rb Personal finance AI (v1) (#2022) 2025-03-28 13:08:22 -04:00
plaid_account.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
plaid_investment_sync.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
plaid_item.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
property.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
provider.rb Use faraday retry, move retry logic to concrete provider level (#2042) 2025-04-01 08:41:49 -04:00
provider_merchant.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
rejected_transfer.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
rule.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
security.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
series.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
session.rb Impersonation (#1325) 2024-10-18 11:26:58 -05:00
setting.rb Personal finance AI (v1) (#2022) 2025-03-28 13:08:22 -04:00
stock_exchange.rb Stock imports (#1363) 2024-10-24 16:36:50 -05:00
sync.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
tag.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
tagging.rb Create tagging system (#792) 2024-05-23 08:09:33 -04:00
tool_call.rb Personal finance AI (v1) (#2022) 2025-03-28 13:08:22 -04:00
trade.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
trade_builder.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
trade_import.rb Feature: Add "amount type" configuration column for CSV imports (#1947) 2025-04-18 10:48:10 -04:00
transaction.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
transaction_import.rb Feature: Add "amount type" configuration column for CSV imports (#1947) 2025-04-18 10:48:10 -04:00
transfer.rb Transaction rules engine V1 (#1900) 2025-04-18 11:39:58 -04:00
trend.rb New Design System + Codebase Refresh (#1823) 2025-02-21 11:57:59 -05:00
user.rb Personal finance AI (v1) (#2022) 2025-03-28 13:08:22 -04:00
user_message.rb improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities (#2039) 2025-04-01 07:21:54 -04:00
valuation.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00
vehicle.rb Account:: namespace simplifications and cleanup (#2110) 2025-04-14 11:40:34 -04:00