docs: polish, changelog, ADR + legacy cleanup for reports refactor (#76) #95

Merged
maximus merged 1 commit from issue-76-polish-docs into main 2026-04-14 19:35:36 +00:00
Owner

Fixes #76

Dernière issue du milestone spec-refonte-rapports. Nettoyage final, docs et changelog.

Legacy cleanup

  • Supprime src/hooks/useReports.ts (hook monolithique remplacé par les 5 hooks par domaine de #70)
  • Supprime src/components/reports/ReportFilterPanel.tsx (dead code — l'ancien hub l'utilisait, plus aucun caller)
  • grep -rn "DynamicReport|pivotConfig|reports.pivot|normalizeString|_plural" src/ → 0 occurrence

Documentation

  • docs/architecture.md : hooks par domaine, endpoints de reportService, nouvelles sous-routes, helpers de categorizationService, compteurs mis à jour
  • docs/guide-utilisateur.md : section Rapports réécrite autour du hub + 4 sous-rapports, période bookmarkable, flow clic droit
  • src/i18n/locales/{fr,en}.jsondocs.reports.* réécrit pour refléter la nouvelle UX
  • Nouveau ADR docs/adr/0007-reports-hub-refactor.md : contexte, décision, conséquences, alternatives considérées, référence sécurité

Changelog

  • CHANGELOG.md + CHANGELOG.fr.md : entrées sous ## [Unreleased] / ## [Non publié]
    • Added : 4 rapports, édition contextuelle mot-clé, sparklines, donut, période bookmarkable, view mode persistence
    • Changed : hook monolithique splitté, ContextMenu généralisé
    • Removed : pivot table
    • Security : CWE-79, CWE-89, CWE-662, CWE-835, CWE-1333

Vérifications

  • npm run build
  • npm test 62/62 (13 pour getHighlights/Compare/CategoryZoom, 13 pour categorizationService, 7 pour useReportsPeriod, 5 pour ViewModeToggle, 17 pour dateRange, 7 pour getCategoryOverTime)
  • cargo check
  • Parité i18n FR/EN (0 clé orpheline)
  • Legacy cleanup vérifié

Clôture du milestone

Cette PR clôt les 8 issues du milestone spec-refonte-rapports :

  • #69 Fondation + shared components
  • #70 Refonte useReports en hooks par domaine + query string
  • #71 Hub + faits saillants
  • #72 Tendances
  • #73 Comparables
  • #74 Zoom catégorie + AddKeywordDialog (sécurité)
  • #75 Propagation clic droit
  • #76 (cette PR) Polish, docs, changelog, legacy cleanup
Fixes #76 Dernière issue du milestone `spec-refonte-rapports`. Nettoyage final, docs et changelog. ## Legacy cleanup - Supprime `src/hooks/useReports.ts` (hook monolithique remplacé par les 5 hooks par domaine de #70) - Supprime `src/components/reports/ReportFilterPanel.tsx` (dead code — l'ancien hub l'utilisait, plus aucun caller) - `grep -rn "DynamicReport|pivotConfig|reports.pivot|normalizeString|_plural" src/` → 0 occurrence ## Documentation - `docs/architecture.md` : hooks par domaine, endpoints de reportService, nouvelles sous-routes, helpers de `categorizationService`, compteurs mis à jour - `docs/guide-utilisateur.md` : section Rapports réécrite autour du hub + 4 sous-rapports, période bookmarkable, flow clic droit - `src/i18n/locales/{fr,en}.json` — `docs.reports.*` réécrit pour refléter la nouvelle UX - **Nouveau ADR** `docs/adr/0007-reports-hub-refactor.md` : contexte, décision, conséquences, alternatives considérées, référence sécurité ## Changelog - `CHANGELOG.md` + `CHANGELOG.fr.md` : entrées sous `## [Unreleased]` / `## [Non publié]` - Added : 4 rapports, édition contextuelle mot-clé, sparklines, donut, période bookmarkable, view mode persistence - Changed : hook monolithique splitté, ContextMenu généralisé - Removed : pivot table - Security : CWE-79, CWE-89, CWE-662, CWE-835, CWE-1333 ## Vérifications - `npm run build` ✅ - `npm test` ✅ **62/62** (13 pour getHighlights/Compare/CategoryZoom, 13 pour categorizationService, 7 pour useReportsPeriod, 5 pour ViewModeToggle, 17 pour dateRange, 7 pour getCategoryOverTime) - `cargo check` ✅ - Parité i18n FR/EN ✅ (0 clé orpheline) - Legacy cleanup vérifié ✅ ## Clôture du milestone Cette PR clôt les 8 issues du milestone `spec-refonte-rapports` : - #69 Fondation + shared components - #70 Refonte useReports en hooks par domaine + query string - #71 Hub + faits saillants - #72 Tendances - #73 Comparables - #74 Zoom catégorie + AddKeywordDialog (sécurité) - #75 Propagation clic droit - #76 (cette PR) Polish, docs, changelog, legacy cleanup
maximus added 1 commit 2026-04-14 19:30:24 +00:00
docs: polish + changelog + ADR + legacy cleanup for reports refactor (#76)
Some checks failed
PR Check / rust (push) Has been cancelled
PR Check / frontend (push) Has been cancelled
PR Check / rust (pull_request) Has been cancelled
PR Check / frontend (pull_request) Has been cancelled
8d5fab966a
- Delete legacy src/hooks/useReports.ts (the monolithic hook is now fully
  replaced by the per-domain hooks from #70)
- Delete src/components/reports/ReportFilterPanel.tsx (last caller was the
  pre-refactor ReportsPage; no longer referenced anywhere)
- Update docs/architecture.md: reports hook list now lists the 5 per-domain
  hooks, reports service entry lists every new endpoint, routing section
  lists the 4 sub-routes, categorizationService entry mentions the new
  keyword-editing helpers, components folder count + page count updated
- Update docs/guide-utilisateur.md section 9: rewrite around hub + 4
  sub-reports, explain bookmarkable period via query string, walk through
  the right-click keyword editing flow, remove stale pivot section
- Rewrite in-app docs.reports.* i18n in both FR and EN to match the new
  UX (hub, sub-reports, contextual keywords)
- New ADR docs/adr/0007-reports-hub-refactor.md: context, decision (hub +
  four routes, per-domain hooks, URL period, security guarantees on the
  keyword dialog, bounded recursive CTE for category zoom), consequences,
  alternatives considered
- CHANGELOG.md + CHANGELOG.fr.md: Unreleased entries describing the hub,
  each sub-report, contextual keyword editing, bookmarkable period, view
  mode persistence, useReports split, pivot removal, and the security
  posture of AddKeywordDialog / getCategoryZoom

Fixes #76

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

Review — APPROVE

Correctness

  • useReports.ts et ReportFilterPanel.tsx suppression vérifiée + build vert → les pages consomment exclusivement les nouveaux hooks
  • ADR 0007 couvre tous les findings du review spec (contexte, décision, sécurité, alternatives rejetées — feature flag runtime, React context, migration pivot)
  • Changelog FR et EN synchronisés, 4 sections Added/Changed/Removed/Security
  • Guide utilisateur réécrit autour de la nouvelle UX — section 9 complète avec walkthroughs

Qualité

  • npm run build
  • npm test 62/62
  • cargo check
  • Parité i18n FR/EN : 0 orpheline
  • grep -rn "DynamicReport|pivotConfig|reports.pivot|normalizeString|_plural" src/ → vide

Non-bloquant

  • L'ADR est long (147 lignes) mais c'est intentionnel — il résume 8 issues de décisions

Ready to merge. Clôture du milestone spec-refonte-rapports (8/8).

## Review — APPROVE ### Correctness ✅ - `useReports.ts` et `ReportFilterPanel.tsx` suppression vérifiée + build vert → les pages consomment exclusivement les nouveaux hooks - ADR 0007 couvre tous les findings du review spec (contexte, décision, sécurité, alternatives rejetées — feature flag runtime, React context, migration pivot) - Changelog FR et EN synchronisés, 4 sections Added/Changed/Removed/Security - Guide utilisateur réécrit autour de la nouvelle UX — section 9 complète avec walkthroughs ### Qualité ✅ - `npm run build` ✅ - `npm test` ✅ 62/62 - `cargo check` ✅ - Parité i18n FR/EN : 0 orpheline - `grep -rn "DynamicReport|pivotConfig|reports.pivot|normalizeString|_plural" src/` → vide ### Non-bloquant - L'ADR est long (147 lignes) mais c'est intentionnel — il résume 8 issues de décisions Ready to merge. **Clôture du milestone `spec-refonte-rapports` (8/8).**
maximus merged commit e93b741f26 into main 2026-04-14 19:35:36 +00:00
maximus deleted branch issue-76-polish-docs 2026-04-14 19:35:37 +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#95
No description provided.