fix: onboarding feedback follow-ups: root files warning, pins, help texts, docs (#446) #475
No reviewers
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
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#475
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-446-review-followups"
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?
Resolves #446
Generated autonomously by /autopilot run of 2026-10-18
Résumé
Maillon 8 sur 8 (dernier) de la pile
planned-2026-10-16-lot-v018, basé surissue-384-onboarding-followups(PR #474, tête08c2f57). Suivis non bloquants des revues de la pile #438 à #445, selon la section « Plan d'exécution » du corps, qui prime :SET_IMPORT_FOLDERviderootFiles, et seulement lui. Entre le choix d'un autre dossier et la fin de son scan (ou pour de bon si ce scan échoue), l'avertissement nommait les fichiers de l'ancien dossier sous le nom du nouveau.scannedSourcesn'est pas touché : la liste des sources du dernier scan reste affichée jusqu'au scan suivant, comportement antérieur, épinglé par le test et ajouté aux vérifications manuelles.reorderRows(sous-groupe replié suivi d'une feuille sœur, puis d'une racine sœur) et le point du bandeau de démarrage (absent tant que le total n'est pas connu, présent entre le compteur et l'étape suivante ensuite).docs.dashboard.features[6],reports.help.tips[2],reports.help.tips[3], FR mot pour mot, EN mot pour mot pour les deux puces de l'aide, EN aligné pour la carte d'accueil (le corps dit « EN aligné »)./reports, note sur le Ctrl+clic de la carte Tendances, ligneuseImportWizardà jour ; CHANGELOG FR et EN.Hors portée : la garde des clés i18n FR/EN, faite par #453 (maillon 1,
src/i18n/locales.keys.test.tssur la base) ; aucune seconde garde. Aucune migration (v1→v17), aucun appel réseau, aucun fichier Rust.Fichiers
src/hooks/useImportWizard.ts:SET_IMPORT_FOLDERviderootFiles; commentaire du reducer et doc deWizardState.rootFilesà jour.src/hooks/useImportWizard.test.ts: deux tests à côté de « a scan error leaves the root files of the last scan in place » : un changement de dossier viderootFileset gardescannedSources(même référence) jusqu'au scan suivant, qui pose les nouveaux fichiers ; une erreur de scan après un changement de dossier ne nomme aucun fichier de l'ancien.src/utils/reorderRows.test.ts: deux tests ([sub("A",0), sub("Vide",1), leaf("z",1)]→Vide, z, A; le même bloc suivi d'une racine groupe →Vide, z, A, b, B, ou d'une racine feuille →Vide, z, A, R).src/components/onboarding/OnboardingBanner.render.test.tsx: helperdots(span dont les classes contiennenth-1etw-1) ; absence du point dans les casvisitStepsInitialized: falseetbudgetReady: false; nouveau test de présence (un seul point,aria-hidden="true", entre le compteur et « Étape suivante » dans le balisage).src/i18n/locales/fr.json,src/i18n/locales/en.json: les trois textes.docs/guide-utilisateur.md: la ligne des fonctionnalités du tableau de bord suitdocs.dashboard.features[6](même texte FR).docs/architecture.md,CLAUDE.md,CHANGELOG.md,CHANGELOG.fr.md.Textes
docs.dashboard.features[6]reports.help.tips[2]reports.help.tips[3]Les cinq textes donnés par le corps ont été comparés par script au corps de l'issue (espaces simples, apostrophes droites) : identiques.
DocsContent.locales.test.ts,locales.keys.test.tset les tests de pages qui montentPageHelprestent verts (même nombre d'éléments par liste, mêmes clés).Décisions
reorderRowsétabli en exécutant le cas d'abord (sonde jetable, supprimée) :[sub("A",0), sub("Vide",1), leaf("z",1)]avecsubtotalsOnTop=falsedonneVide, z, A, l'ordre présumé par le corps ; il est donc épinglé, avec la variante suivie d'une racine sœur, groupe et feuille.totalKnown = budgetReady) rougit, mais d'abord sur l'assertion préexistante du compteur dans le même test. Pour prouver la nouvelle assertion seule, la mutation M6 la restreint au point (budgetReady && nextStep) : rouge avec les nouveaux tests, verte avec le fichier de test de la base (45/45, rc 0). Les deux sont dans le tableau.budgetReadyest faux : l'autre moitié detotalKnown, une assertion d'une ligne (mutation M8).scannedSourcesinchangé (décision de planification) et épinglé comme comportement antérieur (toBe(before.scannedSources), mutation M2) : vider aussi les sources ferait clignoter l'état vide de la page Import pendant le scan, ce qu'aucun worker sans écran ne peut juger.CLAUDE.md, règle de zone « Un changement visible ajoute une entrée » deREVIEW.md). Écarté : l'entrée Modifié seule, qui laisserait un correctif visible sans trace.docs.dashboard.features[6](« EN aligné ») : « Got it » estonboarding.checklist.acknowledgeen anglais, « visit steps » le terme de la note anglaisedocs.gettingStarted; « tick themselves » remplacé comme en français.docs/guide-utilisateur.mdporte la même ligne quedocs.dashboard.features[6]; elle suit (règle de documentation deCLAUDE.md), bien qu'absente de la liste de fichiers du corps.balance/corrigée avec le compte (elle nommaitBalanceOnboardingCard, supprimé par82550d6), la lignecategories-migration/, absente, ajoutée.react-router7.18.4 (LinkappelleonClickpuisshouldProcessLinkClickignore un clic modifié) ; le « sans effet visible » du corps n'est pas écrit comme un fait (ce que fait le webview d'un clic modifié n'est pas observable ici) mais comme « jugé théorique : documenté, pas corrigé ».Comptes des composants
Commande, sur la tête
08e6f04(fichiers.tsxhors tests, sous-dossiers compris) :adjustments 3, balance 12, budget 5, categories 8, categories-migration 5, dashboard 7, import 18, layout 2, onboarding 3, profile 3, reports 35 (dont 7 sous
cards/), settings 17, shared 14, transactions 6. Le corps disait 135 au 2026-10-16 ; s'y ajoutentSplitButtonetUpsellDialog(#369) etHierarchyCheckModal(#393).docs/architecture.md: total 61 → 138 (avec la définition), balance 8 → 12, categories 5 → 8, reports ~25 → 35, lignecategories-migration/(5) ajoutée ; les autres lignes étaient justes.CLAUDE.md: 53 → 138, import 14 → 18. La ligne des hooks est celle du maillon 7, non touchée.Preuves
Implémentation commitée avant la première mutation ; une mutation à la fois, restaurée par
git checkout -- <fichier>,git status --shortvide après chacune.useImportWizard.tsrootFiles: []retiré deSET_IMPORT_FOLDERuseImportWizard.tsscannedSources: []ajouté àSET_IMPORT_FOLDERreorderRows.tscurrentParent && currentChildren.length > 0 && depth <= parentDepthOnboardingBanner.tsxtotalKnown = budgetReady(mutation du corps)OnboardingBanner.tsxbudgetReady && nextStepOnboardingBanner.tsxfalse && …)OnboardingBanner.tsxvisitStepsInitialized && nextStepbudgetReady: false)Les textes et la documentation n'ont pas de comportement à muter. M7 rejouée après le commit de relecture
08e6f04(test de présence qui ne lit plus les points qu'une fois) : toujours rouge (1 test, rc 1).Tests
src/zz_tmp_probe.test.ts(unexpectfaux),npx vitest run→ sonde rc=1, puis supprimée.npm run build: vert (tsc + vite).npm test: 155 fichiers, 2503 tests, verts (2498 sur la base, plus 5 nouveaux cas), rejoué sur la tête08e6f04avecnpm run build.src-tauri/**touché,cargo testnon lancé (check-rustne tournera pas sur cette PR).Restes connus (hors portée)
CLAUDE.md: la lignecommands/(« 3 modules, 17 commandes ») est périmée, commepages/(« 11 pages »),services/(« 14 services métier », 27 fichiers aujourd'hui) etcontexts/(ProfileContext seul, trois contextes aujourd'hui) ; laissées, la consigne du maillon ne portant que sur les composants.docs/architecture.mda les comptes à jour des commandes et des hooks (maillon 7).docs/architecture.md, lignepages/: « 14 pages (dont 4 sous-pages rapports) », alors quesrc/pagescompte 25 fichiers.tsxhors tests, dont 5 sous-pages rapports et 5 fichiers soussettings/; non recompté ici (hors consigne), à reprendre dans un suivi.Vérifications manuelles dues (prochaine release)
scannedSourcespendant le nouveau scan : la liste des sources de A reste affichée jusqu'à la fin du scan de B (puis est remplacée par celle de B) ; noter si cela se voit (scan lent, dossier réseau) ou si l'état vide clignote. Si le scan de B échoue, la liste de A reste sous le nom de B : à juger, hors de cette PR.À regarder
🤖 Generated with Claude Code
reports.help.tips[2] and [3] named "Monthly Trends" and "Category Over Time" ("Tendances mensuelles", "Catégories dans le temps"), tabs that no longer exist: they now name the Trends and Category Analysis cards of the hub. docs.dashboard.features[6] said the eight steps tick themselves from the data; the two visit steps are checked with "Got it". French texts as validated by Max on 2026-10-16, English aligned; the guide's line of the dashboard features follows docs.dashboard.features. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Niveau : normal
Verdict : APPROVE
Auto-revue de l'auteur (worker
/autopilot), pas une revue indépendante : checklist de/pr-reviewappliquée au diff complet de la PR contre sa base (issue-384-onboarding-followups), niveau calculé avecREVIEW.mddemain.Niveau, fichier par fichier
CHANGELOG.md,CHANGELOG.fr.md,docs/guide-utilisateur.md: bas (**/*.md,docs/**, hors exceptions).CLAUDE.md,docs/architecture.md: normal (liste « Restent au moins normaux »).src/hooks/useImportWizard.ts, les trois fichiers de test,src/i18n/locales/{fr,en}.json: normal. Ligne Haut « code livré » non remplie : aucun appel réseau ajouté ni modifié, aucune URL portant une donnée, aucun consentement touché.La PR est de niveau normal.
Résumé
SET_IMPORT_FOLDERviderootFiles(et seulement lui) ; épinglesreorderRows(sous-groupe replié) et point du bandeau ; trois textes validés par Max, FR et EN ; composants recomptés (138), 5 cartes du hub, note Ctrl+clic, ligneuseImportWizard; CHANGELOG Modifié + Corrigé dans les deux fichiers.Checklist
rootFilesreste affiché seulement, jamais écrit au Journal.SET_IMPORT_FOLDERn'est envoyé qu'au montage (rootFilesy est déjà vide) et parbrowseFolder, suivi du scan du nouveau dossier ; reprendre le même dossier vide puis repose les fichiers au scan ;RESET, « Actualiser » et le dossier d'exemple ne passent pas par cette action, donc inchangés.reorderRowsreçoit bien les lignes visibles (groups.visible(...)dansBudgetTable,BudgetVsActualTable,ComparePeriodTable) : le cas « replié » épinglé est celui de l'application. Note Ctrl+clic vérifiée dansreact-router7.18.4 (LinkappelleonClickavantshouldProcessLinkClick, qui ignore un clic modifié).npm run buildetnpm test(155 fichiers, 2503 tests) verts sur08e6f04; aucunonly/skip.docs.dashboard.features[6].pull_refencloses, venant de cette PR ; le mot-clé de fermeture est en première ligne du corps et dans le dernier commit, nulle part ailleurs.REVIEW.md: i18n et documentation (FR et EN, CHANGELOG des deux côtés pour les deux changements visibles, guide etdocs.*alignés,architecture.mdà jour du comportement du hook) ; Vie privée (rien de nouveau ne part ni n'est journalisé) ; Règles de revue (aucun fait cité parREVIEW.mdne change).Constats
08e6f04) :src/components/onboarding/OnboardingBanner.render.test.tsx, test de présence du point, la liste des points était lue deux fois ; une seule lecture, aucune assertion changée, M7 rejouée rouge.Aucun constat bloquant.
Suggestions (non bloquantes)
CLAUDE.mdgarde des lignes périmées (commands/« 3 modules, 17 commandes »,pages/« 11 pages »,services/« 14 services métier »,contexts/), etdocs/architecture.mddit « 14 pages (dont 4 sous-pages rapports) » pour 25 fichiers.tsxhors tests soussrc/pages(5 sous-pages rapports, 5 fichiers soussettings/). Hors consigne de ce maillon : une issue de suivi.architecture.mdne dit pas ce que fait le webview d'un clic modifié (non observable ici) ; un Ctrl+clic sous Windows (WebView2) dirait si une fenêtre s'ouvre, ce qui toucherait tous les liens de l'application, pas seulement cette carte.CI lue par l'orchestrateur du run
/autopilotdu 2026-10-18 :check-frontendvert sur la tête08e6f04(run 592).reorderRows.test.ts(7 tests),OnboardingBanner.render.test.tsx(15),useImportWizard.test.ts(26),DocsContent.locales.test.ts(6) et la gardelocales.keys.test.ts(8).check-rustne s'applique pas à ce maillon (aucun chemin Rust touché).View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.