Tasks completed: 4/4 - Task 1: Layout, routing, API hooks, tipi TypeScript, Dashboard, Settings - Task 2a: Badge PN/Schwartz e PostCard con stati success/failed/pending - Task 2b: SlideViewer con edit inline e ProgressIndicator con polling - Task 2c: Pagine GenerateCalendar, OutputReview, GenerateSingle complete SUMMARY: .planning/phases/01-core-generation-pipeline/01-04-SUMMARY.md
82 lines
3.3 KiB
Markdown
82 lines
3.3 KiB
Markdown
# Project State
|
|
|
|
## Project Reference
|
|
|
|
See: .planning/PROJECT.md (updated 2026-03-07)
|
|
|
|
**Core value:** Generare un calendario di 13 caroselli Instagram strategicamente orchestrati, pronti per Canva Bulk Create, con un click dalla Web UI.
|
|
**Current focus:** Phase 1 completata — pronta per deploy e Phase 2
|
|
|
|
## Current Position
|
|
|
|
Phase: 1 of 4 (Core Generation Pipeline)
|
|
Plan: 4 of 4 in current phase
|
|
Status: Phase 1 COMPLETATA — tutti e 4 i piani eseguiti
|
|
Last activity: 2026-03-08 — Completato 01-04-PLAN.md (Web UI React completa)
|
|
|
|
Progress: [████░░░░░░] 25% (4/16 piani totali stimati)
|
|
|
|
## Performance Metrics
|
|
|
|
**Velocity:**
|
|
- Total plans completed: 4
|
|
- Average duration: ~8 min
|
|
- Total execution time: 33 min
|
|
|
|
**By Phase:**
|
|
|
|
| Phase | Plans | Total | Avg/Plan |
|
|
|-------|-------|-------|----------|
|
|
| 01-core-generation-pipeline | 4/4 COMPLETA | 33 min | 8 min |
|
|
|
|
**Recent Trend:**
|
|
- Last 4 plans: 6 min, 9 min, 8 min, 10 min
|
|
- Trend: baseline stabile ~8 min/piano
|
|
|
|
*Updated after each plan completion*
|
|
|
|
## Accumulated Context
|
|
|
|
### Decisions
|
|
|
|
Decisions are logged in PROJECT.md Key Decisions table.
|
|
Recent decisions affecting current work:
|
|
|
|
- [Setup]: FastAPI root_path SOLO via Uvicorn (--root-path), mai nel costruttore FastAPI()
|
|
- [Setup]: CSV encoding = utf-8-sig (BOM) sempre; CANVA_FIELDS locked come costante
|
|
- [Setup]: Prompt di sistema scritti IN italiano
|
|
- [Setup]: Per-item error isolation dal primo loop di generazione
|
|
- [01-01]: root_path SOLO via Uvicorn --root-path nel Dockerfile CMD
|
|
- [01-01]: API_BASE='/postgenerator/api' nel frontend — Pitfall #9 risolto
|
|
- [01-02]: CANVA_FIELDS 33 colonne con _image_keyword (non URL) — URL Unsplash in Phase 4
|
|
- [01-02]: PromptService usa ValueError per variabili mancanti
|
|
- [01-03]: LLMService._parse_retry_after() legge header HTTP per wait esatto (fallback 60s)
|
|
- [01-03]: asyncio.to_thread wrappa LLM sync calls nel background task async
|
|
- [01-03]: Settings.api_key merge: PUT non sovrascrive con None se non inclusa nel body
|
|
- [01-03]: Pipeline singleton in generate.py per mantenere _jobs tra request, con fallback da disco
|
|
- [01-04]: Palette stone/amber per design B2B non generico (non gradienti viola)
|
|
- [01-04]: EditableField come componente generico click-to-edit (no dipendenze esterne)
|
|
- [01-04]: refetchInterval condizionale nel hook useJobStatus (non nel componente)
|
|
- [01-04]: Download CSV sempre via POST con edits inline (non GET originale)
|
|
- [01-04]: localResults separato in OutputReview per edit inline senza mutare cache TanStack Query
|
|
|
|
### Blockers/Concerns
|
|
|
|
- [Phase 1]: Validare token usage reale per batch 13 post con claude-sonnet-4-5 — inter_request_delay=2.0s configurato, da validare in produzione
|
|
- [Phase 1]: Baseline qualita' prompt italiani da validare dopo prima generazione reale
|
|
- [Deploy]: Phase 1 completa — serve vps-lab-deploy per testare end-to-end il sistema
|
|
|
|
## Session Continuity
|
|
|
|
Last session: 2026-03-08T01:29:53Z
|
|
Stopped at: Completato 01-04-PLAN.md — Web UI React completa con tutte le pagine e componenti
|
|
Resume file: None
|
|
|
|
## Next Actions
|
|
|
|
Phase 1 completata. Prossimi passi suggeriti:
|
|
1. `vps-lab-deploy` per deployare su VPS e testare end-to-end
|
|
2. Configurare API key in Impostazioni UI
|
|
3. Generare primo calendario reale per validare qualita' prompt e token usage
|
|
4. Poi procedere con Phase 2 (Image Pipeline - URL Unsplash) o Phase 3 (Advanced Features)
|