<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Unblock Documentation Blog</title>
        <link>https://docs.unblockwp.com/changelog/</link>
        <description>Unblock Documentation Blog</description>
        <lastBuildDate>Tue, 12 May 2026 03:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[v0.6.0-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.6.0-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.6.0-alpha.1/</guid>
            <pubDate>Tue, 12 May 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Added — Numeric indexing on Collections: {{ posts[0].title }}, {{ featured[2].author.email }}.]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-added">Added</span> — Numeric indexing on Collections: <code>{{ posts[0].title }}</code>, <code>{{ featured[2].author.email }}</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Arbitrary expressions inside bracket access: <code>{{ posts[loop.index] }}</code>, <code>{{ items[i + 1].title }}</code>, <code>{{ map[user.role] }}</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Editor placeholders for <code>{{ post.* }}</code> when no post is in context (FSE templates).</li>
<li class=""><span class="cl cl-added">Added</span> — Conditional HTML attributes via <code>null</code>: <code>disabled="{{ cond ? true : null }}"</code> omits the attribute.</li>
<li class=""><span class="cl cl-added">Added</span> — WooCommerce product fields expanded (attributes, variations, shipping, tax, sale dates, catalog visibility, etc.); <code>product_variation</code> exposes the same fields as <code>product</code>.</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="expressions">Expressions<a href="https://docs.unblockwp.com/changelog/v0.6.0-alpha.1/#expressions" class="hash-link" aria-label="Direct link to Expressions" title="Direct link to Expressions" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Numeric indexing on Collections: <code>{{ posts[0].title }}</code>, <code>{{ featured[2].author.email }}</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Arbitrary expressions inside bracket access: <code>{{ posts[loop.index] }}</code>, <code>{{ items[i + 1].title }}</code>, <code>{{ map[user.role] }}</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Conditional HTML attributes via <code>null</code>: <code>disabled="{{ cond ? true : null }}"</code> omits the attribute.</li>
<li class=""><span class="cl cl-added">Added</span> — Chainable excerpt builder: <code>{{ post.excerpt.length(50).end('…').read_more('More') }}</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Chainable comments thread: <code>{{ post.comments.order('DESC') }}</code> (email and IP stripped).</li>
<li class=""><span class="cl cl-added">Added</span> — Comparisons on <code>post.type</code>, <code>post.category</code>, etc.: <code>{% if post.type == 'page' %}</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — <code>image.ID</code>, <code>image.post_title</code>, <code>image.post_parent</code>, etc. resolve through the underlying post.</li>
<li class=""><span class="cl cl-added">Added</span> — <code>get_taxonomy(slug)</code> function for taxonomy labels: <code>{{ get_taxonomy('category').label }}</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Filter + comparison patterns (<code>{{ x|filter == y }}</code>) now parse as expected.</li>
<li class=""><span class="cl cl-improved">Improved</span> — <code>post.parent</code>, <code>post.next</code>, <code>post.prev</code> return <code>false</code> when absent; <code>image.width</code>, <code>image.height</code> return <code>null</code> when metadata is missing.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Adjacent <code>{{ }}</code> placeholders (<code>{{ a }}{{ b }}</code>) silently returning only the first value.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — <code>{{ post.* }}</code> outside a loop now resolves to the current page (was the first post in the main loop).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — <code>{{ site.option('date_format') }}</code> returning empty due to a callback signature mismatch.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — <code>{{ image.status }}</code> and <code>{{ attachment.status }}</code> throwing a fatal error.</li>
<li class=""><span class="cl cl-removed">Removed</span> — User accessor methods <code>login</code>, <code>first_name</code>, <code>last_name</code>, <code>nickname</code>, <code>description</code>, <code>logged_in</code> (use <code>user.meta('first_name')</code> and <code>user.is_current</code>); <code>post.status</code> (use <code>post.post_status</code>).</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="loops--variables">Loops &amp; Variables<a href="https://docs.unblockwp.com/changelog/v0.6.0-alpha.1/#loops--variables" class="hash-link" aria-label="Direct link to Loops &amp; Variables" title="Direct link to Loops &amp; Variables" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — Loop on an expression variable returning <code>null</code> or empty no longer renders a phantom iteration.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Nested loops over the same post Collection no longer trigger PHP warnings or render the wrong item.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Loop alias resolution when iterating a Variable Block Collection (<code>{% for item in featured %}</code>).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Variable Block storing an object (<code>{% set x = post %}</code>) — chained access <code>{{ x.title }}</code> now works.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.6.0-alpha.1/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Editor placeholders for <code>{{ post.* }}</code> when no post is in context (FSE templates).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Block inspector missing Attributes and Styles panels for descendants of an empty loop.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="woocommerce">WooCommerce<a href="https://docs.unblockwp.com/changelog/v0.6.0-alpha.1/#woocommerce" class="hash-link" aria-label="Direct link to WooCommerce" title="Direct link to WooCommerce" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Product fields expanded (attributes, variations, shipping, tax, sale dates, catalog visibility, etc.); <code>product_variation</code> exposes the same fields as <code>product</code>.</li>
<li class=""><span class="cl cl-changed">Changed</span> — Price, stock, and rating fields mirror native return types (<code>null</code> instead of <code>''</code>).</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.5.0-alpha.3]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.5.0-alpha.3/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.5.0-alpha.3/</guid>
            <pubDate>Tue, 28 Apr 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Added — Inline data:image/* URIs (PNG, JPEG, GIF, WebP, AVIF, SVG) on `, , , and `.]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-added">Added</span> — Inline <code>data:image/*</code> URIs (PNG, JPEG, GIF, WebP, AVIF, SVG) on <code>&lt;img&gt;</code>, <code>&lt;video poster&gt;</code>, <code>&lt;source&gt;</code>, and <code>&lt;track&gt;</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Editors and Authors can now use Unblock without <code>manage_options</code>. Settings moved to a dedicated <code>unblock/v1/settings</code> REST endpoint, filterable via <code>unblock/settings/can_read</code> and <code>unblock/settings/can_write</code>.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — SVG content and expression operators (<code>&gt;</code>, <code>&lt;</code>) preserved on save.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Twig expressions (<code>{{ ... }}</code>) in block content no longer corrupted on save.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — SVG attribute casing (<code>viewBox</code>, <code>preserveAspectRatio</code>, etc.) and MathML's <code>definitionURL</code> preserved on save.</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.3/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Inline <code>data:image/*</code> URIs on <code>&lt;img&gt;</code>, <code>&lt;video poster&gt;</code>, <code>&lt;source&gt;</code>, and <code>&lt;track&gt;</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — Editors and Authors can now use Unblock without <code>manage_options</code>. Settings moved to a dedicated <code>unblock/v1/settings</code> REST endpoint, filterable via <code>unblock/settings/can_read</code> and <code>unblock/settings/can_write</code>.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — SVG content and expression operators (<code>&gt;</code>, <code>&lt;</code>) preserved on save.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Twig expressions (<code>{{ ... }}</code>) in block content no longer corrupted on save.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — SVG attribute casing (<code>viewBox</code>, <code>preserveAspectRatio</code>, etc.) and MathML's <code>definitionURL</code> preserved on save.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Stale block output with persistent object cache (Redis/Memcached).</li>
<li class=""><span class="cl cl-improved">Improved</span> — Block sanitization covers all WordPress save paths.</li>
<li class=""><span class="cl cl-improved">Improved</span> — MathML <code>definitionURL</code> rejects <code>javascript:</code>, <code>data:</code>, and <code>vbscript:</code> schemes at render.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai">AI<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.3/#ai" class="hash-link" aria-label="Direct link to AI" title="Direct link to AI" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Clearer AI chat empty and error states (assistant unavailable, missing provider, localized error actions).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat compatibility with OpenAI reasoning models (o1, o3, o4-mini, gpt-5) and parallel tool calls.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="license">License<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.3/#license" class="hash-link" aria-label="Direct link to License" title="Direct link to License" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — License popover stuck on activation form for lifetime licenses.</li>
<li class=""><span class="cl cl-improved">Improved</span> — License REST route uses the standard permission pattern.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.5.0-alpha.2]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.5.0-alpha.2/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.5.0-alpha.2/</guid>
            <pubDate>Thu, 16 Apr 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Fixed — CSS selector normalizer mangling spaces around ` and combinators inside parentheses (e.g., :has(~  iframe)`).]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS selector normalizer mangling spaces around <code>*</code> and combinators inside parentheses (e.g., <code>:has(~ * iframe)</code>).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — HTML attributes always rendered in lowercase, breaking case-sensitive SVG attributes like <code>viewBox</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Attributes panel normalizes attribute names on blur (lowercase + SVG case correction per HTML5 spec).</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.2/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS selector normalizer mangling spaces around <code>*</code> and combinators inside parentheses (e.g., <code>:has(~ * iframe)</code>).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — HTML attributes always rendered in lowercase, breaking case-sensitive SVG attributes like <code>viewBox</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Attributes panel normalizes attribute names on blur (lowercase + SVG case correction per HTML5 spec).</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.5.0-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/</guid>
            <pubDate>Mon, 13 Apr 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Added — Temperature control in AI chat — presets (Precise, Balanced, Creative) with per-agent defaults and unblock/ai/temperature filter.]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-added">Added</span> — Temperature control in AI chat — presets (Precise, Balanced, Creative) with per-agent defaults and <code>unblock/ai/temperature</code> filter.</li>
<li class=""><span class="cl cl-added">Added</span> — <code>unblock/form/send_email</code> filter to skip the default email notification (for CRM/webhook integrations).</li>
<li class=""><span class="cl cl-added">Added</span> — Form ID support via <code>data-unbk-form</code> attribute value, accessible through <code>$context-&gt;form_id()</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS import directives now work inside nested at-rules (<code>@media</code>, <code>@supports</code>, etc.).</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer clears the code editor after import and auto-selects the first parsed item.</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="forms">Forms<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/#forms" class="hash-link" aria-label="Direct link to Forms" title="Direct link to Forms" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — <code>unblock/form/send_email</code> filter to skip the default email notification (for CRM/webhook integrations).</li>
<li class=""><span class="cl cl-added">Added</span> — Form ID support via <code>data-unbk-form</code> attribute value, accessible through <code>$context-&gt;form_id()</code>.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Form email sent despite errors added by <code>unblock/form/processed</code> hooks (missing pipeline error check).</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai">AI<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/#ai" class="hash-link" aria-label="Direct link to AI" title="Direct link to AI" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Temperature control in AI chat — presets (Precise, Balanced, Creative) with per-agent defaults and <code>unblock/ai/temperature</code> filter.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — MCP session disconnected and lost when closing and reopening the AI chat sidebar.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="css-importer">CSS Importer<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/#css-importer" class="hash-link" aria-label="Direct link to CSS Importer" title="Direct link to CSS Importer" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-improved">Improved</span> — CSS import directives now work inside nested at-rules (<code>@media</code>, <code>@supports</code>, etc.).</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer clears the code editor after import and auto-selects the first parsed item.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS import directives not matching collection names containing spaces or special characters.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS import <code>collection</code> directive not applied to scoped variable selectors (e.g., <code>.dark</code>, <code>.btn--md</code>).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS import merging scoped variable collections with the same selector but different directive names.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS import multiple <code>:root</code> blocks merged into one, breaking directive-based collection assignment.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="css">CSS<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/#css" class="hash-link" aria-label="Direct link to CSS" title="Direct link to CSS" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables not rendered when their collection has an empty selector.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables not grouped when collection selectors differ only by whitespace.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables with the same name duplicated within the same group instead of last value winning.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — At-rules without a required token (<code>@view-transition</code>, <code>@page</code>) not rendered in generated CSS.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.5.0-alpha.1/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — Custom CSS selectors (tag, combinator, attribute) lost on save when saving directly from the HTML inspector without blurring first.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — HTML inspector desync when typing immediately after a previous edit was applied to the canvas.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Save button staying active after save when the post contains non-persistent block changes (e.g., matched CSS selectors).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — HTML inspector replacing all HTML losing previous root element attributes instead of clearing them.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — TreeView focus ring persisting on stale items after external data changes.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.4.0-alpha.4]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.4.0-alpha.4/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.4.0-alpha.4/</guid>
            <pubDate>Tue, 07 Apr 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Added — unblock/form/client_ip filter for overriding the client IP used in form rate limiting (proxy support).]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-added">Added</span> — <code>unblock/form/client_ip</code> filter for overriding the client IP used in form rate limiting (proxy support).</li>
<li class=""><span class="cl cl-added">Added</span> — Security regression tests for PostQuery type filtering and Processor timestamp validation.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI chat shows a notice with a link to Settings → Connectors when no AI provider is configured, instead of letting the user send a message and get an error.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI image generation errors are now reported to the model so it can explain the failure to the user.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Form rate limiting uses <code>REMOTE_ADDR</code> only; proxy setups use the new <code>unblock/form/client_ip</code> filter.</li>
<li class=""><span class="cl cl-improved">Improved</span> — MCP sessions now store <code>user_id</code> and enforce ownership on register/deregister.</li>
<li class=""><span class="cl cl-improved">Improved</span> — MCP command IDs use cryptographically secure UUIDs (<code>wp_generate_uuid4</code>) instead of <code>uniqid</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — File write permissions use <code>FS_CHMOD_FILE</code> (default <code>0644</code>) instead of hardcoded <code>0755</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — License update check uses POST instead of GET to keep license keys out of URLs and server logs.</li>
</ul>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS sanitizer bypassed via obfuscation vectors (comment splitting, CSS escape sequences, whitespace injection).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — PostQuery with <code>post_type =&gt; 'any'</code> exposing non-viewable (private) post types to unauthorized users.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Empty timestamp token bypassing anti-spam validation with a silent return instead of an error.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Audit skills (accessibility, SEO) now keep tools available so models use the function calling API instead of hallucinating raw tool call tags in chat output.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Clicking an anchor with a <code>#fragment</code> href in the editor scrolling to the target section instead of being suppressed.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — HTML inspector edits occasionally not syncing to the block when typing soon after a previous edit was applied.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Non-width <code>@media</code> queries (prefers-reduced-motion, prefers-color-scheme, hover) breaking the device switch by displaying incorrect icons and being auto-selected as default. Moved to the at-rules dropdown instead.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.4.0-alpha.3]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.4.0-alpha.3/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.4.0-alpha.3/</guid>
            <pubDate>Mon, 23 Mar 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Improved — unblock/ai/model_preference filter now receives the user-selected model and can always override.]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-improved">Improved</span> — <code>unblock/ai/model_preference</code> filter now receives the user-selected model and can always override.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI tool continuation prompt extracted to dedicated prompt file.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI tool continuation history builder extracted to separate method for clarity.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI continuation calls rejected by Anthropic due to missing <code>tool_result</code> for client-side tool calls.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI continuation calls failing with Google due to multiple consecutive user-role messages.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI continuation function response IDs mismatching provider's original call IDs.</li>
</ul>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat skill dropdown not opening when typing <code>/</code> after a newline.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat skill selection via click not removing the <code>/</code> command text from the input.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat skill selection removing text after the <code>/</code> command instead of preserving it.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.4.0-alpha.2]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.4.0-alpha.2/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.4.0-alpha.2/</guid>
            <pubDate>Mon, 23 Mar 2026 02:00:00 GMT</pubDate>
            <description><![CDATA[- Improved — AI builder prompt with collection directive and class reuse instructions for create_styles.]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-improved">Improved</span> — AI builder prompt with collection directive and class reuse instructions for <code>create_styles</code>.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI context for unused CSS selectors with compact property-name summaries grouped by collection.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI error messages now include verbose provider details for easier diagnostics.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Build script zip exclusion pattern dropping <code>includes/ai/tools/</code> and <code>class-tools.php</code>.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI tool calls dropped with OpenAI Responses API (only first candidate was processed).</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI continuation calls failing with OpenAI when tool call history was incomplete.</li>
</ul>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI image generation errors silently swallowed instead of shown in the chat UI.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI image generation failing with Google provider due to unsupported <code>aspectRatio</code> param.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.4.0-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.4.0-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.4.0-alpha.1/</guid>
            <pubDate>Mon, 23 Mar 2026 01:00:00 GMT</pubDate>
            <description><![CDATA[- Added — Key argument to request get and post providers for direct parameter access.]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-added">Added</span> — Key argument to request <code>get</code> and <code>post</code> providers for direct parameter access.</li>
<li class=""><span class="cl cl-added">Added</span> — Twig <code>loop</code> variable in loops: <code>index</code>, <code>index0</code>, <code>revindex</code>, <code>revindex0</code>, <code>first</code>, <code>last</code>, <code>length</code>.</li>
<li class=""><span class="cl cl-added">Added</span> — CSS importer <code>collection</code> directive to organize imports into named collections.</li>
<li class=""><span class="cl cl-added">Added</span> — AI prompt support for CSS <code>collection</code> directive and existing CSS reuse guidelines.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer with two-mode UI: Parse CSS to review categorized tree, then import.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer tree with selection preview, item deletion, and filtered import.</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-data">Dynamic Data<a href="https://docs.unblockwp.com/changelog/v0.4.0-alpha.1/#dynamic-data" class="hash-link" aria-label="Direct link to Dynamic Data" title="Direct link to Dynamic Data" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Key argument to request <code>get</code> and <code>post</code> providers for direct parameter access.</li>
<li class=""><span class="cl cl-added">Added</span> — Twig <code>loop</code> variable in loops: <code>index</code>, <code>index0</code>, <code>revindex</code>, <code>revindex0</code>, <code>first</code>, <code>last</code>, <code>length</code>.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Loop block inspector placeholder showing "products" instead of "posts" for query name.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Loop block inspector placeholder showing "author" instead of "user" for user query alias.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Variable block inspector placeholder showing "products" instead of "posts" for variable name.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai">AI<a href="https://docs.unblockwp.com/changelog/v0.4.0-alpha.1/#ai" class="hash-link" aria-label="Direct link to AI" title="Direct link to AI" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — AI prompt support for CSS <code>collection</code> directive and existing CSS reuse guidelines.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI CSS guidelines with unified directives reference (scope, editor, collection).</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="css-importer">CSS Importer<a href="https://docs.unblockwp.com/changelog/v0.4.0-alpha.1/#css-importer" class="hash-link" aria-label="Direct link to CSS Importer" title="Direct link to CSS Importer" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — CSS importer <code>collection</code> directive to organize imports into named collections.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer with two-mode UI: Parse CSS to review categorized tree, then import.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer tree with selection preview, item deletion, and filtered import.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer preserves directive metadata through the full parse/review/import pipeline.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer reorders entities by collection after import, keeping uncategorized last.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS importer directives (scope, editor) lost during tree-based import.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS importer duplicating selectors instead of merging when directive scope differs.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.4.0-alpha.1/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — Combobox dropdown showing empty 1px border when no options match.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Combobox error when accessing last item index on empty filtered options.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Auto-rename tag not working in HTML inspector after language switch to Twig.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Segmented control layout breaking in some component contexts due to flex override.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.3.0-alpha.2]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.3.0-alpha.2/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.3.0-alpha.2/</guid>
            <pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[- Improved — AI chat stream loader timer format from "1min 20s" to compact "1m20s".]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-improved">Improved</span> — AI chat stream loader timer format from "1min 20s" to compact "1m20s".</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI chat request timeout increased from 5 to 10 minutes for complex page generation.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat stream loader message pushing timer outside container on long image messages.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat assistant messages with leading/trailing whitespace causing floating content.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — MCP bridge surviving MySQL restarts/timeouts with automatic reconnection.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — MCP bridge result POST retrying on transient DB failures to prevent lost responses.</li>
</ul>
<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — MCP bridge idempotency guard preventing double-applied mutations on AI retries.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.3.0-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.3.0-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.3.0-alpha.1/</guid>
            <pubDate>Wed, 18 Mar 2026 03:00:00 GMT</pubDate>
            <description><![CDATA[- Added — WooCommerce integration: product data provider, currency filter, and AI prompt guidance.]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-added">Added</span> — WooCommerce integration: product data provider, currency filter, and AI prompt guidance.</li>
<li class=""><span class="cl cl-added">Added</span> — CPT-aware provider routing with automatic post field inheritance.</li>
<li class=""><span class="cl cl-added">Added</span> — Editor support for nested loops over Reference arrays (gallery, upsells, cross-sells).</li>
<li class=""><span class="cl cl-added">Added</span> — <code>unblock/ai/prompts</code> filter for integrations to extend AI system prompts.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.2.0-alpha.3]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.2.0-alpha.3/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.2.0-alpha.3/</guid>
            <pubDate>Wed, 18 Mar 2026 02:00:00 GMT</pubDate>
            <description><![CDATA[- Fixed — Font families crash when store properties are null instead of undefined.]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-fixed">Fixed</span> — Font families crash when store properties are null instead of undefined.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS purge crash when style options are updated via REST API.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.2.0-alpha.2]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/</guid>
            <pubDate>Wed, 18 Mar 2026 01:00:00 GMT</pubDate>
            <description><![CDATA[- Added — Form submission with REST endpoint, anti-spam protection, and email delivery.]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-added">Added</span> — Form submission with REST endpoint, anti-spam protection, and email delivery.</li>
<li class=""><span class="cl cl-added">Added</span> — Image preview thumbnails in AI chat stream loader.</li>
<li class=""><span class="cl cl-updated">Updated</span> — MCP session UI with tooltips, updated icons, and styling.</li>
<li class=""><span class="cl cl-updated">Updated</span> — Translations: add ai-chat to JSON map, translate new strings, use <code>_n()</code> for plurals.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Scope editor fallback CSS to only global and block-referenced selectors instead of all selectors.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Remove confirm dialog when switching AI agents.</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="forms">Forms<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/#forms" class="hash-link" aria-label="Direct link to Forms" title="Direct link to Forms" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Form submission with REST endpoint, anti-spam protection, and email delivery.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-assistant">AI Assistant<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/#ai-assistant" class="hash-link" aria-label="Direct link to AI Assistant" title="Direct link to AI Assistant" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Image preview thumbnails in AI chat stream loader.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Remove confirm dialog when switching AI agents.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — AI chat crash when font families store returns null.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-bridge">MCP Bridge<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/#mcp-bridge" class="hash-link" aria-label="Direct link to MCP Bridge" title="Direct link to MCP Bridge" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-updated">Updated</span> — MCP session UI with tooltips, updated icons, and styling.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — MCP session deregister using correct REST URL and POST method override.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-improved">Improved</span> — Scope editor fallback CSS to only global and block-referenced selectors instead of all selectors.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Editor fallback CSS persisting when switching to template editing mode within the post editor.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Prevent label click from focusing associated input in editor.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Iframe not rendering on first mount by switching to <code>srcdoc</code>.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Block editor interactions: prevent native drag, click jumps, and WP outline conflicts.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="infrastructure">Infrastructure<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.2/#infrastructure" class="hash-link" aria-label="Direct link to Infrastructure" title="Direct link to Infrastructure" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-updated">Updated</span> — Translations: add ai-chat to JSON map, translate new strings, use <code>_n()</code> for plurals.</li>
<li class=""><span class="cl cl-updated">Updated</span> — Prefix license transients with plugin slug and update uninstall cleanup.</li>
<li class=""><span class="cl cl-updated">Updated</span> — Skip empty <code>public/</code> folder in plugin zip packaging.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.2.0-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/</guid>
            <pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[- Added — AI chat sidebar with SSE streaming and tool system.]]></description>
            <content:encoded><![CDATA[<div class="changelog-excerpt"><ul>
<li class=""><span class="cl cl-added">Added</span> — AI chat sidebar with SSE streaming and tool system.</li>
<li class=""><span class="cl cl-added">Added</span> — MCP server integration with SSE-based bridge for external AI tools.</li>
<li class=""><span class="cl cl-added">Added</span> — Twig-compatible expression parser with filters, operators, and functions.</li>
<li class=""><span class="cl cl-added">Added</span> — Loop block with query system and pagination.</li>
<li class=""><span class="cl cl-added">Added</span> — CSS comment directives for global scope selectors.</li>
<li class=""><span class="cl cl-added">Added</span> — License SDK with external key support.</li>
</ul></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-assistant">AI Assistant<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/#ai-assistant" class="hash-link" aria-label="Direct link to AI Assistant" title="Direct link to AI Assistant" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — AI chat sidebar with SSE streaming and tool system.</li>
<li class=""><span class="cl cl-added">Added</span> — AI agents and skills system with extensible WordPress filters.</li>
<li class=""><span class="cl cl-added">Added</span> — AI tools: insert, replace, move, remove blocks, update content/attributes/scripts, create styles.</li>
<li class=""><span class="cl cl-added">Added</span> — AI snapshot undo/restore system for reverting AI changes.</li>
<li class=""><span class="cl cl-added">Added</span> — AI image generation and attachment support with WebP optimization.</li>
<li class=""><span class="cl cl-added">Added</span> — AI Google Fonts installation from chat.</li>
<li class=""><span class="cl cl-added">Added</span> — AI inline block script system for generated JavaScript.</li>
<li class=""><span class="cl cl-improved">Improved</span> — AI prompt system for quality, consistency, and multi-model support.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-bridge">MCP Bridge<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/#mcp-bridge" class="hash-link" aria-label="Direct link to MCP Bridge" title="Direct link to MCP Bridge" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — MCP server integration with SSE-based bridge for external AI tools.</li>
<li class=""><span class="cl cl-added">Added</span> — MCP session management with auto-reconnect.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-data">Dynamic Data<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/#dynamic-data" class="hash-link" aria-label="Direct link to Dynamic Data" title="Direct link to Dynamic Data" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Twig-compatible expression parser with filters, operators, and functions.</li>
<li class=""><span class="cl cl-added">Added</span> — Data providers: Post, Site, Request, Image, Collection, and more.</li>
<li class=""><span class="cl cl-added">Added</span> — Loop block with query system and pagination.</li>
<li class=""><span class="cl cl-added">Added</span> — Variable block for reusable queries and expressions.</li>
<li class=""><span class="cl cl-added">Added</span> — Dynamic data resolution in editor with batched API.</li>
<li class=""><span class="cl cl-added">Added</span> — Twig control structures and condition system in HTML inspector.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Data resolution system for reliability and performance.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="css--styling">CSS &amp; Styling<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/#css--styling" class="hash-link" aria-label="Direct link to CSS &amp; Styling" title="Direct link to CSS &amp; Styling" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — CSS comment directives for global scope selectors.</li>
<li class=""><span class="cl cl-added">Added</span> — Editor visibility toggle for CSS selectors.</li>
<li class=""><span class="cl cl-added">Added</span> — ContentStyles attribute for non-block element CSS matching.</li>
<li class=""><span class="cl cl-added">Added</span> — Custom Twig syntax highlighting for CodeMirror.</li>
<li class=""><span class="cl cl-improved">Improved</span> — CSS importer performance and undo for large stylesheets.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS rule insertion when index exceeds sheet length.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables rendering issues.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="editor">Editor<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/#editor" class="hash-link" aria-label="Direct link to Editor" title="Direct link to Editor" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — Per-block editor toggle for JS script execution.</li>
<li class=""><span class="cl cl-improved">Improved</span> — Block rendering cache with context support.</li>
<li class=""><span class="cl cl-improved">Improved</span> — PHP performance optimizations.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — Block operations in template-locked mode.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="infrastructure">Infrastructure<a href="https://docs.unblockwp.com/changelog/v0.2.0-alpha.1/#infrastructure" class="hash-link" aria-label="Direct link to Infrastructure" title="Direct link to Infrastructure" translate="no">​</a></h3>
<ul>
<li class=""><span class="cl cl-added">Added</span> — License SDK with external key support.</li>
<li class=""><span class="cl cl-added">Added</span> — Integrated fonts manager replacing font library modal.</li>
<li class=""><span class="cl cl-added">Added</span> — GitHub Actions release workflow.</li>
<li class=""><span class="cl cl-added">Added</span> — Comprehensive test suites (PHP 850 tests, JS 482 tests).</li>
<li class=""><span class="cl cl-added">Added</span> — Security hardening with capability-based expression restrictions.</li>
<li class=""><span class="cl cl-added">Added</span> — Custom field integration bootstrap for ACF, MetaBox, Pods, and JetEngine.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — XSS in escape filters and expression restriction bypasses.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.1.1-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.1.1-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.1.1-alpha.1/</guid>
            <pubDate>Fri, 16 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[- Improved — Automatically wrap image block inside figure element.]]></description>
            <content:encoded><![CDATA[<ul>
<li class=""><span class="cl cl-improved">Improved</span> — Automatically wrap image block inside figure element.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables generator error when no folders.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables not properly rendered in editor when no folders.</li>
<li class=""><span class="cl cl-fixed">Fixed</span> — CSS variables not properly rendered in editor when selector empty.</li>
</ul>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[v0.1.0-alpha.1]]></title>
            <link>https://docs.unblockwp.com/changelog/v0.1.0-alpha.1/</link>
            <guid>https://docs.unblockwp.com/changelog/v0.1.0-alpha.1/</guid>
            <pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Initial alpha release.]]></description>
            <content:encoded><![CDATA[<p>Initial alpha release.</p>]]></content:encoded>
        </item>
    </channel>
</rss>