feat(balance): audit quick wins — terminology, optional symbol, movable snapshot date #201

Merged
maximus merged 2 commits from fix/balance-quick-wins into main 2026-05-31 21:05:15 +00:00
Owner

Étape 0 de l'audit Bilan

Issue de l'audit docs/audit-bilan-2026-05.md (inclus dans cette PR). Trois quick wins sans changement de schéma, calibrés sur les deux personas (grand public / investisseur) en progressif.

Changements

  • #198 — Terminologie : « catégorie » → « type » dans toute l'UI Bilan + guide (évite la collision avec les catégories de transactions, un autre module). « Encaisse » → « Liquidités », « Fonds commun » → « Fonds / FNB ». « snapshot » conservé mais glosé au 1er usage.
  • #199 — Symbole optionnel : le ticker n'est plus obligatoire pour un compte coté (il ne sert qu'au bouton de récupération de prix ; la valorisation manuelle quantité × prix ne l'a jamais utilisé).
  • #200 — Date déplaçable : la date d'un snapshot existant peut être déplacée (déplacement + réécriture des lignes dans une seule transaction atomique ; collision sur la date cible → rollback complet + erreur typée snapshot_date_exists).

Notes de revue

  • updateSnapshotDate standalone retiré (code mort non câblé) — le déplacement passe par saveSnapshotAtomic({ moveToDate }), atomique avec la réécriture des lignes.
  • Choix de libellé : le kind simple/priced renommé « Mode de saisie » (EN « Entry mode ») pour ne pas réutiliser « type » avec deux sens — à valider.
  • i18n FR/EN en phase, aucune clé orpheline (dateImmutable/symbolRequiredForPriced retirées proprement).

Vérifications

  • npm run build (tsc + vite) ✓
  • tests balance.service ✓ (111 tests)

Closes #198
Closes #199
Closes #200

🤖 Generated with Claude Code

## Étape 0 de l'audit Bilan Issue de l'audit `docs/audit-bilan-2026-05.md` (inclus dans cette PR). Trois quick wins **sans changement de schéma**, calibrés sur les deux personas (grand public / investisseur) en progressif. ### Changements - **#198 — Terminologie** : « catégorie » → « **type** » dans toute l'UI Bilan + guide (évite la collision avec les *catégories* de transactions, un autre module). « Encaisse » → « Liquidités », « Fonds commun » → « Fonds / FNB ». « snapshot » conservé mais glosé au 1er usage. - **#199 — Symbole optionnel** : le ticker n'est plus obligatoire pour un compte coté (il ne sert qu'au bouton de récupération de prix ; la valorisation manuelle quantité × prix ne l'a jamais utilisé). - **#200 — Date déplaçable** : la date d'un snapshot existant peut être déplacée (déplacement + réécriture des lignes dans une seule transaction atomique ; collision sur la date cible → rollback complet + erreur typée `snapshot_date_exists`). ### Notes de revue - `updateSnapshotDate` standalone retiré (code mort non câblé) — le déplacement passe par `saveSnapshotAtomic({ moveToDate })`, atomique avec la réécriture des lignes. - Choix de libellé : le `kind` simple/priced renommé « **Mode de saisie** » (EN « Entry mode ») pour ne pas réutiliser « type » avec deux sens — **à valider**. - i18n FR/EN en phase, aucune clé orpheline (`dateImmutable`/`symbolRequiredForPriced` retirées proprement). ### Vérifications - `npm run build` (tsc + vite) ✓ - tests `balance.service` ✓ (111 tests) Closes #198 Closes #199 Closes #200 🤖 Generated with [Claude Code](https://claude.com/claude-code)
maximus added 2 commits 2026-05-31 20:39:28 +00:00
Two-expert critique (CPA/financial planner + fintech product designer) of
the Balance page, prioritized by severity x effort. Root finding: the flat
model conflates tax vehicle and asset class, blocking the aggregated ->
detailed progression. Defines a 3-step additive trajectory (quick wins ->
vehicle axis -> per-security holdings) and recommends superseding ADR 0012.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(balance): audit quick wins — optional symbol, movable snapshot date, clearer terminology
All checks were successful
PR Check / rust (pull_request) Successful in 22m53s
PR Check / frontend (pull_request) Successful in 2m25s
9d95d2e189
Step 0 of the balance audit (docs/audit-bilan-2026-05.md):
- #198 terminology: "category" -> "type" across the balance UI + user guide
  (avoids collision with transaction categories); relabel Cash/Funds-ETF;
  gloss "snapshot" at first use. i18n FR/EN in lockstep.
- #199 make the ticker symbol optional for priced accounts (only needed for
  the price-fetch button; manual quantity x price never used it).
- #200 allow moving an existing snapshot's date: atomic date move + line
  rewrite in one transaction; collision on the target date rolls back with a
  typed snapshot_date_exists error.

No schema change. Build (tsc + vite) and balance.service tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
maximus merged commit a73bf2ebb0 into main 2026-05-31 21:05:15 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#201
No description provided.