## Summary - Store account names in plaintext instead of encrypting them client-side. Encryption remains only for transaction descriptions and notes. - Existing encrypted account names are silently migrated when the user unlocks their encryption key, via a new `useDecryptAccountNames` hook that calls API endpoints to update each account. - New `AccountName` component handles rendering both encrypted (legacy) and plaintext accounts across the app. ## Test plan - [x] Create a new account — name should be stored in plaintext (`encrypted = false`, `name_iv = null`) - [x] Unlock encryption key with existing encrypted accounts — they should auto-migrate silently - [x] After migration, verify accounts show `encrypted = false` in DB and names are readable plaintext - [x] Edit a migrated account — should work without encryption - [x] Verify all account name displays work across dashboard, account details, transactions, settings |
||
|---|---|---|
| .. | ||
| AccountPageTest.php | ||
| AccountTest.php | ||
| BankTest.php | ||
| CategoryTest.php | ||
| DeleteAccountPageTest.php | ||
| PasswordUpdateTest.php | ||
| ProfileUpdateTest.php | ||
| TwoFactorAuthenticationTest.php | ||