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:
2026-08-20 10:13:50 +02:00
parent 19ed377214
commit 97cc6460a0
3 changed files with 109 additions and 52 deletions
+46 -8
View File
@@ -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 | 2730 | 🔨 in corso — Phase 27 ~50% |
| Modifiche hub | — | 🔨 in corso — dashboard e progetti in produzione, pipeline a metà |
| v2.5 Audit | 2730 | ⏸️ in pausa — Phase 27 ~50% |
| v2.4 Post-vendita | 13, 26 | ✅ chiusa 2026-08-08, entrambe in produzione |
| v2.3 Email & Accesso | 2325 | ✅ shipped 2026-07-29, verificata E2E |
| v2.2 Sales Loop | 1822 | ✅ shipped 2026-06-20 |
@@ -25,7 +27,42 @@ schema** dell'audit: nessuna pagina, né admin né pubblica.
## In corso
### v2.5 — Audit (Phases 2730)
### 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 2730), 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