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
Fixed six block validation bugs that caused "invalid block" warnings in the editor: column asymmetric layouts had a flex-basis mismatch when the column order was flipped; group blocks were missing border-radius and box-shadow in the serialised HTML even when those values were set in attributes; media-text blocks were missing the is-vertically-aligned-center class; cover blocks were missing border-radius in the serialised HTML across all cover variants; and media-text and cover-split variants were including spurious wp-image-0 size-full classes on <img> tags without a media ID, which diverged from what WordPress's save function generates.
Fixed a non-fatal AbortError: Failed to execute 'mapAsync' on 'GPUBuffer' console error that appeared when navigating away from a post while the AI model was still loaded. The error originated inside WebLLM's internal GPU cleanup routine; it is now silenced during engine disposal so it no longer appears as an uncaught rejection.
The PHP integration CI job now builds plugin assets before running BlockRegistrationTest, fixing an intermittent failure on clean runners where build/block.json was absent.
Layout cards now stream into the results grid as each response arrives instead of waiting for all styles to finish — the first card typically appears within 1–2 seconds of starting generation.
Layout descriptions are now generated lazily in the background after the initial cards appear, so the grid is interactive immediately and descriptions fill in as the model catches up.
Content hint analysis is now fully deterministic (headline length, missing image, missing CTA, long paragraphs, missing quote) — the previous AI model call for this step has been removed, shaving one LLM inference from every generation.
Layout styles are now pre-filtered by content match before inference runs — styles whose anchor requirements aren't met by the current content mix are skipped, with a "Show more styles" option if you want to see all of them.
Security hardening: prompt injection framing, schema name whitelist for personality registration, custom_styles key validation, and user ID scoping on all caches.
State machine fixes: pressing Escape cancels the confirmation screen; stale-results guard prevents a previous generation's results from appearing after a new one starts.
Theme design system expanded with shadow presets, font family detection, heading font applied across all heading and cover renderers, cover overlay sourced from theme.json, and per-section group block styles.
PHP backend split into focused files: api-assemble.php, api-config.php, api-health.php, api-telemetry.php, block-register.php, and admin-hooks.php each handle a single concern.
New integration test suites: BoundaryValueTest (12 cases for edge inputs) and ThemeDesignSystemTest (21 cases for theme colour and shadow helpers).