fb1ef95c96
- ROADMAP.md: collassato a milestone summary, v2.2 in <details> - PROJECT.md: full evolution review — What This Is, Validated v2.2, Active v2.3, Key Decisions aggiornate - MILESTONES.md: entry v2.2 + entry v2.1 aggiunti - milestones/v2.2-ROADMAP.md: archivio completo fasi 18-22 - milestones/v2.2-REQUIREMENTS.md: archivio requirements con outcomes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.3 KiB
6.3 KiB
Milestones
v2.2 Sales Loop (Phases 18–22, shipped 2026-06-20)
Phases completed: 5 phases (18–22) · 9 plans · 27 commits · 87 files · +7.349/-842 righe
Key accomplishments:
- Cleanup & Consolidamento (Phase 18): rimossi Forecast, quote builder manuale e rotta
/admin/analyticsduplicata; tutte le statistiche admin in un'unica Dashboard (CLEAN-01..04) - Pipeline CRM Kanban (Phase 19): board lead 6 colonne stile Pipedrive con drag-drop persistente via
@dnd-kit; toggle Lista/Kanban con ricerca integrata; vinto/perso come cambio-colonna manuale (PIPE-01, PIPE-02) - Knowledge Base Transcript (Phase 20): tabella
client_transcriptsapplicata a prod via SSH; data layer Drizzle + server actions; UI incolla/elenca/cancella nel dettaglio lead (KB-01, KB-02) - Agente AI Preventivo (Phase 21):
generateProposalContent()con Claude Opus 4.8 (~$0.44/preventivo); Zod schema 20+ sezioni;AssembledProposalsnapshot JSONB; form admin con pre-fill da LeadDetail (AI-01, AI-02) - Deck Pubblico (Phase 22):
/preventivo/[slug]— deck 20+ slideh-screencon keyboard nav + dots; accept/reject conaccepted_atimmutabile; PUB-03 email Resend deferred a backlog (PUB-01, PUB-02)
Known deferred items at close: 1 — PUB-03 email Resend (vedi backlog v2.3)
Archive: .planning/milestones/v2.2-ROADMAP.md · .planning/milestones/v2.2-REQUIREMENTS.md
v2.1 Offer Studio + CRM (Phases 11–14, parziale — reset 2026-06-19)
Phases completed: 3 phases (11, 12, 14) · fasi 13/15/16/17 congelate/abbandonate/ri-scopate in v2.2
Key accomplishments:
- Catalog Database-View UX (Phase 11): catalogo
servicescome tabella inline-edit con tag multi-select, quick-add e ricerca istantanea; consolidamento legacy (OFFER-07..10, OFFER-13) - Offer Editor Tier A/B/C (Phase 12): editor offerte con matrice checkbox servizi×tier, totale live, prezzo pubblico manuale, tag 4-dimensioni, promessa di trasformazione; 55 servizi reali caricati (OFFER-11, OFFER-15..18)
- CRM Attio-style (Phase 14):
/admin/leadsridisegnata con inline edit + tag multi-select; FollowUpWidget in italiano; LeadForm tipizzato; SendQuoteModal senza rami irraggiungibili (CRM-08..12)
v2.0 Business Operations Suite (Phases 7–10, completato 2026-06-13)
Phases completed: 4 phases (7–10)
Key accomplishments:
- Catalogo servizi unificato (tabella
services) usato dal quote builder admin — legacyservice_catalog/offer_servicesancora presenti, consolidamento finale rinviato a v2.1 (Phase 7) - Offerte con fasi ordinate (
offer_phases/offer_phase_services) e builder preventivo admin (Phase 8) - Preventivo pubblico
/quote/[token]: stati draft→sent→viewed→accepted/rejected,accepted_atimmutabile, raccolta email/note cliente (Phase 9) - CRM pipeline lead: CRUD, activity log, reminder follow-up in dashboard (Phase 10, redeployed 2026-06-11 dopo fix migrazioni prod mancanti 0001-0005)
- Ex-Phase 11 (auto-provisioning al "Vinto") ed ex-Phase 12 (email Resend) non eseguite come pianificate — assorbite nel piano v2.1 "Proposal AI"
v1.0 Client Portal & Offer System (Shipped: 2026-06-10)
Phases completed: 6 phases, 24 plans, 29 tasks
Key accomplishments:
- Next.js 16.2.6 App Router con TypeScript strict, Tailwind v4, Drizzle ORM + postgres-js per Coolify Postgres, e 10 componenti shadcn/ui installati e pronti.
- Schema Drizzle ORM completo con 10 tabelle, migration SQL generata e schema live sul database Postgres 16 (Hetzner/Coolify). TypeScript strict compila senza errori.
- Edge proxy con validazione token, ClientView type system che esclude quote_items, e Server Component che fetcha tutti i dati cliente senza esporre segreti admin. Build Next.js 16 senza errori TypeScript.
- Tutti i componenti UI della dashboard cliente renderizzati come Server Components con design light & clean in Tailwind v4: header con logo iamcavalli + brand name cliente, progress bar globale, timeline laterale delle fasi con barre per fase e task list, sezione pagamenti con badge stato (zero importi singoli), link documenti esterni e log note read-only.
- Task 1: scripts/seed.ts
-
- [Rule 1 - Bug] Next.js 16 proxy export name is 'proxy', not 'middleware'
- Admin home shows all clients with Acconto/Saldo payment badges; new client form inserts client row + two payment stubs via Zod-validated Server Action with nanoid token auto-generation
- Full-featured admin client workspace with Radix Tabs covering phases/tasks, payments, documents, and comments — all mutations via inline Server Actions with server-side validation.
- Client-facing approval and comment API routes with token validation, ownership verification, approved_at immutability enforcement, and inline ApproveButton/CommentForm/CommentList wired into the Phase 1 dashboard via PhaseTimeline.
- Added
custom_label textcolumn and madeservice_idnullable inquote_itemsvia Drizzle schema edit + Neon DDL push — unblocking Wave 2 free-form quote items - Vertical slice completo
/admin/catalog: NavBar link + pagina catalogo + tabella con edit inline + form aggiunta servizio + soft-delete toggle, con Server Actions protetti da Zod e requireAdmin() - Admin quote builder tab with catalog dropdown, freeform toggle, items table with calculated total, and accepted_total editor — all backed by Zod-validated Server Actions with requireAdmin guard.
- Verifica umana completa: catalogo servizi → preventivo → accepted_total → dashboard cliente, con conferma security constraint quote_items mai esposti
- NavBar
/admin/projects/[id]/api/internal/validate-slug/route.ts- Five Offer System tables added to schema.ts and production DB via direct SQL migration, with Phase 4 projects table bootstrapped from existing client data.
- Full admin CRUD for macro-offers, micro-offers, and offer services at /admin/offers with a client-side checkbox list for service-to-micro assignments and NavBar updated with Forecast and Offerte links.
- OffersTab client component for assigning micro-offers to projects with inline accepted_total editing, plus active-offers summary section on the client detail page showing public_name per project.
- Client dashboard now shows active offers per project (public_name + cumulative service price + accepted_total), and /admin/forecast displays a 12-month server-side revenue projection spread from project_offers.accepted_total across duration_months.
- AdminSidebar.tsx
- dashboard-queries.ts