Files
clienthub/.planning/STATE.md
T
simone bbc89136f5 docs(state): record phase 7 plan 1 execution completion
Phase 7 Plan 1 (Unified Service Catalog) complete:
- Status: executing (was: planning)
- Progress: 1/5 phases, 1/8 plans completed (12%)
- Current position: Phase 07-unified-service-catalog, Plan 07-01 complete → 07-02 planning
- Last activity: 2026-06-11T04:21:50Z

Phase 7 Plan 1 summary:
- Schema definition with audit trail (migrated_from/migrated_id)
- Idempotent backfill script (56 rows: 21 from service_catalog + 35 from offer_services)
- Zero-data-loss validation suite (5-check verification)
- Database migration pending external connectivity

Next steps: Apply migration when DB reachable, or plan Phase 7-02.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-11 06:23:12 +02:00

4.3 KiB

gsd_state_version, milestone, milestone_name, status, last_updated, last_activity, progress
gsd_state_version milestone milestone_name status last_updated last_activity progress
1.0 v2.0 Business Operations Suite executing 2026-06-11T04:21:50Z 2026-06-11
total_phases completed_phases total_plans completed_plans percent
5 1 8 1 12

Project State

Project Reference

See: .planning/PROJECT.md (updated 2026-05-09)

Core value: Il cliente apre il link e vede esattamente a che punto è il suo progetto, cosa deve ancora succedere e cosa ha già approvato — senza dover scrivere email per chiedere aggiornamenti.

Current Position

Phase: 07-unified-service-catalog (Wave 1/2) Plan: 07-01 (Complete) → 07-02 (Planning) Status: Executing Phase 7 — Database schema unification Last activity: 2026-06-11T04:21:50Z — Phase 7 Plan 1 execution complete

What Was Built (Phase 7 — v2.0)

07-01: Unified Service Catalog (Expand Phase)

  • Schema: services table with migrated_from/migrated_id audit trail for rollback safety
  • TypeScript: Service and NewService types exported
  • Backfill: Idempotent migration script (21 service_catalog rows + 35 offer_services rows → services table)
  • Collision Resolution: ' (Offer)' suffix prevents silent overwrites of duplicate names
  • Validation: 5-check suite proves zero data loss (row counts, FK integrity, orphaned references)
  • Status: Code complete; database migration pending connectivity (schema, scripts ready to apply)
  • Data Safety: Legacy tables (service_catalog, offer_services) untouched — rollback possible by not using services table

What Was Built (Phase 5)

  • 05-01: Schema migration — 5 nuove tabelle offer in DB + tipi TypeScript
  • 05-02: /admin/offers CRUD — macro, micro, servizi + assegnazione checkbox
  • 05-03: OffersTab nel workspace progetto + getClientActiveOffers() + sezione Offerte Attive nel dettaglio cliente
  • 05-04: OffersSection nella dashboard cliente (solo public_name) + /admin/forecast 12 mesi

What Was Built (Phase 4)

  • 04-00: Infra — route /c/ → /client/, Dockerfile, deploy Gitea → Coolify
  • 04-01: DB schema migration — projects, settings, FK pivot
  • 04-02: Admin projects list + client detail project cards
  • 04-03: Project workspace + timer analytics + settings page
  • 04-04: Slug resolution + multi-project client dashboard + slug edit
  • 04-05/06: Post-deploy bug fixes
  • 04-07: Debug code removed, public page restored
  • security: Full hardening — auth guards, rate limiting, security headers
  • payments: Init payments + split payment in project workspace

Production State

  • App: hub.iamcavalli.net (Coolify, Hetzner)
  • DB: Postgres self-hosted on Coolify
  • Auth: Auth.js (admin) + token middleware (clients)
  • Routes: /admin/* (admin), /client/[token]/* (clients)

Decisions (All Phases)

  • clients.token è campo separato (non la PK) — rotazionabile via single UPDATE
  • clients.accepted_total denormalizzato — client API non tocca mai quote_items
  • deliverables.approved_at immutabile — audit trail dal giorno uno
  • Edge middleware (proxy.ts) usa fetch() a route interna — postgres-js non può girare nell'Edge runtime
  • Tailwind v4 auto-detection allargata — aggiunto @source not per escludere .01_projects/ e .claude/
  • Authelia va solo davanti ad /admin — /client/[token] deve bypassare per accesso via link token

Deferred Items

Category Item Status
v2 Claude AI onboarding (CLAUDE-01, CLAUDE-02, CLAUDE-03) Backlog
Infrastructure Authelia SSO davanti ad /admin After Phase 4 (now ready)
Infrastructure Higgsfield clone deploy (nuovo progetto Coolify) Pending
SEO WordPress auto-publish articoli Mentioned, not planned

Session Continuity

Last session: 2026-06-11T04:21:50Z Phase 7 Plan 1 execution complete (Unified Service Catalog schema + backfill scripts). Database migration ready but pending external connectivity. Next: Phase 7 Plan 2 planning or database migration when connectivity restored.

Operator Next Steps

  • Run database migration when Postgres is reachable: scripts/push-services-migration.ts, scripts/migrate-services.ts, scripts/validate-services-migration.ts
  • Plan Phase 7 Plan 2 (Offer Phases & Quote Templates) or proceed to Phase 8
  • Monitor database connectivity to apply pending migration