- themes/tielogic-devnotes.css: stile DEVNOTES + offerta Tielogic per md-to-pdf
(cover bianca con logo+box FORNITORE/CLIENTE, tabelle finanziarie, badge,
status-card, sezione ACCETTAZIONE con firme, A4 portrait)
- main.py: exempt_paths estesi a /docs /redoc /openapi.json (Swagger UI
accessibile senza Bearer per esplorazione interattiva)
- README: stato mcp-docugen aggiornato, layout docker/gateway, setup completo
con docker compose + smoke test
Template runtime (offerta, report-analisi) vivono nel volume Docker
docugen-data, non versionati nel repo.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- streamable_http_app() espone /mcp internamente; mount a root evita doppio prefisso.
- mcp.session_manager.run() integrato nel lifespan FastAPI: l'app mounted non
riceve automaticamente il proprio lifespan -> la task group streamable-http
non veniva inizializzata e le richieste MCP fallivano con RuntimeError.
Smoke test end-to-end via gateway Caddy (porta 8090):
- MCP initialize handshake OK
- tools/list espone 6 tool corretti
- template_create + template_list: round-trip con persistenza su volume
- document_generate propaga LLMAuthError come MCP isError:true
- Registrato in claude mcp list: ✓ Connected
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Renderer: orchestratore generate() — validazione strict variabili,
materializzazione image vars come asset effimeri su disco + URL rewrite,
asset paths template da ./assets/X -> {PUBLIC_BASE_URL}/assets/<t>/X,
integrazione LLM error -> record success=0
- FastAPI sub-app: GET /health (no auth), /assets/{t}/{f} (auth+traversal check),
/generated/{gen_id}/{f} (410 su scaduto o mancante)
- FastMCP server con 6 tool: template_create/update/delete/list/get,
document_generate. Tools esposti anche via mcp.tools dict per test.
- main.build_app() compone http_app + FastMCP mount su /mcp + auth middleware
+ lifespan cleanup task TTL (24h). run() entry point per script console.
68 test passed. Build Docker arca-mcp-docugen:dev verificata,
/health endpoint risponde correttamente nel container.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Docs/sistema-documentale/: master architettura multi-wiki
- Docs/docugen-mcp/: design + implementation plan MCP server
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>