[PR #4081] [MERGED] enhance: add ability to control category learning per payee and globally #46998

Closed
opened 2026-04-26 09:01:10 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/4081
Author: @NullScope
Created: 1/3/2025
Status: Merged
Merged: 1/19/2025
Merged by: @matt-fidd

Base: masterHead: control-auto-categories


📝 Commits (10+)

  • bd7054b Added ability to control auto categories per payee and globally
  • c65ac59 Added unit test
  • dbf8f65 Changed order of Learn Categories in settings page
  • 593bb9f Removed console log and fixed prefs type
  • b1fbfa6 Added release note
  • f98c6e4 Fixed default value for global setting
  • 13aca69 Added tooltip and context menu option
  • 8d343ba Removed test assertion
  • 25f92ab Refactored default value for global setting
  • 55f48c0 Added missing boolean to saveDiff and saveDiffAndApply

📊 Changes

13 files changed (+268 additions, -46 deletions)

View changed files

📝 packages/desktop-client/src/components/Modals.tsx (+4 -0)
packages/desktop-client/src/components/payees/CategoryLearning.tsx (+64 -0)
📝 packages/desktop-client/src/components/payees/ManagePayees.tsx (+55 -2)
📝 packages/desktop-client/src/components/payees/PayeeMenu.tsx (+46 -25)
📝 packages/desktop-client/src/components/payees/PayeeTableRow.tsx (+40 -8)
📝 packages/desktop-client/src/components/transactions/TransactionList.jsx (+18 -9)
packages/loot-core/migrations/1737158400000_add_learn_categories_to_payees.sql (+5 -0)
📝 packages/loot-core/src/client/state-types/modals.d.ts (+2 -0)
📝 packages/loot-core/src/server/accounts/transaction-rules.test.ts (+23 -0)
📝 packages/loot-core/src/server/accounts/transaction-rules.ts (+2 -1)
📝 packages/loot-core/src/types/models/payee.d.ts (+1 -0)
📝 packages/loot-core/src/types/prefs.d.ts (+2 -1)
upcoming-release-notes/4081.md (+6 -0)

📄 Description

This PR introduces the following enhancements to the Category Learning feature:

  1. Per-Payee Control: Users can now enable or disable Category Learning for individual payees.
  2. Global Toggle: Category Learning can also be enabled or disabled globally.

Some payees, such as Amazon, frequently involve transactions spanning multiple categories. In such cases, pre-filled categories can lead to inaccuracies, requiring extra effort to correct / update transaction, or delete unhelpful rules. This can result in wasted time or complications, especially during syncing as it can make it harder to spot an incorrect transaction. Allowing greater control over category learning improves flexibility and reduces friction for users.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/4081 **Author:** [@NullScope](https://github.com/NullScope) **Created:** 1/3/2025 **Status:** ✅ Merged **Merged:** 1/19/2025 **Merged by:** [@matt-fidd](https://github.com/matt-fidd) **Base:** `master` ← **Head:** `control-auto-categories` --- ### 📝 Commits (10+) - [`bd7054b`](https://github.com/actualbudget/actual/commit/bd7054b54ef248c6dcca2d1faa7176247a923b30) Added ability to control auto categories per payee and globally - [`c65ac59`](https://github.com/actualbudget/actual/commit/c65ac59e372ea9c59fad961f526bb4f7ca3e84b6) Added unit test - [`dbf8f65`](https://github.com/actualbudget/actual/commit/dbf8f65b4e53bd7335221067a70afac5535f9fc1) Changed order of Learn Categories in settings page - [`593bb9f`](https://github.com/actualbudget/actual/commit/593bb9ff9db03c8bf293d33b571e9cc9cff2af7d) Removed console log and fixed prefs type - [`b1fbfa6`](https://github.com/actualbudget/actual/commit/b1fbfa6de7240badae9ca4b4a4ed48afb9b64c41) Added release note - [`f98c6e4`](https://github.com/actualbudget/actual/commit/f98c6e4bb3692122299c50e2f826955456e4be3b) Fixed default value for global setting - [`13aca69`](https://github.com/actualbudget/actual/commit/13aca69c07cdb4c4914adb3e52a5b864821a050b) Added tooltip and context menu option - [`8d343ba`](https://github.com/actualbudget/actual/commit/8d343ba670a69a6da1027813abd920a174cd1b4f) Removed test assertion - [`25f92ab`](https://github.com/actualbudget/actual/commit/25f92ab889762a7eb748ecd47e02a9ae64e759ff) Refactored default value for global setting - [`55f48c0`](https://github.com/actualbudget/actual/commit/55f48c0314eab8d4ff56574f5d3e6cecc0205afd) Added missing boolean to saveDiff and saveDiffAndApply ### 📊 Changes **13 files changed** (+268 additions, -46 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/src/components/Modals.tsx` (+4 -0) ➕ `packages/desktop-client/src/components/payees/CategoryLearning.tsx` (+64 -0) 📝 `packages/desktop-client/src/components/payees/ManagePayees.tsx` (+55 -2) 📝 `packages/desktop-client/src/components/payees/PayeeMenu.tsx` (+46 -25) 📝 `packages/desktop-client/src/components/payees/PayeeTableRow.tsx` (+40 -8) 📝 `packages/desktop-client/src/components/transactions/TransactionList.jsx` (+18 -9) ➕ `packages/loot-core/migrations/1737158400000_add_learn_categories_to_payees.sql` (+5 -0) 📝 `packages/loot-core/src/client/state-types/modals.d.ts` (+2 -0) 📝 `packages/loot-core/src/server/accounts/transaction-rules.test.ts` (+23 -0) 📝 `packages/loot-core/src/server/accounts/transaction-rules.ts` (+2 -1) 📝 `packages/loot-core/src/types/models/payee.d.ts` (+1 -0) 📝 `packages/loot-core/src/types/prefs.d.ts` (+2 -1) ➕ `upcoming-release-notes/4081.md` (+6 -0) </details> ### 📄 Description This PR introduces the following enhancements to the Category Learning feature: 1. Per-Payee Control: Users can now enable or disable Category Learning for individual payees. 2. Global Toggle: Category Learning can also be enabled or disabled globally. Some payees, such as Amazon, frequently involve transactions spanning multiple categories. In such cases, pre-filled categories can lead to inaccuracies, requiring extra effort to correct / update transaction, or delete unhelpful rules. This can result in wasted time or complications, especially during syncing as it can make it harder to spot an incorrect transaction. Allowing greater control over category learning improves flexibility and reduces friction for users. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-26 09:01:10 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#46998