Complete the malformed-post defence: instead of only degrading on read, refuse to store a post whose body won't parse, so bad content never enters the durable store in the first place. - host/blog-content-ok?: empty body is allowed, otherwise it must parse (parse-safe non-nil). - POST /new (form): missing title OR unparseable body -> 400 HTML page. - POST /posts (JSON): unparseable sx_content -> 400 "invalid sx_content". - PUT /posts/:slug (JSON): unparseable sx_content -> 400, existing post left intact. - 6 new blog tests: each write path rejects "<h1 broken)" with 400 and does not store / does not mutate. Verified live: malformed publish -> 400 + slug 404 (not stored); valid publish unaffected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7.9 KiB
7.9 KiB