Dwindi Ramadhana 379a72e52d fix: writing stuck - handle empty model response + no-divider fallback + timeline cleanup
Root causes of writing getting stuck:
1. Model returns empty response for a section → now detected early with
   actionable error message including model name
2. Model responds but without ~~~ARTICLE~~~ divider (happens with fallback
   models like Gemini) → now treats entire response as markdown content
3. Stream ends without 'complete' event (error/exit in PHP) → JS timeline
   entries lingered as 'active' forever. Now deactivated on stream close.
4. Error messages in execution flow now use structured formatAiErrorMessage
   with retry button instead of raw text

Also: deactivateActiveTimelineEntries called in catch block so errors
properly clear the 'Writing section X' status indicator.
2026-06-06 05:30:12 +07:00
2026-06-06 00:29:10 +07:00
2026-01-28 00:26:00 +07:00
2026-01-28 00:26:00 +07:00
2026-01-28 00:26:00 +07:00
Description
No description provided
45 MiB
Languages
PHP 60.5%
JavaScript 25.9%
CSS 13.1%
Shell 0.5%