Il pattern \`reply.send(doc)\` con uno stream pdfkit ha una race con fastify: il body può chiudersi prima che pdfkit emetta tutti i chunks dopo \`doc.end()\`. Ora colleziono i chunks in memoria, attendo \`doc.end()\` via Promise sull'evento \`end\`, e mando il Buffer completo con \`Content-Length\` corretto. Applicato a entrambi gli export (piano settimanale + tracking). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>