Changelog
1.5.12
September 10, 2026
| Type | Details |
|---|---|
| new | Added a complete My Account component family for WooCommerce. The customer account area — login, registration, password reset, orders, addresses, account details, saved payment methods, and downloads — can now be composed in Etch like the rest of the store:
|
| new | Added an “Oh My Etch” submenu in the WordPress admin under the Etch menu, linking the account page straight into the builder. |
| new | Added the Order Received component family, closing the funnel after checkout. When a shopper completes checkout, the Etch-composed checkout page now shows the thank-you content instead of an empty checkout shell:
|
| new | Added four ready-made starter patterns to the Etch pattern library: Woo Account Simple and Woo Account Detailed for the account area, and Woo Order Received Simple and Woo Order Received Detailed for a checkout page that also composes the thank-you experience. Each pattern is a complete, neutral starting composition you can restyle in the builder. |
| enhancement | Expanded the live documentation with the complete My Account and Order Received guides: two component-family references, two step-by-step flow guides for the account page and the thank-you experience, and the full account and received dynamic data reference, plus updated Woo overview and recipes navigation. |
1.5.11
September 3, 2026
| Type | Details |
|---|---|
| fix | Fixed the cart showing products for a split second and then clearing on the cart page for stores that also use the classic WooCommerce add-to-cart form. The cart now recognizes the session created by that form when the page loads and keeps those products visible, and the stored cart session heals itself automatically for later requests. |
| fix | Fixed the Accordion inside a Facet Target no longer opening or closing after a filter is applied. Accordions inside facet results are re-initialized after every filter update, so they keep working while results change. |
1.5.10
August 20, 2026
| Type | Details |
|---|---|
| new | Added Meta Box relation filtering to Search, Select, Search Select, Radio List, and Checkbox List facets, in two new argument modes:
|
| fix | Each edition package now bundles its own correct asset manifest during packaging, instead of potentially including a manifest built for a different edition. |
| fix | Fixed the Drawer appearing instantly at its final position instead of sliding in when opened. The slide-in animation now plays for every direction, including drawers used by the mobile navigation, matching the documented behavior. The slide-out animation is unchanged. |
1.5.8
July 16, 2026
| Type | Details |
|---|---|
| new | Added color and image swatches to the Woo Attribute Selector. Swatches support automatic variation images, custom CSS mappings, optional visible labels, selected and unavailable states, and the same keyboard and screen-reader behavior as the existing radio modes. |
| new | Added a Woo Cart Amount component for shopper-facing subtotals, discounts, fees, shipping, tax, and final totals. It can follow the store’s tax display setting or explicitly show amounts including or excluding tax, and it distinguishes free shipping from shipping that has not been calculated yet. |
| new | Added a Woo Product Provider for sharing product and selected-variation state across a custom product layout. New Product Price, SKU, Availability, Description, Product Image, and Product Media components can now react together when a shopper changes a variation, while still rendering useful server-side and no-JavaScript output. |
| new | Added three purpose-specific Woo quantity controls: an optional purchase-draft stepper for Add to Cart, a button-based Cart Item Quantity stepper, and a Product Cart Quantity control for changing the confirmed cart quantity of the product or variation in the nearest Product Provider. Each control respects WooCommerce quantity, stock, decimal-step, and sold-individually rules. |
| new | Added a public Facet Events API for observing Select, Search Select, Checkbox List, Radio List, Map, Map Address, and Map Radius interactions; customizing newly inserted Facet Target content; and reacting to completed target updates and response metadata. |
| enhancement | Cart actions now share a confirmed-state mutation coordinator. Rapid quantity changes collapse safely to the latest valid target, different cart actions run in a deterministic order, failed requests no longer block later actions, and cart rows, totals, notices, and counts stay aligned with WooCommerce’s confirmed response. |
| enhancement | Expanded the live documentation with Product Purchase, Cart Items, Cart Totals, and a complete Facet Events API reference covering lifecycle diagrams, payload contracts, and integration examples. |
| fix | Fixed Accordion pages jumping to the bottom of a long panel when another item is opened. The newly opened item’s header now stays at the start of the visible page, making long accordion content easier to follow. |
| fix |
Fixed nested Navigation Menu Mobile transitions on iOS, kept the Close button stationary when the Back button appears, removed an invisible drawer-title layout item, and moved focus into an active child panel without triggering blocked |
| fix | Preserved the released visibility behavior of existing Woo Attribute Selector modes while ensuring unavailable or hidden swatches stay out of the layout and expose clear selected, unavailable, and fallback states. |
1.5.7
July 9, 2026
| Type | Details |
|---|---|
| enhancement | polished keyboard navigation for navigation components. |
| enhancement | polished new map addresses and radius facets |
1.5.6
July 6, 2026
| Type | Details |
|---|---|
| new | Added Serialized Multi-Value Meta mode for Search, Select, SearchSelect, Radio List, and Checkbox List facets. Sites can now filter fields that store multiple selected values inside a serialized string-array meta field, such as Meta Box, ACF, or custom multi-select and checkbox fields. Multiple selected values for the same serialized meta key match any selected value, combine with other active facets normally, restore from URLs, and keep option availability in sync. |
| new | Added map proximity filtering with Map Address Facet, Map Radius Facet, and Map Radius Facet Option. Visitors can search an address or ZIP code through the LocationIQ integration, choose a radius in miles or kilometers, and filter results by stored latitude and longitude meta. A paired Map Facet recenters, fits the selected radius, and draws the radius circle as the selection changes. |
| new | Added a complete Oh My IDEtch LocalWP Devkit documentation section, covering install and preparation, first-project setup, the daily check/sync workflow, command reference, troubleshooting, and shipping a production plugin ZIP. |
| enhancement | Improved keyboard and screen-reader accessibility across facet controls. Search, Select, SearchSelect, Radio List, Checkbox List, Reset, Pagination, and Load More facets now expose clearer control semantics, disabled states, keyboard behavior, and result announcements. Facet targets announce loading and result-count changes politely after updates. |
| enhancement | Improved keyboard and screen-reader accessibility of the Navigation Menu (desktop and mobile). Keyboard users now Tab into the menu once and move between dropdown triggers with the arrow keys, focus jumps to the first link when a dropdown opens, pressing Escape or clicking outside returns focus to the trigger, and open/close state is announced to screen readers. The mobile drawer now locks the background while open. |
| fix | Fixed ARIA semantics defects in the Navigation Menu and Drawer. The desktop menu trigger no longer falsely announces itself as a menu opener because the disclosure panel it controls is not a role=”menu”. The mobile menu’s submenu triggers now correctly reference the panels they open via aria-controls, mixed link/arrow rows now use a valid menu-item role, and standalone Drawers authored without a title now receive a generic accessible name instead of rendering as unnamed modal dialogs. |
1.5.5
June 24, 2026
| Type | Details |
|---|---|
| new | Added support for the main-query loop type in faceted filtering. A Facet Target can now filter the main query loop types in archive templates etc. |
| new | Added an optional caption slot to the Lightbox Item. Authored caption markup is shown inside the opened lightbox overlay, and the caption wrapper’s classes are copied onto the visible caption so each item can control its caption styling. Empty caption slots keep the existing no-caption behavior. |
| enhancement | Rewrote the entire WooCommerce documentation set for end users, with clearer explanations of cart, checkout, product, and selector component families and how they fit into real storefront flows. |
| fix | removed some duplicated props in some of the components |
| fix | Fixed the Stripe payment field failing to mount at checkout in the optimized checkout build, where the payment iframe never appeared and the field reported the provider as unavailable. |
1.5.4 – hotfix
June 16, 2026
| Type | Details |
|---|---|
| fix | Fixed a regression introduced in 1.5.3 where several facet controls showed duplicate fields in the Etch editor — most noticeably two “Value” fields , and a duplicated “Argument Mode” setting across Select, Radio List, Checkbox List, and Search Select facets (including Search Facet). Option values, query mappings, and all single- and multi-argument filtering behavior continue to work as before; only the extra editor fields are removed. |
1.5.3
June 16, 2026
| Type | Details |
|---|---|
| new | Added 18 component starter patterns for Accordion, Breadcrumbs, Carousel, Dialog, Drawer, Lightbox, Navigation Menu, Table of Contents, and Tabs, giving authors ready-made examples for common component setups. |
| new | Added 9 Woo starter patterns for product cards, product lists, carts, checkout layouts, and mini-cart drawers, making it faster to assemble Woo storefront flows from reusable starting points. |
| new | Added Lightbox group support so separate lightbox areas can intentionally open as one shared gallery while existing isolated lightbox behavior remains unchanged by default. |
| enhancement | Improved the Patterns panel so component starter patterns can be organized, typed, and displayed more consistently alongside the rest of the pattern library. |
| enhancement | Improved pattern synchronization reliability and moved remote pattern sync workflows to the dedicated patterns site. |
| fix | Fixed Facet Pagination and Load More behavior when a Facet Target starts from a base offset, preventing repeated or skipped results across paginated batches. |
| fix | Fixed Woo Stripe payment field mounting so Stripe UPE fields initialize more reliably in Woo checkout flows. |
1.5.2
June 10, 2026
| Type | Details |
|---|---|
| new | Added a Woo Variation Reset Button so product forms can clear selected variation attributes and return to an unselected state. |
| new | Added Woo variation gallery, and product gallery dynamic data so variable products can expose selector-aware image and gallery payloads for custom product media layouts. |
| enhancement | Improved Woo checkout address field styling with exposed UIChoice style controls for country and state selectors. |
| enhancement | Improved shared UIChoice mode styles with lower-specificity selectors, making authored select, radio, button-radio, chip, and swatch styles easier to override. |
| enhancement | Improved Woo documentation with custom browser event contracts, class-prop style ID references, checkout route-entry guidance, and updated dynamic data references. |
| fix | Fixed Woo checkout entry handling so Etch-authored checkout pages can restore Store API token carts after hard navigation, including checkout shells authored in block templates and template parts. |
| fix | Fixed Woo AttributeSelector controls inside Facet Target product loops so variation selectors hydrate again after filtered results are replaced. |
| fix | Fixed Woo AttributeSelector first-option behavior so automatic selections no longer steal focus or scroll the page. |
1.5.1
June 8, 2026
| Type | Details |
|---|---|
| new | Added official Woo Stripe gateway support for Woo checkout flows, including card, BLIK, Przelewy24, iDEAL/Wero, Bancontact, EPS, Alipay, SEPA, voucher, and buy-now-pay-later payment methods. |
| enhancement | Improved Woo checkout payment handling with gateway field slots, clearer payment method readiness states, safer payment payload preparation, and better checkout result handling. |
| enhancement | Improved Woo payment and checkout documentation, including the template integration contract and checkout gateway fields slot. |
| enhancement | Improved component organization by grouping components with native pattern categories, making related components easier to find. |
| enhancement | Improved documentation search setup and crawler configuration for the docs site. |
| fix | Fixed the Load More Facet so clicking the button can load the next batch reliably after the 1.5.0 release. |
| fix | Fixed duplicate Pagination Facet roots so multiple pagination controls for the same target stay in sync. |
| fix | Fixed Accordion open animation sequencing for smoother and more reliable open states. |
| fix | Fixed component default styles so fixed styles are registered automatically and consistently. |
| fix | Fixed Woo product dynamic data so product context is available in production. |
| fix | Fixed Woo Store API cart sessions so carts persist across hard navigation after adding a product. |
| fix | Fixed Woo cart item images so responsive srcset data is preserved. |
| fix | Fixed Woo coupon empty states so server-rendered coupon areas only show when coupon summary data exists. |
| fix | Fixed Woo checkout notices so payment adapter errors are surfaced to the customer instead of failing silently. |
| fix | Fixed Woo variation selection so multi-attribute products resolve complete purchasable combinations correctly. |
1.5.0
June 4, 2026
| Type | Details |
|---|---|
| new | Added Woo v1 — a complete WooCommerce component pack for building product, cart, and checkout experiences directly in Etch.
|
| new | Added a Woo runtime powered by the WooCommerce Store API, with live cart updates, add-to-cart actions, coupon actions, quantity changes, item removal, checkout field sync, shipping/payment selection, and checkout submission. |
| new | Added Woo dynamic data for products, variations, cart items, cart totals, coupons, shipping rates, payment methods, prices, media, purchase state, attributes, and selected variation context. |
| new | Added the new Load More Facet component so visitors can load the next batch of Facet Target results without switching pages. |
| new | Added separate span count display for facet option counts, giving Checkbox List, Radio List, Select, and Search Select facets more flexible styling for availability counters. |
| new | Added manual links and taxonomy controls to Breadcrumbs, so authors can insert custom crumbs and exclude automatic taxonomy crumbs from singular trails. |
| new | Added an icon-only trigger option to Navigation Menu Mobile, with a separate accessible label when visible trigger text is hidden. |
| new | New documentation site with dedicated docs for Woo components, facets, UI components, recipes, dynamic data, and an LLM-friendly hub page. |
| enhancement | Improved facet pagination and load-more behavior so rendered loop sizes can be inferred more reliably from the current target markup. |
| enhancement | Improved facet target behavior inside nested Etch loops so filtering preserves the correct loop context. |
| enhancement | Changed the component settings dashboard with a simpler component-management view and external documentation links. |
| fix | Fixed Pagination Facet initialization when range output is disabled. |
| fix | Fixed deep archive facet requests by raising the maximum supported offset for large result sets. |
| fix | Fixed mapped-bundle facet hydration when a filtered result set has zero items. |
| fix | Fixed facet option availability counts so separate counter spans update and reset correctly across checkbox, radio, select, and search-select options. |
1.4.1
May 14, 2026
| Type | Details |
|---|---|
| new | Added responsive accordion mode to Tabs — tabs can now switch into a true accordion at a configured mobile breakpoint, with Etch preview controls, optional chevrons, styling hooks, and accordion-specific keyboard behavior. |
| new | Added Carousel transition effects — choose fade, coverflow, flip, cube, cards, or creative effects from structured controls while keeping the original slide effect as the lightweight default. |
| new | Added 15 new patterns to the Pattern Library:
|
| enhancement | Improved responsive Tabs behavior so authored trigger and panel content is preserved when moving between desktop tabs and mobile accordion layouts. |
| enhancement | Improved Carousel effect handling so custom JSON can refine the selected effect, but cannot accidentally switch the carousel into a different effect mode. |
| enhancement | Improved facet request validation and response caching for complex filter setups, making availability data, mapped bundle filtering, and cached responses more reliable. |
| enhancement | Improved license management requests in the admin app so status checks, activation, deactivation, and refresh actions use consistent authenticated request handling. |
| fix | Fixed Carousel state preservation after browser visibility changes, keeping the active slide and navigation state stable when a tab is hidden and shown again. |
| fix | Fixed facet availability caching edge cases, including corrupted cache payloads and empty availability results. |
| fix | Tightened facet request handling for invalid offsets, unsupported availability descriptors, query budget limits, and untrusted forwarded headers. |
1.4.0
May 8, 2026
| Type | Details |
|---|---|
| new | Added a new Breadcrumbs component — automatically render WordPress-aware breadcrumb trails for pages, posts, custom post types, archives, taxonomy pages, search results, and 404 pages, with optional schema output and styling controls. |
| new | Added a new Table of Contents component — generate navigable heading links from page or post content, with nested lists, smooth scrolling, active-section highlighting, hash syncing, and dynamic content support. |
| fix | Readable facet URLs — facet links now use clear query params like |
| enhancement | Expanded the Search Facet with configurable query argument modes — search inputs can now target standard WordPress query args, meta fields, taxonomy terms, dates, ACF relationship fields, or multiple query arguments with AND/OR behavior. |
| enhancement | Added facet cache diagnostics in the admin app — site admins can view local cache-tier counters and turn collection on or off, helping confirm how facet caching behaves in production without exposing visitor data. |
| new | Added 2 Blog Post patterns to the Pattern Library, including layouts with breadcrumbs, sticky sidebars, article content structure, and responsive mobile ordering. |
| fix | Fixed Lightbox images on sites using lazy-loading plugins — full-size images now resolve from |
| fix | Fixed public facet requests so visitor-facing filters no longer send a REST nonce by default, while authenticated nonce behavior remains available through a compatibility filter. |
| fix | Fixed Search Facet URL hydration so query argument values restored from the address bar are applied correctly |
| fix | Fixed readable facet URL edge cases, including repeated range values and reset behavior across single-target and multi-target pages |
1.3.0
April 29, 2026
| Type | Details |
|---|---|
| new | Added shareable filter URLs for facets — filter states (search, checkbox, radio, select, tags, pagination, and map viewport) are now written to the browser address bar, so you can copy, bookmark, and share the exact filtered view with |
| new | Added mapped bundle query flows for facets — map a single facet value to multiple query targets at once, so selecting one option can filter several result sets simultaneously without extra setup. |
| new | Added ACF Relationship argument mode for facets — filter posts based on ACF relationship field values directly through the facet system.
|
| new | Added Date Query argument mode for facets — filter posts by authored date ranges using facet options, giving visitors simple date-based filtering controls.
|
| new | Added meta repeater support for facet options — stack multiple meta query clauses inside a single checkbox, radio, search-select, or select option for more precise filtering logic.
|
| new | Added virtual scrolling to the Patterns panel — the pattern browser now loads smoothly regardless of how many patterns are in the catalog, with no lag when scrolling or switching categories.
|
| new | Added 15 new patterns to the Pattern Library:
|
| enhancement | Debug log output is now guarded behind the dev mode flag, keeping production logs clean and quiet. |
| fix | Fixed the map facet so the loading spinner no longer gets stuck when a fetch request fails — the map now recovers gracefully and shows an empty state instead. |
| fix | Fixed map facet programmatic bounding-box updates that could unexpectedly shift the map viewport during filtering. |
| fix | Fixed a facet scope snapshot issue where map and pagination clauses were not always captured correctly, which could cause filters to lose context. |
1.2.0
April 23, 2026
| Type | Details |
|---|---|
| new | Added 31 new patterns to the Pattern Library:
|
| new | Added responsive breakpoint controls to the Carousel — configure how many slides are visible and the spacing between them at different screen widths, so carousels look great on every device. |
| new | Added external pagination dots for the Carousel — place dot navigation anywhere on the page and link it to a carousel for flexible layout control. |
| new | Added a centered slides mode for the Carousel — the active slide is centered with adjacent slides peeking in from the sides, perfect for hero sections and featured content. |
| new | Added infinite scroll loading for facet targets — results load automatically as users scroll down, eliminating the need for manual pagination in long result lists. |
| new | Added custom json mode for carousel – you can just paste JSON config for swiper carousel setting instead of using props settings for it Remeber that you need to wrap a JSON with additional {} in etch prop field so etch API stores its and parses it correctly. EG GPT gives you this snippet: {“name”: “woji”}. In etch it needs to be stored as: {{“name”: “woji”}}
|
| new | Added a scroll-to-top option for pagination facets and facet targets — after filtering or paginating, the page smoothly scrolls back to the results area so users never lose context. |
| new | Added listed and selected marker states for map facets — markers now show distinct icons for items appearing in the current result set versus the one currently selected with an open popup. |
| new | Added a fallback tag option for facet targets — choose the wrapper element type so facets integrate properly inside table rows and other semantic containers instead of defaulting to a generic wrapper. |
| fix | Improved the reliability of the pattern library sidebar on slower servers — the app now waits patiently (up to 2.5 minutes) for the editor to finish loading before mounting, instead of giving up after just a few seconds. |
| fix | Fixed the navigation menu so the dropdown width no longer snaps abruptly during the close animation — it now holds the correct width until the transition finishes. |
| fix | Fixed facet option labels containing special characters (like `&`) so they display correctly instead of showing escaped text. |
| fix | Fixed carousel slides per view to support the `auto` option and fractional values — slides are no longer forced to fill the entire carousel width when using content-driven or partial-visibility layouts. |
| fix | Fixed a visual flash on facet targets during the initial page load — content that is already visible from the server no longer briefly fades out while filters initialize. |
| fix | Fixed map facet clustering so markers outside the current result set stay properly grouped, reducing stray single-bubble clusters. |
| fix | Fixed map facet marker popups so slot content loads reliably for all markers in scope, not just the visible ones. |
| fix | Fixed map-paired targets so they remain hidden until the map has finished its first hydration, preventing a flash of unfiltered content. |
1.1.1 hotfix
April 16, 2026
| Type | Details |
|---|---|
| fix | Improved the reliability of the pattern library sidebar on slower servers — the app now waits patiently for the editor to finish loading before mounting, instead of giving up after just a few seconds. |
1.1.0
April 15, 2026
| Type | Details |
|---|---|
| new | Patterns Library v1 |
1.0.13
April 7, 2026
| Type | Details |
|---|---|
| new | EXPERIMENTAL: Map Facet component family. This component is not finished yet and might (probablay will) have some breaking changes in the future. But you can have some fun with it on staging/local instance. Just don’t use it in prod yet. |
| enhancement | Implementation of etch conditional prop for all Oh My Etch components for better user experience when using Oh My Etch Component. |
| fix | Fixed several edge cases when multiple facet types are used together, improving consistency across search, checkbox, radio, pagination, and reset filters. |
1.0.12
April 1, 2026
| Type | Details |
|---|---|
| new | Added a new “Reset” button component that clears all facet filters at once, making it easy for users to start a fresh search without manually unchecking each option. |
| new | Added keyboard navigation support to radio button facets, so users can move through options using arrow keys for a more accessible experience. |
| fix | Fixed reliability issues with facet filters on cached pages, ensuring filters work correctly even when pages are served from cache. |
| fix | Improved facet template storage to be more resilient and self-healing when edge cases occur. |
| enhancement | Improved facet system architecture for better maintainability and reliability, resulting in more consistent filter behavior across all facet types. |
| enhancement | Updated internal code quality tooling to ensure continued stability and code consistency. |
1.0.11
March 30, 2026
| Type | Details |
|---|---|
| new | Added support for default selected values in Select and Checkbox facets, so filters can start with pre-defined choices already applied. |
| fix | Improved overall facet reliability, especially when filters load quickly or multiple requests happen close together. |
| fix | Fixed cases where facets could appear ready before all filter data was fully available. |
| fix | Fixed an issue where Checkbox facets using the IN meta key operator could fail when only a single value was selected. |
| fix | Fixed facet targets so they correctly pick up and use the initial filter conditions defined by the author. |
| enhancement | Improved internal validation so facet behavior is more consistent across different configurations. |
1.0.10
March 27, 2026
| Type | Details |
|---|---|
| fix | Improved block and pattern loading reliability in some environments. |
| enhancement | Added extra safeguards for startup loading and frontend asset paths. |
1.0.3
August 26, 2026
| Type | Details |
|---|---|
| new | Projects created before Devkit 1.0 now have a supported migration path. A new migrate-legacy-project skill walks an existing project across the DevKit 1.x boundary: updating the devkit surface, porting the project registration surface from the project template, repinning the Builder runtime, and finishing with the same check, sync, and verification gates as a fresh project. |
| new | Projects can now compose user-owned premium components (DWC, Oh My Etch, WooCommerce families) through the typed builders. The project declares the exact keys it composes in a reviewed src/Site/external-component-contracts.json file; project checks, LocalWP sync, and the runtime catalog all read the same declaration, and an undeclared key still fails closed with the exact missing key. The build-etch-site skill documents the file shape and how to export it from a live site. |
| fix | Runtime verification now explains itself when the site has no Builder persistence ledger. Sites that were never applied through the current Site apply path — including projects still registering content through the older direct-registration path — get one clear, actionable outcome instead of a wall of per-record mismatch failures that look like content drift. |
| fix | Runtime verification now validates component composition against the project’s own component definitions, matching what project checks already do, instead of against whatever the runtime happens to have persisted. A site that has not been applied yet verifies the same way it compiles. |
| fix | Syncing a project whose registration report predates the persistence evidence contract now stops with a clear instruction to port the current file, instead of a fatal undefined-method error. |
| enhancement | localwp:doctor now warns when a project’s plugin bootstrap predates the sync-registration guard. Without that guard, every request in a local environment re-registers the whole site, which can slow pages down by orders of magnitude; the warning names the fix instead of leaving it to be discovered through profiling. |
| enhancement | The devkit update notes now state explicitly that a project does not inherit devkit fixes automatically, and point bootstrap-drift warnings at the migration skill. |
| enhancement | Projects still on the older registration path are explicitly told that orphaned content detection (noticing when a renamed or removed component, pattern, or page leaves stale content behind) only works once the registrar migration is complete. |
1.0.2
August 20, 2026
| Type | Details |
|---|---|
| fix | Project checks no longer crash while collecting component schemas when one component embeds another component. The starter site now ships a demo of exactly that pattern, so this stays covered. |
| fix | First-time site applies now succeed for projects where one component embeds another. Components are applied in dependency order, so every embedded component exists before the component using it is built; previously such projects could only be applied on top of an earlier apply. |
| fix | Project checks no longer reject valid nested loops authored in serialized markup, such as a dropdown looping the children of the current menu item inside a menu loop. The bundled Builder runtime now mirrors Etch’s own loop rule exactly: a loop preset id must be registered in the site definition, and a loop without one must declare where it reads its items from. |
| fix | Registering website-level stylesheets is now an admitted authoring path, so projects following the documented global-CSS pattern pass project checks. |
| new | Slot filling in serialized markup is now validated against the exact component instead of being rejected outright. Unknown slot names, missing names, duplicate fills of the same slot, and slot content placed where Etch would ignore it are reported as clear compile errors, while correct serialized slot usage finally passes project checks. |
| new | Project checks on a machine without WordPress now see nested component markup the same way the WordPress runtime does. |
1.0.1
August 18, 2026
| Type | Details |
|---|---|
| enhancement | Site applies are now safer and self-healing. The bundled Builder runtime serializes applies behind a site-wide lock, recovers claims left behind by crashed runs, writes stylesheet options rollback-safe, and adopts matching Builder-authored handoff styles instead of conflicting with existing copies. |
| enhancement | Migrating a project to native Etch loop contracts no longer requires manual database cleanup: stale Builder-owned loop presets retire automatically when the site is applied. |
| enhancement | Custom post types committed in the project compile without a live WordPress connection, so project checks that used to need a running site now finish offline. |
| enhancement | Validated composition with Oh My Etch components is now an admitted authoring path in the generated guidance. |
| enhancement | The production runtime reports recipe verification as unavailable when it cannot run it, instead of pretending it matched. |
| new | The DevKit bundles the honestlydesign/etch-builders runtime, pinned per release. Builder API changes live in their own changelog: https://github.com/honestlydesign/EtchBuildersAPI/blob/main/changelog.md. DevKit release notes cover the DevKit workflow and summarize what each Builder repin changes for projects. |
1.0.0
August 18, 2026
| Type | Details |
|---|---|
| new | Oh My IDEtch is now a LocalWP-first DevKit. The supported product is a single DevKit ZIP that scaffolds an agent-ready LocalWP project: shared LocalWP commands, generated agent instructions and skills, and a project template. The previous starter packaging and the wp-env runtime are gone. |
| new | Sites are authored through the typed Builder 2.0 API. A project is described as a typed Site Definition and applied through immutable compiled plans, making every apply predictable and idempotent, with the site compiler deepening project checks. |
| enhancement | Generated agent guidance fails closed. Skills and instructions are generated from the installed catalog and validated; unsupported intents get explicit refusal guidance instead of improvisation. |
| new | LocalWP wrappers are the only way the DevKit talks to WordPress. Sync fails closed when the environment is not what it expects, and runtime verification is fast and deterministic. |
| enhancement | Onboarding, skills, and CMS media workflows are collapsed onto LocalWP-only wrappers, removing the split guidance of the previous runtime era. |
2.1.2
September 10, 2026
| Type | Details |
|---|---|
| fix | Real error messages in every client. When a tool failed, strict AI clients rejected the whole response with a confusing schema-mismatch error, hiding what actually went wrong — a Project Memory revision conflict, for example, looked like a broken tool. Error responses no longer carry machine-readable result data, so every client now shows the real error message. |
| fix | ACSS detection works in safe mode. |
| enhancement | Updated Etch libraries. The bundled Etch connection and API contract libraries move to their latest releases (Connector 0.2.0, Public API 0.10.0). This adds support for the upcoming |
2.1.1
August 26, 2026
| Type | Details |
|---|---|
| fix | Fixed a connection failure that affected Claude Code, Cursor, and several other current MCP clients. The server only accepted the newest protocol generation, which most installed clients do not speak yet, so they were refused at connection time and no tools appeared. The server now accepts both the newest and the established protocol generations, so all of the clients listed in the README connect again, while clients that already speak the newest generation continue to use it. |
2.1.0
August 18, 2026
| Type | Details |
|---|---|
| new | Added the Project Digest, a short living brief the agent writes about your project: its purpose, conventions, recent work, and open threads. The new etch_write_project_digest tool stores it, and the next session’s memory recall returns the digest before the detailed record Brief — so work resumes with narrative context instead of bare facts. The digest is flagged stale once the underlying records have advanced 10+ revisions or the digest is older than 7 days, prompting a refresh instead of trusting outdated prose. |
| new | Added a per-project activity log. Every successful change (block edits, saves, style updates, and other non-read operations) is recorded as a bounded event — the tool plus identifying hints, newest 50 kept. A returning session can see exactly what was recently done, and the log feeds the digest’s recent-work view. |
| new | The deterministic records remain authoritative. The digest is derived context only: it is screened and size-bounded like every other memory value, and writing it never advances the record revision. |
2.0.0
August 18, 2026
| Type | Details |
|---|---|
| new | BREAKING CHANGE: Target selection is now explicit. The previous active-target alias tools and the process-global last-result tool are gone; list targets with etch_list_targets and select one with etch_select_target. Update any scripts or prompts that relied on the old aliases. |
| new | Rebuilt the server on the MCP v2 (2026) protocol with a fully typed tool surface. Every tool declares validated input and output schemas, results arrive as structured content your agent can rely on, and malformed input returns a structured error inside the same tool response instead of a failed call. |
| new | Added machine-readable effect annotations. Every tool is annotated with its real effect — read, session state, immediate persist, buffered document edit, save, history, or navigation — so supporting clients can flag destructive calls before running them and agents can reason about what a tool will do. |
| new | Added Project Memory with a recall-first workflow. Six tools — etch_remember_project_memory, etch_recall_project_memory, etch_inspect_project_memory, etch_correct_project_memory, etch_forget_project_memory, etch_recover_project_memory — let the agent keep bounded, allowlisted facts about your site and recall them at the start of every session. Memory is machine-local, keyed by one normalized Etch site URL, keeps staging and production isolated, and requires an explicit recovery step if the site URL is ever rebound. It never stores credentials, raw page payloads, or your user skill files. |
| new | Added a shared connector. Multiple MCP clients can now run at the same time and share one connector process — the first client to start hosts it, later clients detect and reuse it — so Claude Code, Codex, opencode, Cursor, Windsurf, and ZCode can all have etch-agent configured simultaneously. Only one agent should mutate the same Etch target at a time. A custom –connector-ws-port still runs standalone for backward compatibility. |
| new | Added Automatic.css (ACSS) support. etch_detect_acss inspects the live builder tab and reports whether the site runs ACSS, its version, and a peek at the resolved palette and scale. When ACSS is detected, the bundled acss skill teaches the agent the token-first workflow — variables over invented values, the t-shirt spacing scale, the 7-step shade system, contextual backgrounds with automatic text color, the .scheme–dark + light-dark() dark-mode flow, and the b:/s:/m:/l:/xl:/xxl: breakpoint prefixes — with a full variable catalogue in the companion reference. |
| new | Added an agent-actionable onboarding document. The package ships onboarding.md, which detects the user’s harness, merges the correct MCP entry into the right config file, and verifies the connection. Point your agent at it to install etch-agent for you. |
| new | The release ZIP no longer embeds the etch-party connector. It includes a locked server manifest and lockfile instead, and the onboarding agent installs the dependencies on first launch before starting the server. |
| fix | Remote connector calls are bounded by a client-side timeout, so an unresponsive connector can no longer hang the agent. |
| fix | Connector targets missed during a brief disconnect are retained for a grace period instead of disappearing from the target list. |
| fix | Concurrent Project Memory writes from two processes are serialized, preventing corruption when multiple clients capture memory at once. |
| fix | Filtered style listings are no longer mistaken for complete inventories, so a partial filtered view cannot overwrite the full remembered style inventory. |
| fix | A malformed local user skill is skipped with a clear report instead of disabling the entire skill tool surface. |