7d25bf181ca7cd31d3cf915170091d7bdaa0eb63
- save, publish and load run under a 30s AbortController timeout (raced,
so a stalled body read can't hang either); save/publish resolve to
{ success:false, error:'timeout', message } and load rejects with a
readable Error, so a hung request no longer blocks the save queue
- readApiResult falls back to obj.error when obj.message is absent, so
PHP texts like 'Another save of this site is still in progress...' are
shown instead of 'server returned HTTP 503'
Refs #4
Refs #47
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Languages
TypeScript
75.9%
JavaScript
12.3%
HTML
8.6%
CSS
2.6%
PHP
0.4%
Other
0.2%