docs: registra le modifiche hub e mette v2.5 in pausa dichiarata
STATE.md diceva "Phase 27, nessun bloccante" mentre v2.5 e' ferma per scelta e in produzione e' andato altro. Ora dice cosa e' vero: v2.5 in pausa, modifiche hub in corso, blocchi A/B/C1 in produzione, e due bloccanti scritti con cosa manca e chi li sblocca — le credenziali API di TidyCal e LEAD_WEBHOOK_SECRET su Coolify, senza la quale la route rifiuta tutti (fallimento chiuso voluto). Sta di nuovo sotto le 100 righe: ci e' rientrato togliendo cio' che STATUS.md gia' racconta per esteso, non accorciando i bloccanti. REQUIREMENTS.md guadagna HUB-01..13, con lo stato reale: otto fatti, cinque no. Fra quelli aperti c'e' anche la conferma del payload Elementor, che oggi e' gestito in modo difensivo e non verificato sul campo — distinguere "scritto" da "visto funzionare" e' il punto della regola. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# ClientHub (IAMCAVALLI) — Status
|
||||
|
||||
_Ultimo aggiornamento: 2026-08-18_
|
||||
_Ultimo aggiornamento: 2026-08-19_
|
||||
|
||||
Questo è **l'unico documento narrativo** del progetto: a che punto siamo, cosa manca,
|
||||
cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
||||
@@ -11,12 +11,14 @@ cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
||||
In produzione su `hub.iamcavalli.net` (Coolify/Hetzner, deploy automatico su push a
|
||||
`main` via Gitea). Build verde, `npm audit` pulito.
|
||||
|
||||
Milestone **v2.5 "Audit"** in corso — Phase 27 a metà. In produzione c'è **solo lo
|
||||
schema** dell'audit: nessuna pagina, né admin né pubblica.
|
||||
Milestone **v2.5 "Audit"** in **pausa** a Phase 27 a metà: in produzione c'è solo lo
|
||||
schema dell'audit, nessuna pagina. La pausa è una scelta del 2026-08-19 — prima le
|
||||
**modifiche all'hub** chieste il 2026-08-18, poi il motore.
|
||||
|
||||
| Milestone | Fasi | Stato |
|
||||
|---|---|---|
|
||||
| v2.5 Audit | 27–30 | 🔨 in corso — Phase 27 ~50% |
|
||||
| Modifiche hub | — | 🔨 in corso — dashboard e progetti in produzione, pipeline a metà |
|
||||
| v2.5 Audit | 27–30 | ⏸️ in pausa — Phase 27 ~50% |
|
||||
| v2.4 Post-vendita | 13, 26 | ✅ chiusa 2026-08-08, entrambe in produzione |
|
||||
| v2.3 Email & Accesso | 23–25 | ✅ shipped 2026-07-29, verificata E2E |
|
||||
| v2.2 Sales Loop | 18–22 | ✅ shipped 2026-06-20 |
|
||||
@@ -25,7 +27,42 @@ schema** dell'audit: nessuna pagina, né admin né pubblica.
|
||||
|
||||
## In corso
|
||||
|
||||
### v2.5 — Audit (Phases 27–30)
|
||||
### Modifiche hub (richieste 2026-08-18)
|
||||
|
||||
Tre aree: dashboard, progetti, pipeline. Piano in
|
||||
`~/.claude/plans/sei-arrivato-qua-search-recursive-kettle.md`, **fuori dal repo**.
|
||||
|
||||
**In produzione dal 2026-08-19** (commit `4b135ce` → `19ed377`):
|
||||
|
||||
- **Progetti.** Via il tab Commenti (duplicava `/admin/conversazioni`, che è un
|
||||
sovrainsieme stretto) e il timer dalla lista. Riepilogo soldi + avanzamento in testa
|
||||
al progetto. **Timer per fase e task** — migration `0018`, `ON DELETE SET NULL` perché
|
||||
cancellare un task non deve cancellare le ore lavorate.
|
||||
- **Dashboard.** Inbox promossa in cima a piena larghezza, con da-quanto-aspetta e su
|
||||
cosa è stato scritto. **Analytics per linea di prodotto** (Entry/Signature/Retainer,
|
||||
letti dalla tassonomia). **Timeline delle consegne** con semaforo ritardo/anticipo,
|
||||
scadenza dedotta da offerta + durata con override manuale `projects.due_date`.
|
||||
- **Pipeline.** `POST /api/webhooks/lead`, un endpoint solo per form del sito e bridge;
|
||||
regge payload piatto, `fields` annidati di Elementor e urlencoded, e non duplica chi
|
||||
compila due volte. Provato contro il DB di produzione via tunnel, poi ripulito.
|
||||
|
||||
Cosa manca, e perché:
|
||||
|
||||
- **[BLOCCANTE] TidyCal.** Non ha webhook — è scritto nella loro FAQ, la strada
|
||||
suggerita è Zapier/Make. Ha una REST API con Personal Access Token su tutti i piani,
|
||||
ma **path, filtri per data e paginazione stanno dietro il login** e non sono
|
||||
indicizzati. Serve che l'utente apra `tidycal.com/integrations` → API Keys e passi
|
||||
token o documentazione: dedurre la forma dell'API violerebbe la regola che il
|
||||
progetto si è già dato dopo il caso PageSpeed.
|
||||
- **Alleggerire l'hub.** Senza perimetro. Da affrontare guardando cosa è davvero poco
|
||||
usato, ora che dashboard e progetti sono in produzione.
|
||||
- **Whop → audit.** Dipende dal motore: oggi sarebbe un innesco che non innesca nulla.
|
||||
|
||||
⚠️ Il tab Commenti permetteva di rispondere sulla **singola entità**;
|
||||
`replyToConversation` salva sempre sul thread generale. Non è una regressione introdotta
|
||||
ora — era già una scelta di prodotto — ma da oggi è l'unica via.
|
||||
|
||||
### v2.5 — Audit (Phases 27–30), in pausa
|
||||
|
||||
Il servizio di analisi sito (tre livelli: **Radiografia / Prima-Dopo / Rotta**) diventa
|
||||
un documento privato su `/audit/[slug]`, generato da un motore multi-agente e rifinito a
|
||||
@@ -36,9 +73,10 @@ Fatto finora (Phase 27, ~50%):
|
||||
|
||||
- **[prod 2026-08-18] Schema.** Migration `0017_audits.sql`, 7 tabelle additive, più
|
||||
`checklist_items` seminata con 264 voci. Nessuna UI le legge ancora.
|
||||
- **[non pushato] Le fonti del motore.** `src/lib/audit/sources/` — PageSpeed, CrUX,
|
||||
Wayback, RDAP, robots/sitemap/JSON-LD, header. Provate sul campo su giojello.com:
|
||||
giro completo in 73 s, tutte e cinque hanno risposto.
|
||||
- **[prod 2026-08-19, inerte] Le fonti del motore.** `src/lib/audit/sources/` —
|
||||
PageSpeed, CrUX, Wayback, RDAP, robots/sitemap/JSON-LD, header. Provate sul campo su
|
||||
giojello.com: giro completo in 73 s, tutte e cinque hanno risposto. Deployate, ma
|
||||
**nessuna route le chiama**.
|
||||
|
||||
Manca: agent + sintetizzatore + pipeline, storage immagini, editor admin, pagina
|
||||
pubblica. Dettaglio in [`.planning/ROADMAP.md`](.planning/ROADMAP.md) e
|
||||
|
||||
Reference in New Issue
Block a user