Some checks failed
Release / Test UI (push) Has been cancelled
Release / Build and push images (push) Has been cancelled
Release / Test backend (push) Has been cancelled
Release / Deploy to prod (push) Has been cancelled
Release / Deploy to homelab (push) Has been cancelled
Release / Gitea Release (push) Has been cancelled
Split the single combined UpdateAIJob call at the end of each async goroutine into two sequential calls (status first, payload second) so that a failure writing the large results payload does not silently prevent the job from being marked done. Added recover() to each goroutine to catch and log panics. Affects chapter-names, description, and image-gen handlers.