- Archive v2.0 phases (07-10) under .planning/milestones/ - v2.1 REQUIREMENTS/ROADMAP (Phases 11-17: Offer Studio + Proposal AI) - DESIGN-SYSTEM.md (database-view UI contract for Phases 11-14) - Phase 11 CONTEXT, DISCUSSION-LOG, PATTERNS Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.4 KiB
Handoff
Living document — update at the end of each session so the next one can resume without re-deriving context. Overwrite stale sections; keep it short and actionable.
2026-06-13 — Milestone v2.1 "Offer Studio + Proposal AI" pianificata — pronta per esecuzione
Cosa è stato fatto
Eseguito ciclo completo /gsd-new-milestone "Offer Studio + Proposal AI" (research saltata su scelta utente):
- PROJECT.md: nuovo milestone v2.1 con goal, 4 target feature, sezione "Validated" aggiornata con v2.0 (Phase 7-10), "Active" riscritta in 4 categorie prioritizzate, nuove Key Decisions (compartimenti stagni confermato, ordine Offer Studio→Proposal AI, tab Preventivo→Servizi Attivi zero-perdita verificata)
- v2.0 archiviata (copie, non spostamenti):
REQUIREMENTS.md/ROADMAP.md/phases 07-10 →.planning/milestones/v2.0-* - REQUIREMENTS.md riscritto: 23 requisiti v1 in 5 categorie (Offer Studio, Workspace Servizi Attivi, CRM Attio, Dashboard [bloccata], Proposal AI) + deferred v2 (OFFER-14, AUTH-OTP-01, ARCH-01) + out of scope
- ROADMAP.md creato: 7 nuove fasi (11-17), copertura 100% (23/23 requisiti mappati), tutte approvate dall'utente
- STATE.md: switch a v2.1, focus = Phase 11
Roadmap v2.1 (Phase 11-17)
| Fase | Titolo | Requisiti | Note |
|---|---|---|---|
| 11 | Catalog Database-View UX & Legacy Consolidation | OFFER-07,08,09,10,13 | unifica service_catalog/offer_services → services PRIMA della nuova UX |
| 12 | Offer Composition Drag&Drop & CSV Import | OFFER-11,12 | @dnd-kit, totale live durante drag, import CSV one-shot |
| 13 | Workspace — Servizi Attivi | PROJ-06..10 | rimuove tab Preventivo (zero perdita, accepted_total resta via Payments) e Forecast; nuova tab Servizi Attivi (one-shot/ricorrenti + tracking incassi mensili) |
| 14 | CRM Attio-style & Fix | CRM-08..12 | inline edit lead + tag, fix FollowUpWidget IT / LeadForm types / SendQuoteModal |
| 15 | Dashboard Revenue Stats | DASH-11 | BLOCCATA — attesa mockup utente, isolata/skippabile, non blocca 16/17 |
| 16 | Proposal AI — Data Foundations & Auto-Provisioning | PROP-03,04 | campo Stripe Payment Link + auto-provisioning su accettazione (ex-Phase 11) |
| 17 | Proposal AI — Builder, Pagina Pubblica & Email | PROP-01,02,05 | AI builder + redesign /quote/[token] + invio email Resend (ex-Phase 12) |
Nota trasparenza — deviazione dal workflow
Il workflow /gsd-new-milestone prevede uno step "phases clear" che farebbe rm -rf di .planning/phases/01-10/ senza backup. Non l'ho eseguito: è distruttivo, senza archiviazione automatica, e CLAUDE.md richiede conferma prima di operazioni distruttive/di investigare prima di rimuovere lavoro storico. Le fasi 07-10 sono state invece COPIATE (non spostate) in .planning/milestones/v2.0-phases/; le directory originali 01-10 restano in .planning/phases/. Nessuna perdita — solo directory duplicate, pulizia facoltativa in futuro.
Prossima sessione
- Pianificare Phase 11 (Catalog Database-View UX & Legacy Consolidation):
/gsd-plan-phase 11(oppure/gsd-discuss-phase 11prima per decisioni aperte: schema tag, formato CSV import, strategia consolidamentoservice_catalog/offer_services) - Se arriva il mockup dashboard dall'utente: Phase 15 (DASH-11) può essere sbloccata, usare
/gsd-ui-phasecome contratto UI - Migration Phase 11 (consolidamento catalogo) e Phase 13/16 (nuovi campi recurring/payment link) vanno applicate a prod via SSH+docker exec PRIMA del push del codice dipendente (regola storica, vedi sotto)
2026-06-12 — Direzione "Offer Studio" + "Proposal AI" → ora pianificata (vedi sopra)
- BUG fixato e deployato:
/admin/leads/[id]500 perparamsnon awaited (Next.js 16) → fix commitea20685, confermato live in prod (container857af5c1...). - Decisioni strutturali (Preventivo→Servizi Attivi, Forecast→Dashboard, CRM Attio-style, compartimenti stagni) sono ora formalizzate in PROJECT.md/REQUIREMENTS.md/ROADMAP.md — vedi sezione 2026-06-13 sopra.
2026-06-11 (sera) — Phase 10 redo COMPLETATO, root cause risolta (storico)
- Root cause del crash post-deploy Phase 10: il DB prod non aveva NESSUNA migration dopo la 0000 (mancavano
services,leads,offer_phases,quotes…). Catalogo e quote già rotti prima di Phase 10; il deploy Phase 10 ha aggiunto il crash dashboard (FollowUpWidget→leads). NON era un problema di piattaforma (l'app è Gitea→Coolify, non Vercel). - Fix: migrations 0001+0003+0004+0005 applicate atomicamente al DB prod via
ssh root@178.104.27.55→docker exec -i xwkk0040w0kk0gsgcgog8owk psql(porta 54321 firewallata dall'esterno, si passa da SSH). Dati protetti verificati intatti (4 clients / 5 projects / 13 payments / 6 phases). - Redo Phase 10 deployato: commit
5aa6614(deps+UI primitives) e008a434(modulo CRM completo). Utente conferma pagine visibili in prod. - REGOLA: le migration qui sono manuali — applicare al DB prod PRIMA di pushare codice che usa il nuovo schema. Pattern:
cat migration.sql | ssh root@178.104.27.55 "docker exec -i xwkk0040w0kk0gsgcgog8owk sh -c 'psql -U \$POSTGRES_USER -d clienthub -v ON_ERROR_STOP=1 --single-transaction'"(verificare prima che sia additive-only). - Branch
phase10-wip(=8e2752a) cancellabile quando il redo è considerato definitivo. Dangling ancora recuperabile:5d75752(sidebar App shortcuts). - Script riusabile:
scripts/push-phase10-migration.ts(solo dal server o con tunnel).