You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Auto-save with draft/versioning: auto-save writes to blog_post_drafts without touching published translations. New BlogPostDraft/Version and CmsPageDraft/Version models. History with line-by-line diff. "Save & Publish" / "Save as Draft" for posts AND CMS pages.
Cmd+S / Ctrl+S: manual save with distinct "Manually saved at" indicator.
History diff: clickable modal showing changed fields between versions, with text diff (+, −, ▲ X chars) and per-field block diff.
Draft vs published diff: current draft is compared to the last published version with the same diff rendering.
Auto-save on Create page: first auto-save creates a placeholder BlogPost with title, redirects to edit.
Configurable series subtitle: multilingual subtitle field in Settings > Series Settings.
CMS page support: auto-save, history, Cmd+S and diff also work on CMS pages.
🐛 Bug Fixes
Schema::getState() side-effect: replaced with getRawState() / $this->data to prevent saveRelationships() from writing to live translations.
Repeater fillFromRelationship(): afterStateHydrated loads draft data after the Repeater overwrites with fillFromRelationship().
Indicator DOM persistence: ensureInDOM() re-injects the indicator element after each Livewire re-render.
Array comparison for blocks: comparison via array_values() to ignore UUID differences between draft and version.