Root cause: @fastify/cors default allowed methods are only GET, HEAD, POST
(CORS-safelisted methods). DELETE requires a CORS preflight OPTIONS request,
and without DELETE in Access-Control-Allow-Methods the browser rejects it
with TypeError: Failed to fetch before the request reaches the server.
Fix: explicitly set methods in enableCors() to include DELETE and all other
HTTP verbs used by the API.
Also add try/catch to handleDelete in ChatPage so errors surface in the
console rather than becoming unhandled promise rejections.
Fixes#195.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>