docs(18-02): complete plan — analytics consolidated into admin dashboard

This commit is contained in:
2026-06-19 12:09:54 +02:00
parent c00ec25e48
commit afe4274de9
2 changed files with 123 additions and 8 deletions
+10 -8
View File
@@ -4,8 +4,8 @@ milestone: v2.2
milestone_name: — Sales Loop
status: executing
stopped_at: "Phase 12 re-scoped (mockup utente → editor offerte) e pianificata: 5 piani / 4 wave, planner + plan-checker pass. Pronta per /gsd-execute-phase 12"
last_updated: "2026-06-19T10:19:00.000Z"
last_activity: 2026-06-19 -- Phase 18 Plan 01 complete (forecast + quote builder routes removed)
last_updated: "2026-06-19T10:25:00.000Z"
last_activity: 2026-06-19 -- Phase 18 Plan 02 complete (analytics merged into /admin, /admin/analytics deleted)
progress:
total_phases: 12
completed_phases: 3
@@ -27,11 +27,11 @@ See: .planning/PROJECT.md (updated 2026-06-13)
## Current Position
Phase: 18 (R1) Cleanup & Consolidamento
Plan: 01 complete (02 next)
Plan: 02 complete (03 next)
Status: Executing
Last activity: 2026-06-19 -- Phase 18 Plan 01 complete (forecast + quote builder routes removed)
Last activity: 2026-06-19 -- Phase 18 Plan 02 complete (analytics merged into /admin, /admin/analytics deleted)
Progress (v2.2): [██░░░░░░░░] 20% — Phase 18 in progress (01 done)
Progress (v2.2): [██░░░░░░░░] 20% — Phase 18 in progress (01, 02 done)
### Fasi completate (v2.1, storico)
@@ -80,6 +80,8 @@ Recent decisions affecting current work:
- [Phase 11]: Phase 11 Plan 02: onConflictDoNothing() without explicit target compiles cleanly for tags table (single unique index tags_entity_name_unique) — used as written in plan, no fallback needed — Avoids unnecessary deviation; Drizzle's no-target ON CONFLICT DO NOTHING is correct given the single unique constraint from Plan 01
- [Phase 11]: Phase 11 Plan 03: removed the plan's prescribed value-sync useEffect (and a follow-up render-time ref-read attempt) from EditableCell — both violate this project's react-hooks lint rules (set-state-in-effect, refs-during-render / React Compiler). tempValue is now only (re)initialized in startEdit()/cancel(), and the toggle display branch reads `value` directly instead of `tempValue` — Rule 1 lint fix, no behavioral change to the 8 spec'd test behaviors
- [Phase 11]: Phase 11 Plan 04: left `createService`/`serviceSchema` in `src/app/admin/catalog/actions.ts` as unused dead code after deleting `ServiceForm.tsx` (its only consumer) — `actions.ts` was outside this plan's `files_modified` scope and `updateService` still depends on `serviceSchema`; logged to deferred-items.md for future cleanup
- [Phase 18-02]: fmtEur unified to number version (analytics/page.tsx variant); KPI card callers using DB string values wrapped with parseFloat() — cleaner than maintaining two named variants
- [Phase 18-02]: /admin/analytics route deleted; YearSelector now routes to /admin?year=Y — single admin entry point for statistics (CLEAN-03)
### Pending Todos
@@ -106,6 +108,6 @@ Items acknowledged and carried forward from previous milestone close:
## Session Continuity
Last session: 2026-06-19T10:16:00.000Z
Stopped at: Phase 18 Plan 01 complete — CLEAN-01 + CLEAN-02 done. Next: 18-02-PLAN.md
Resume file: .planning/phases/18-cleanup-consolidamento/18-02-PLAN.md
Last session: 2026-06-19T10:25:00.000Z
Stopped at: Phase 18 Plan 02 complete — CLEAN-03 done. Next: 18-03-PLAN.md
Resume file: .planning/phases/18-cleanup-consolidamento/18-03-PLAN.md