docs(11-04): complete catalog database-view plan

- Mark OFFER-10 complete (REQUIREMENTS.md) — client-side search delivered
- STATE.md: position advanced to Phase 11 plans 1-4 all executed (92%), session/decisions/metrics updated
- 11-04-SUMMARY.md: append self-check results
This commit is contained in:
2026-06-13 16:05:13 +02:00
parent 9bc1e43738
commit 0387805041
3 changed files with 26 additions and 13 deletions
+2 -2
View File
@@ -12,7 +12,7 @@ v2.0 (Phases 710) ha consegnato catalogo unificato, offerte con fasi, prevent
| OFFER-07 | L'utente vede ed edita il catalogo `services` come tabella con inline editing (click su cella → edit → invio salva) | Complete | | OFFER-07 | L'utente vede ed edita il catalogo `services` come tabella con inline editing (click su cella → edit → invio salva) | Complete |
| OFFER-08 | L'utente assegna tag multi-select a servizi/offerte, creando nuovi tag al volo senza uscire dalla tabella | Complete | | OFFER-08 | L'utente assegna tag multi-select a servizi/offerte, creando nuovi tag al volo senza uscire dalla tabella | Complete |
| OFFER-09 | L'utente aggiunge un nuovo servizio/offerta tramite riga vuota in fondo alla tabella (nome + invio) | Complete | | OFFER-09 | L'utente aggiunge un nuovo servizio/offerta tramite riga vuota in fondo alla tabella (nome + invio) | Complete |
| OFFER-10 | L'utente filtra/cerca servizi e offerte istantaneamente (ricerca client-side, nessun reload) | Pending | | OFFER-10 | L'utente filtra/cerca servizi e offerte istantaneamente (ricerca client-side, nessun reload) | Complete |
| OFFER-11 | L'utente compone un'offerta trascinando servizi dal catalogo (`@dnd-kit`), con totale live aggiornato durante il drag | Pending | | OFFER-11 | L'utente compone un'offerta trascinando servizi dal catalogo (`@dnd-kit`), con totale live aggiornato durante il drag | Pending |
| OFFER-12 | L'utente importa un CSV one-shot per popolare servizi/offerte esistenti (solo seed iniziale, non sync continuo) | Pending | | OFFER-12 | L'utente importa un CSV one-shot per popolare servizi/offerte esistenti (solo seed iniziale, non sync continuo) | Pending |
| OFFER-13 | I dati legacy di `service_catalog` e `offer_services` sono consolidati in `services` senza perdita (migration additiva) | Pending | | OFFER-13 | I dati legacy di `service_catalog` e `offer_services` sono consolidati in `services` senza perdita (migration additiva) | Pending |
@@ -89,7 +89,7 @@ Popolata dal roadmapper durante la creazione della roadmap.
| OFFER-07 | Phase 11 | Complete | | OFFER-07 | Phase 11 | Complete |
| OFFER-08 | Phase 11 | Complete | | OFFER-08 | Phase 11 | Complete |
| OFFER-09 | Phase 11 | Complete | | OFFER-09 | Phase 11 | Complete |
| OFFER-10 | Phase 11 | Pending | | OFFER-10 | Phase 11 | Complete |
| OFFER-13 | Phase 11 | Pending | | OFFER-13 | Phase 11 | Pending |
| OFFER-11 | Phase 12 | Pending | | OFFER-11 | Phase 12 | Pending |
| OFFER-12 | Phase 12 | Pending | | OFFER-12 | Phase 12 | Pending |
+13 -11
View File
@@ -3,15 +3,15 @@ gsd_state_version: 1.0
milestone: v2.1 milestone: v2.1
milestone_name: milestone milestone_name: milestone
status: executing status: executing
stopped_at: "11-03: EditableCell + TagMultiSelect shared UI primitives committed (pure client components, ready for Plan 04 ServiceTable rewrite)" stopped_at: "11-04: ServiceTable rewritten as database-view (inline edit, tags, quick-add, active/inactive split) + CatalogSearch added — Phase 11 plans 1-4 all executed"
last_updated: "2026-06-13T13:52:19Z" last_updated: "2026-06-13T14:02:06Z"
last_activity: 2026-06-13 last_activity: 2026-06-13
progress: progress:
total_phases: 11 total_phases: 11
completed_phases: 8 completed_phases: 8
total_plans: 37 total_plans: 37
completed_plans: 33 completed_plans: 34
percent: 89 percent: 92
--- ---
# Project State # Project State
@@ -26,12 +26,12 @@ See: .planning/PROJECT.md (updated 2026-06-13)
## Current Position ## Current Position
Phase: 11 (catalog-database-view-ux-legacy-consolidation) — EXECUTING Phase: 11 (catalog-database-view-ux-legacy-consolidation) — ALL PLANS EXECUTED
Plan: 4 of 4 Plan: 4 of 4 (complete)
Status: Ready to execute Status: Phase 11 code-complete; pending live-DB migration apply before OFFER-13/end-to-end verification
Last activity: 2026-06-13 Last activity: 2026-06-13
Progress: [█████████] 89% Progress: [█████████] 92%
## Performance Metrics ## Performance Metrics
@@ -55,6 +55,7 @@ Progress: [█████████░] 89%
*Updated after each plan completion* *Updated after each plan completion*
| Phase 11 P02 | 12min | 2 tasks | 2 files | | Phase 11 P02 | 12min | 2 tasks | 2 files |
| Phase 11 P03 | 9min | 2 tasks | 2 files | | Phase 11 P03 | 9min | 2 tasks | 2 files |
| Phase 11 P04 | 12min | 2 tasks | 4 files |
## Accumulated Context ## Accumulated Context
@@ -71,6 +72,7 @@ Recent decisions affecting current work:
- [Phase 11]: Phase 11: hand-write Drizzle migration SQL (0006_add_tags_table.sql) following the project's established convention since drizzle-kit generate is non-functional (meta snapshots out of sync since migration 0001, pre-existing since Phase 8) — Avoids architectural snapshot-reconciliation work (Rule 4, out of scope) while matching exact precedent from migrations 0003-0005 - [Phase 11]: Phase 11: hand-write Drizzle migration SQL (0006_add_tags_table.sql) following the project's established convention since drizzle-kit generate is non-functional (meta snapshots out of sync since migration 0001, pre-existing since Phase 8) — Avoids architectural snapshot-reconciliation work (Rule 4, out of scope) while matching exact precedent from migrations 0003-0005
- [Phase 11]: Phase 11 Plan 02: onConflictDoNothing() without explicit target compiles cleanly for tags table (single unique index tags_entity_name_unique) — used as written in plan, no fallback needed — Avoids unnecessary deviation; Drizzle's no-target ON CONFLICT DO NOTHING is correct given the single unique constraint from Plan 01 - [Phase 11]: Phase 11 Plan 02: onConflictDoNothing() without explicit target compiles cleanly for tags table (single unique index tags_entity_name_unique) — used as written in plan, no fallback needed — Avoids unnecessary deviation; Drizzle's no-target ON CONFLICT DO NOTHING is correct given the single unique constraint from Plan 01
- [Phase 11]: Phase 11 Plan 03: removed the plan's prescribed value-sync useEffect (and a follow-up render-time ref-read attempt) from EditableCell — both violate this project's react-hooks lint rules (set-state-in-effect, refs-during-render / React Compiler). tempValue is now only (re)initialized in startEdit()/cancel(), and the toggle display branch reads `value` directly instead of `tempValue` — Rule 1 lint fix, no behavioral change to the 8 spec'd test behaviors - [Phase 11]: Phase 11 Plan 03: removed the plan's prescribed value-sync useEffect (and a follow-up render-time ref-read attempt) from EditableCell — both violate this project's react-hooks lint rules (set-state-in-effect, refs-during-render / React Compiler). tempValue is now only (re)initialized in startEdit()/cancel(), and the toggle display branch reads `value` directly instead of `tempValue` — Rule 1 lint fix, no behavioral change to the 8 spec'd test behaviors
- [Phase 11]: Phase 11 Plan 04: left `createService`/`serviceSchema` in `src/app/admin/catalog/actions.ts` as unused dead code after deleting `ServiceForm.tsx` (its only consumer) — `actions.ts` was outside this plan's `files_modified` scope and `updateService` still depends on `serviceSchema`; logged to deferred-items.md for future cleanup
### Pending Todos ### Pending Todos
@@ -96,6 +98,6 @@ Items acknowledged and carried forward from previous milestone close:
## Session Continuity ## Session Continuity
Last session: 2026-06-13T13:52:19Z Last session: 2026-06-13T14:02:06Z
Stopped at: 11-03: EditableCell + TagMultiSelect shared UI primitives committed (pure client components, ready for Plan 04 ServiceTable rewrite) Stopped at: 11-04: ServiceTable rewritten as database-view (inline edit, tags, quick-add, active/inactive split) + CatalogSearch added — Phase 11 plans 1-4 all executed, code-complete
Resume file: .planning/phases/11-catalog-database-view-ux-legacy-consolidation/11-03-SUMMARY.md Resume file: .planning/phases/11-catalog-database-view-ux-legacy-consolidation/11-04-SUMMARY.md
@@ -133,3 +133,14 @@ The `tags` table (Plan 01) and the `addTagToService`/`removeTagFromService`/`upd
--- ---
*Phase: 11-catalog-database-view-ux-legacy-consolidation* *Phase: 11-catalog-database-view-ux-legacy-consolidation*
*Completed: 2026-06-13* *Completed: 2026-06-13*
## Self-Check: PASSED
- FOUND: src/components/admin/catalog/ServiceTable.tsx
- FOUND: src/app/admin/catalog/page.tsx
- FOUND: src/app/admin/catalog/CatalogSearch.tsx
- CONFIRMED DELETED: src/components/admin/catalog/ServiceForm.tsx
- FOUND: .planning/phases/11-catalog-database-view-ux-legacy-consolidation/11-04-SUMMARY.md
- FOUND commit: c0bedf3
- FOUND commit: 912a892
- FOUND commit: 9bc1e43