feat(categories): v1 IPC seed + i18n keys + migration v8 (#115) #125
No reviewers
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#125
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-115-seed-v1-i18n"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #115
Livraison 1 du milestone spec-refonte-seed-categories-ipc.
Changements
ALTER TABLE categories ADD COLUMN i18n_key TEXTINSERT OR IGNORE user_preferences.categories_schema_version='v2'pour tagger les profils existantscategories_schema_version='v1'par défaut (nouveaux profils)categoriesSeed.*ajouté FR/EN (150 entrées chacune)CategoryTreeetCategoryComboboxutilisenti18n_keyavec fallbackname(catégories utilisateur restent littérales)CategoryTreeNodeetCategoryRowgagnent le champi18n_keybout-en-boutVérifications
cargo check+cargo test→ 34 passednpm run build(tsc + vite) → OKnpm test→ 133 passedcategories_schema_version='v2'Dépendances aval
categoryTaxonomyV1.jsoncategories_schema_versionpour décider d'afficher la migrationReview verdict : APPROVE
Livraison 1 propre et alignée avec le plan. Les 13 fichiers touchés sont cohérents de bout en bout.
Sécurité
Correctness
.claude/rules/sql-migrations.mdrespectée).i18n_keyajoutée (NULL partout) +categories_schema_version='v2'via INSERT OR IGNORE. Aucun changement de contenu, conforme au plan.CONSOLIDATED_SCHEMAfaitDELETE FROM keywords; UPDATE transactions SET category_id=NULL; DELETE FROM categories;avant d'insérer le seed v1 dans la plage d'IDs 1000+.INSERT OR REPLACE categories_schema_version='v1'supplante lev2posé par la migration. Logique correcte.CategoryTree,CategoryCombobox) fontt(i18n_key, { defaultValue: name })— les catégories utilisateur sansi18n_keyaffichent toujours leur nom littéral.CategoryTreeNodeetCategoryRowpropagent le champi18n_keybout en bout depuis la base jusqu'au rendu.Qualité
categoriesSeed.*.any, pas de code mort. Build TSC + Vite OK. 133 tests vitest + 34 tests cargo passent.Observations non-bloquantes (pour QA #123)
i18n_keydansconsolidated_schema.sql(151) et le nombre de feuilles du namespacecategoriesSeed.*(150 FR/EN). Le fallbackdefaultValue: namemasque l'erreur à l'UI, mais ça vaut une vérif d'appariement au moment du QA — 1 clé orpheline quelque part dans le seed.src/data/categoryTaxonomyV1.jsonest livré mais pas encore consommé — c'est voulu (#116 l'utilisera). Le fichier échappe désormais au.gitignorevia l'exception!src/data/.Livrables aval débloqués
categoryTaxonomyV1.jsoncategories_schema_versionpour décider d'afficher l'invite