- The editor keeps unsaved changes in the browser and offers them
after a crash, a closed tab or an expired session. No timed save on
the server: every save is a full revision.
- The save status stays visible in narrow windows.
- Settings get a sticky section bar, two folded groups and a save bar
that stays in view.
- The admin post list fetches terms and images once, not per post.
- Archive post titles are second-level headings, the archive head
keeps full text contrast, the skip link sits above a sticky header,
a linked image without alternative text names its link.
- The editor check starts through the dev router like the others.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- Own CSS is parsed on write only. A page whose stored CSS no longer
passes a stricter rule answers 200 and opens in the editor; that one
block loses its CSS. A document read several times in one request is
validated once.
- Settings and theme refuse a write from an outdated form.
- A backup fails when a media file does not arrive completely and
leaves no half directory behind; rotation counts intact backups only.
- The archive update takes its backup behind the maintenance page.
- A package import puts all media in place before removing the old
ones, reports honestly when that fails and keeps a maintenance state
that was already on.
- Restoring replaces the SQLite file in one move and points at pending
migrations.
- Six irreversible actions ask first, in a dialog of the admin's own.
- Ctrl+S in the editor takes the field being typed in along; Delete
no longer removes a block while a dialog is open.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>