Files
postgenerator/.planning/STATE.md
Michele 60b46cb5c1 docs(01-03): complete pipeline LLM + API routers plan
Tasks completed: 2/2
- Task 1: LLMService, CSVBuilder, GenerationPipeline
- Task 2: API routers (calendar, generate, export, settings) e wiring main.py

SUMMARY: .planning/phases/01-core-generation-pipeline/01-03-SUMMARY.md
2026-03-08 02:16:49 +01:00

68 lines
2.4 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 — Core Generation Pipeline
## Current Position
Phase: 1 of 4 (Core Generation Pipeline)
Plan: 3 of 4 in current phase
Status: In progress — Plan 03 completato
Last activity: 2026-03-08 — Completato 01-03-PLAN.md (pipeline LLM + API routers)
Progress: [███░░░░░░░] 18% (3/16 piani totali stimati)
## Performance Metrics
**Velocity:**
- Total plans completed: 3
- Average duration: ~7 min
- Total execution time: 23 min
**By Phase:**
| Phase | Plans | Total | Avg/Plan |
|-------|-------|-------|----------|
| 01-core-generation-pipeline | 3/4 | 23 min | 7 min |
**Recent Trend:**
- Last 3 plans: 6 min, 9 min, 8 min
- Trend: baseline stabile ~7-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
### 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
## Session Continuity
Last session: 2026-03-08T01:15:06Z
Stopped at: Completato 01-03-PLAN.md — Pipeline LLM + CSVBuilder + 4 router API
Resume file: None