# Changelog

> Release history and new features for the Storefront MCP

Canonical URL: https://fa7e86e3d553:3005/changelog

Track new tools, breaking changes, and improvements to the Storefront MCP.

## 2026-09-19 - Versioned Island Runtime Compatibility

### Safer published pages

- Added explicit island runtime requirements to new portable page bundles.
- Kept older bundle versions compatible through the immutable legacy runtime.
- Allowed normal hosted pages to receive compatible fixes within the same
  major release without silently crossing a breaking boundary.
- Kept experiment render artifacts on the exact script and stylesheet selected
  when the artifact was created.

### Immutable releases

- Added content-hashed runtime JavaScript and CSS with integrity metadata.
- Added immutable per-release island schema snapshots and a short-cached
  release manifest.
- Added release states so candidate or yanked builds are never selected for
  normal live rendering.

### Release and rollback safety

- Added Changesets-based package versioning and semver checks for island
  contract changes.
- Made runtime publication complete before the shared renderer deployment.
- Added a read-only runtime reference audit and an explicit confirmation gate
  before an unreferenced yanked release can be deleted.
- Documented separate proof boundaries for local verification, asset
  publication, renderer deployment, and browser validation.

---

## 2026-09-16 - Cart Design and Documentation Parity

### Cart profiles

- Documented the `CartDesignSpecV1` contract, visual presets, design tokens,
  shell controls, module styling, responsive overrides, and preview states.
- Added the typed `design_patch` MCP workflow with merge-patch removal
  semantics and required `expected_version` concurrency checks.
- Linked Cart guidance directly to the active workspace's Cart screen.

### Tracking and app configuration

- Replaced unavailable tracking guidance with the tracking tags and page
  analytics available on Lexsis storefront pages.
- Documented GA4, GTM, Meta, TikTok, Pinterest, Klaviyo, custom body markup,
  and the supported product-view, add-to-cart, and checkout event toggles.
- Added stable app links for Design Library, Cart, Tracking tags, Domains,
  Forms, Reviews, Analytics, and A/B Testing.
- Kept theme-editing documentation pointed at the main Design Library instead
  of an editor-specific route.

### Contracts and skills

- Synchronized the generated 58-island contract catalog with the canonical
  storefront skill references.
- Strengthened storefront synchronization checks for active island pages and
  deprecated-island catalog coverage.

### Pages documentation

- Renamed the page-system documentation section and public URLs to `Pages`.
- Added permanent redirects from the previous section URLs.
- Updated documentation search to use the `pages` category while retaining
  compatibility with previously indexed content.

---

## 2026-09-14 - Separate Asset Search and Selection

- Changed `lexsis_asset_library` action `search` to show read-only search
  evidence: query, filters, result count, pagination state, and previews.
- Added `lexsis_asset_select` action `select` for interactive existing-asset
  selection.
- Kept the selector's category browsing, 50-asset pagination, keyboard
  multi-select, and ordered name, ID, and original-URL response.
- Clarified that agents continue after search and wait only after opening the
  selector.

---

## 2026-09-14 - Storefront Island Runtime Contracts

### Responsive product media and swatches

- Fixed ProductGallery mobile sizing so carousel roots, viewports, tracks,
  slides, pictures, images, and thumbnail rails stay within their container.
- Added the safe `--lx-product-gallery-mobile-ratio` default of `1 / 1` for
  mobile swipe galleries.
- Standardized media fit precedence as per-media `fit`/`objectFit`, then gallery
  `objectFit`, then `cover`.
- Made image VariantSwatches a horizontally scrollable 68px square row on
  narrow screens while preserving configured desktop columns and 44px minimum
  interaction targets.

### Variant, media, and purchase coordination

- Standardized `navigation:"none" | "arrows" | "floatingArrows"` across
  ProductHero, ProductGallery, and MediaCarousel.
- Added variant-aware `focus`, `filter`, and `replace` media modes with URL,
  media-ID, `variantId`, and `variantIds` matching.
- Fixed initial `selectedId` hydration, scoped late-listener replay, multiple
  synchronized BuyBoxes, and shared BuyBox/StickyBar purchase state.
- Added live inventory handling so sold-out variants remain visible, disabled,
  dimmed, and labelled for assistive technology.

### Runtime QA and authoring

- Added hydration diagnostics for registration failures, invalid props, empty
  output, missing controls, island exceptions, and event-order failures.
- Added compiler warnings recommending native media islands over raw image and
  video markup.
- Added the supported accessible FAQ/Accordion island with single/multiple
  modes, initial state, keyboard navigation, icons, and reduced motion.
- Kept deprecated props compatible while requiring current props in newly
  generated examples.

### Cart V2

- Documented Cart V2 as the default for every storefront. New source omits the
  deprecated `use_cart_v2` compatibility field.
- Made the effective cart profile the source of DrawerShell and cart module
  composition instead of page-authored cart markup.
- Verified standard BuyBox variant, quantity, loading, success, error, drawer,
  header cart, mobile, and multiple-sync behavior.
- Added clear preview validation when purchase controls have no effective Cart
  V2 profile.

### Portable bundle previews

- Stopped compile-only operations from writing bundles to production container
  storage or returning unusable `/bundle/{hash}` URLs.
- Kept compile artifacts bounded and short-lived until they are attached to a
  draft.
- Made persisted R2 bundles authoritative for hosted `/v/{slug}?preview=1`
  previews, with explicit errors for missing, invalid, or unavailable storage.

---

## 2026-09-11 - Separate Asset Import and Upload Tools

- Added `lexsis_asset_import` action `import` for URLs, base64 image data, and
  conversation attachments.
- Changed `lexsis_asset_upload` to action `upload` for interactive local image
  and video selection.
- Kept asset processing, deduplication, responsive variants, and upload
  transport unchanged.

---

## 2026-09-09 - Bundle Configurator and Sticky Purchase Controls

### Build-your-own bundles

- Added the `BundleConfigurator` commerce island for exact item limits,
  repeated variants, multi-variant product selection, completion progress, and
  a sticky bundle summary.
- Added fixed-total, percentage, and fixed-discount pricing tiers with
  mixed-currency and unavailable-variant protection.
- Added grouped multi-line cart submission, private bundle line attributes,
  Shopify Cart Transform confirmation, product-ID resolution, and the
  `bundle:add` event payload.
- Added a live island preview, schema validation, styling parts, and complete
  implementation guidance.

### Sticky purchase controls

- Added optional StickyBar variant and quantity controls with responsive layout and styling hooks.
- Added opt-in two-way synchronization with rendered and headless BuyBoxes through matching `syncKey` values.
- Preserved scoped subscription and tier selections, with read-only sticky controls for tier-priced offers.
- Added shared pending locks, unavailable-variant protection, and accessible cart retry feedback.

---

## 2026-09-08 - Managed Motion Runtime

### Open-ended animation with bounded execution

- Added capability-based custom motion for WAAPI, GSAP, SVG, Canvas 2D,
  WebGL, Three.js, Lottie, Rive, video, pointer, scroll, and runtime events.
- Kept visual composition agent-authored instead of restricting pages to named
  scenes or hardcoded animation components.
- Added lazy runtime loading, scoped DOM access, automatic cleanup, offscreen
  pausing, reduced-motion strategies, and adaptive DPR and frame-rate tiers.

### Compiler and runtime safeguards

- Added AST validation for undeclared capabilities, direct browser globals,
  raw timers and observers, arbitrary networking, dynamic code, unbounded
  loops, programmatic clicks, and island-internal access.
- Added per-section and per-page loop limits, WebGL context limits, callback
  budgets, DOM growth protection, and static-content recovery when motion is
  disabled.
- Added managed lifecycle protection to compatibility section scripts and
  first-party pinned GSAP loading with bounded fallback behavior.

---

## 2026-09-07 - Intent-Aware Fast Drafts

### Earlier reversible previews

- Storefront skills now infer `fast-draft` versus `production-ready` from the
  complete request instead of requiring a trigger phrase.
- `/generate` creates and surfaces an unpublished `DRAFT_CREATED` preview
  before exhaustive hosted QA, then upgrades it to `DRAFT_READY` after
  synchronization and blocking checks pass.
- Publishing, paid generation, deletion, and destructive operations retain
  their explicit authorization boundaries.

### Reliable skill installation

- Packaged every shared reference needed by an individual skill inside that
  skill's own folder, fixing missing `storefront-engine` documents in Codex and
  Skills CLI installations.
- Added workspace-file compile preparation, font stylesheet validation, and a
  distinct `draft-created` workspace validation phase.

---

## 2026-09-06 - Reliable Collection Pages and Reusable Sections

### Source-first rendering

- Made authored page sections the source of truth for Header, Announcement,
  Navigation, content, and Footer order in both local and hosted previews.
- Added portable page bundles so the renderer can use the same compiled
  artifact locally and when hosted.
- Strengthened page editing with version, source-hash, idempotency, diff, and
  integrity checks.

### Commerce and visual QA

- Added complete product and variant resolution for editorial collections,
  native responsive Quick Add, media-anchored card actions, and cart-state
  verification.
- Improved pre-hydration, layout stability, asset thumbnail fallbacks, and
  responsive visual QA at mobile, tablet, and desktop widths.

### My templates

- Added versioned user-owned section templates for reusable Headers, Footers,
  Announcement bars, product sections, and future island compositions.
- Added MCP actions to list, retrieve, create, update, apply, publish, and
  archive reusable sections. Applying a template copies its source into the
  page so later template changes do not alter existing pages.

---

## 2026-09-04 - Storefront Skills v6.0.0

### Focused ten-command workflow

- Released ten supported storefront commands:
  `/setup`, `/plan-page`, `/visual-page`, `/asset-prep`, `/generate`,
  `/publish`, `/analyze-page`, `/optimize`, `/experiment`, and `/cart`.
- Removed the public `/browser-analyze`, `/remix`, `/search-docs`,
  `/extract-island`, and `/storefront-engine` commands. Reference analysis now
  runs through `/analyze-page`, while shared storefront-engine material remains
  internal workflow knowledge.
- Kept every command independently invokable. Explicitly skipped stages are
  recorded instead of being silently run by another skill.

### Reusable setup and local artifacts

- Added `/setup` as a one-time workflow for saving reusable brand guidance and
  separate theme CSS files across multiple stores and themes.
- Added readable page workspaces containing the plan, manifest, visual source,
  production source, QA report, and page assets.
- Made `lexsis-source.html` the editable source of truth for draft creation and
  later section edits.

### Visual previews and draft synchronization

- Split visual design from production generation. `/visual-page` now creates a
  readable local mockup and can regenerate as many local revisions as needed
  before a Lexsis draft is created.
- Added dry-run compilation and exported island-runtime hydration to local
  previews. Complex components such as `ShoppableVideoFeed` can render with
  valid preview media and props; static fallbacks remain available when live
  preview data is unavailable.
- Kept the local preview close to normal browser behavior without adding a
  restrictive preview-only content-security policy or network overrides.
  Hosted draft QA remains authoritative for variant, cart, and checkout
  behavior.
- Added local-source-first edits, section hashes, expected-version checks, and
  changed-section patching to prevent accidental remote overwrites.

### Publishing boundary

- `/generate` now owns readable production source, complete compilation,
  draft-only creation, synchronization, and hosted QA.
- `/publish` remains a separate operation and requires matching source and
  remote versions, passing QA, and explicit user approval.

---

## 2026-09-02 - Skill Update Documentation

### Skill maintenance

- Added `npx skills update` to the [Skill Packs](/getting-started/skill-packs)
  guide for updating globally installed skills from all registered sources.
- Clarified that AI clients should be restarted or reloaded after updating so
  they discover the latest skill instructions.

---

## 2026-08-31 - Funnel Runtime

### New engagement island

- Added the [FunnelRuntime](/islands/engagement/funnel-runtime) reference for
  server-resolved storefront quizzes, offers, gift reveals, and multi-step lead
  capture.
- Documented inline and modal placement, trigger behavior, styling hooks, and
  the published-runtime contract.

---

## 2026-08-30 - OAuth-Only MCP Authentication

### Browser authorization and workspace consent

- Made browser OAuth the only supported user authentication for the hosted
  Lexsis MCP.
- Added workspace selection and Read, Build, or Publish access presets to the
  Lexsis consent flow.
- Kept Client ID Metadata Documents as the preferred client-registration path,
  with Dynamic Client Registration as fallback for compatible clients.

### API-key removal and scope enforcement

- Removed `lx_` API-key authentication and the legacy MCP compatibility flag.
- Existing API-key MCP connections must remove and reconnect the server, then
  complete browser authorization.
- Kept short-lived `lxs_` service credentials internal to OAuth exchange and
  Lexsis machine-to-machine calls; they are not a user setup method.
- Added backend enforcement that prevents Build grants from invoking publish,
  unpublish, delete, rollback, or winner-scaling operations.

### Documentation and tool contract

- Migrated current setup, workspace, publishing, skill-pack, and troubleshooting
  documentation to the 18 consolidated `lexsis_*` tools.
- Removed copied bearer-token and authenticated STDIO instructions. STDIO is
  now documented only as explicit unauthenticated local development.

---

## 2026-08-28 - Consolidated MCP Tool Surface

### Smaller, stable tool catalog

- Replaced the 72-tool public surface with 18 stable tools organized around
  read-only domains, reversible draft changes, sensitive live operations, and
  four dedicated interactive panels.
- Added `lexsis_discover` for on-demand action schemas and former-tool lookup.
- Reduced the serialized tool-definition payload from about 68 KB to about
  16 KB.

### Hard cutover and safety

- Removed the legacy MCP server and local legacy-tool flag. `/mcp/legacy`
  returns HTTP 410 instead of mounting a second MCP surface.
- Kept existing operation handlers and validation contracts behind the new
  action routers.
- Kept dry-run page compilation on the read-only `lexsis_pages` router and
  made consolidated page creation draft-only.
- Consolidated all reversible writes under `lexsis_drafts` and all publishing,
  deletion, rollback, and winner-scaling operations under `lexsis_live_ops`.

### Source editing and styling

- Added authoritative page edit context, section-source reads, atomic
  `page_patch`, whole-page replacement, expected-version conflicts, and
  page-version diffs.
- Standardized storefront styling on Tailwind CSS 4.3 with one deterministic
  `compiled_page_css` artifact. Runtime Tailwind CDN usage is no longer part of
  the source contract.
- Added missing-utility detection and documented agent-owned responsive QA at
  390px, 768px, and 1280px.
- Clarified that `<lx-island>` contains one non-executable JSON props script,
  while scoped section scripts contain executable local behavior.

### Themes, templates, and assets

- Added the complete `get_theme` workflow, strict workspace/theme validation,
  inherited header/footer guidance, and full-page recompilation after theme
  changes.
- Documented empty-query and filter-only template browsing, pasted gallery
  URLs, three-section fetch batches, and templates that contain plain
  HTML/CSS/JavaScript without islands.
- Expanded asset search documentation with exact-field, OCR, semantic,
  similarity, and cursor-based browsing modes.
- Added workspace-scoped asset reads and writes, direct conversation-attachment
  imports, preserved user metadata provenance, and strict multi-workspace
  selection.
- Added an immutable published-version pointer so draft edits to an already
  published page remain non-live until the next successful publish.
- Added MCP surface telemetry for calls, errors, page-context mismatches,
  version conflicts, and requests to removed endpoints.

---

## 2026-08-25 - Deprecated Island Documentation

### Island Lifecycle

- Added a complete [Deprecated Islands](/islands/deprecated) catalog for
  `BackToTop`, `Carousel`, `CartDrawer`, `FAQ`, `Marquee`, `StatCards`, and
  `Tabs`.
- Updated the island overview and authoring examples to exclude deprecated
  islands from new-page recommendations.
- Replaced generic FAQ and tabs examples with native HTML patterns.
- Clarified that CartDrawer is legacy Cart V1 and Cart V2 is the supported
  surface for new commerce pages.

---

## 2026-08-23 - Island Contract and Documentation Synchronization

### Island Lifecycle

- Added contract v2 lifecycle metadata for deprecated islands, including
  replacements and deprecation reasons.
- Deprecated generic, non-Shopify-scoped islands are excluded from the active
  MCP catalog while remaining available for historical schema validation.

### Search and Indexing

- Added versioned Elasticsearch indexing with atomic aliases for island schemas
  and documentation.
- Added schema/docs/OSS synchronization validation and documented missing active
  island contracts.

### Documentation

- Added references for `CartCrossSell`, `HeroMedia`, `ReviewList`, and
  `VariantSelector`.

---

## 2026-08-16 - Product Gallery Layout System

### Gallery Variants

- Expanded `ProductGallery` to eight layouts: horizontal, vertical, featured
  grid, left/right collage, equal two-column, masonry, and stacked.
- Added deterministic collage behavior for short arrays and additional media.
- Added responsive `swipe` and `stacked` mobile modes with CSS-controlled peek,
  spacing, aspect ratios, columns, and tile framing.

### Accessible Lightbox

- Grid-family layouts now open the shared mixed-media lightbox at the selected
  index by default.
- Added Escape and backdrop close, focus trapping/restoration, dialog semantics,
  and active-slide-only adaptive video playback.
- Added a complete desktop/mobile
  [ProductGallery variations preview](/islands/commerce/product-gallery).

---

## 2026-08-15 - Unified Product Media And Featured Collection Stage

### AI-Readable Documentation

- Documentation pages now return `text/markdown` from the same URL for recognized AI-agent user agents.
- Any client can request Markdown with `Accept: text/markdown` or `?format=markdown`.
- Browser navigation continues to receive the normal rendered documentation site.

### Shared Media Contract

- Added the array-only `MediaItem[]` contract for product cards, standalone media, PDP galleries, review media, lightboxes, and AI Visibility product cards.
- A one-item array renders as normal image or video media. Multi-item arrays add configurable arrows, dots, keyboard navigation, autoplay, and touch swipe.
- Video items use adaptive HLS/DASH playback with MP4/WebM/Ogg fallback sources, posters, captions, and active-slide-only loading.
- Legacy singleton image fields remain boundary adapters; new island authoring should use `media`.

### Hover Preview Modes

- Added `hoverAdvanceMode:"next"` for an immediate second-image product preview that holds until pointer leave.
- Added `hoverAdvanceMode:"cycle"` with `hoverInterval` for continuous multi-media rotation.
- Both modes reset to the first media item when hover ends and activate only when the array contains multiple items.

### New Commerce Island

- Added `FeaturedCollectionStage` with `fullBleed`, `contained`, `minimal`, and per-product `gallery` variants.
- The stage supports active-only product details, mixed image/video media, internal product-gallery controls, responsive rail navigation, and CSS-first presentation.

### Reliability

- Fixed cached or partially decoded images remaining hidden after hydration by using intrinsic dimensions and `HTMLImageElement.decode()`.
- Inactive video slides now render lightweight posters instead of mounting hidden adaptive players.

### Documentation

- Added full [MediaCarousel](/islands/content/media-carousel) and [FeaturedCollectionStage](/islands/commerce/featured-collection-stage) references.
- Updated [ProductCarousel](/islands/commerce/product-carousel) and [ProductGallery](/islands/commerce/product-gallery) with canonical media examples, hover variations, adaptive video guidance, and CSS hooks.

---

## 2026-08-14 - Shoppable Video Feed

### New Commerce Island

- Added `ShoppableVideoFeed` with paged and native vertical reels, horizontal rails, auto-advance, hover/tap playback, always-visible playback, and animated-preview grids.
- Added responsive navigation props so one item list and one island configuration serve desktop and mobile.
- Added tagged-product actions, multi-product trays, Shopify product resolution, cart integration, and commerce analytics.

### Adaptive Media

- Added the shared `AdaptiveVideo` primitive for public HLS and DASH manifests, MP4/WebM/Ogg fallbacks, animated GIF/WebP/MP4 previews, visibility-aware loading, and source recovery.
- Streaming engines are loaded only when required, while inactive and offscreen media release playback resources.

### Documentation

- Added the full island contract, responsive all-variations preview, media-source examples, autoplay guidance, CSS variables, and `data-part` customization reference.

---

## 2026-08-11 — Unified Asset Generation and Gemini Nano Banana

### Breaking MCP Change

- Removed `edit_asset`. Use `generate_asset` for all image work.
- Supply `reference_images` to `generate_asset` to edit, restyle, composite, or combine up to 16 source images. Use `mask_url` for semantic mask-guided edits.

### New Image Provider Controls

- Added `provider`, `model`, `aspect_ratio`, `image_size`, and `output_format` to `generate_asset`.
- Added `list_image_capabilities` to list enabled OpenAI and Gemini models, valid controls, reference-image limits, and credit costs.
- Added Gemini Nano Banana support: 3.1 Flash Lite, 3.1 Flash, 3 Pro, and 2.5 Flash legacy.
- Basic models cost 1 credit. `gemini-3-pro-image` costs 2 credits.
- Gemini outputs include SynthID provenance.

### Documentation

- Replaced the separate generation/edit API reference with a single asset-generation workflow and provider-selection guide.

### New Skill Workflow

- Added `/visual-page`: accepts a brief, product, ad, screenshot, reference URL, or mixed input; produces a visual layout reference through `generate_asset` and one approval checkpoint before final assets and source HTML are created.
- The generated concept is composition guidance only. `/asset-prep` sources final media and `/generate` creates the validated draft page.
- Clarified ownership and optional workflow connections across reference analysis, visual layout approval, asset preparation, draft generation, optimization, experimentation, and live publishing. Each skill remains independently runnable.

---

## 2026-08-08 - Cart Profiles and Focused MCP Tools

Cart profiles use published, reusable configurations with page, campaign, and
store-default targeting.

### Breaking MCP Change

- Removed `get_cart_config`, `update_cart_config`, and `validate_cart_rules`.
- Added `get_cart_profile`, `set_cart_profile`, and `edit_cart`.
- Removed legacy JSON authoring tools from MCP discovery:
  `validate_vibe_page`, `publish_vibe_page`, `update_page_section`, and
  `preview_section_update`.
- Source authoring is now the only exposed page-writing flow:
  `compile_page_source`, `create_page_from_source`, `get_page_source`, and
  `update_section_from_source`.
- Profile creation, publishing, rollback, defaults, campaign targeting, and
  archival remain in the Lexsis app.

### Runtime

- Cart-profile pages declare only `head.use_cart_v2: true`; cart HTML is not part of
  page sections.
- The renderer injects the resolved profile separately.
- Add-to-cart actions and header cart buttons communicate with the injected
  cart through the shared `cart:open` event.
- Profile custom CSS is validated and scoped to the cart root.
- Assignment, default, publish, archive, and rollback changes automatically
  refresh affected published Shopify pages after commit.

### Documentation

- Replaced the legacy cart guide with the cart-profile architecture, targeting
  precedence, trigger communication, offers, subscriptions, styling, and
  migration guidance.
- Replaced the legacy store-config tool reference with the three cart-profile
  tools.
- Clarified that `<lx-island>` plus a JSON script child is the only public page
  authoring format, and cart profiles are configured separately.
- `get_section_template` returns complete, compile-ready template `source`: a
  section delimiter, editable `<lx-island>` markup, and the template's CSS/JS.

---

## 2026-08-07 — Interactive Widgets

Four tools now render an interactive panel inline in the chat on hosts that support it (Claude web, Claude Desktop): a thumbnail gallery for template and page-kit search, a multi-select grid for the design library, an upload picker for `import_asset`, and an approve/request-changes card for publishing. Hosts without inline UI get the same JSON results as before — nothing to configure either way.

### Changed Tools

- **import_asset** — `filename` is now **optional**; it's derived from the URL or MIME type when omitted. Calling the tool with **no arguments** opens an upload picker so the user can supply their own file, with large photos compressed in the browser before upload. Re-importing an image already in the library returns the existing asset instead of a duplicate.
- **search_section_templates / search_page_kits** — unchanged API, but on UI-capable hosts the results render as a gallery. Selecting is two steps (pick, then confirm), so agents should wait for the user's selection rather than choosing themselves.

### Documentation

- New page: [Interactive Widgets](/tools/interactive-widgets).
- Corrected the `import_asset` parameter table, which listed `filename` as required.

---

## 2026-08-03 — Section Template Search Overhaul + Page Kits

**Breaking:** `search_section_templates` no longer returns `html`/`css`/`js` in its results — it's metadata-only now. A broad query used to inline full markup for every hit, which could exceed response size limits; search and markup fetching are now two separate steps.

### New Tools

- **get_section_template** — Fetch full HTML/CSS/JS for 1-3 template ids in one call. Also resolves a pasted template gallery URL (e.g. `https://storefront.trylexsis.com/templates/hero-feature-dots`) back to its id.
- **search_page_kits** — Search curated full-page kits: existing section templates already grouped into a coherent page sharing one vertical and palette (hero + buy-box + reviews + faq, etc.). Use this instead of hand-assembling sections from `search_section_templates` when building a whole PDP, landing page, homepage, or collection page.

### Changed Tools

- **search_section_templates** — Response is metadata-only (`html`/`css`/`js` removed). New filters: `islands` (filter by `islands_used`) and `page_type` (filter by `pdp`/`landing`/`homepage`/`collection`). New response fields: `page_types`, `themable`, `size_kb`, `has_js`, `currency`. `limit` max raised from 10 to 20.

### Documentation

- New [Section & Page Templates](/tools/templates) tool reference
- Updated [Tools Overview](/tools) — 61 active tools, corrected several stale entries (`provision_store`, `get_theme_json`, `list_stale_drafts`, `extract_brand_design`, `capture_design_source`, `list_design_sources` no longer exist and were removed from the catalog and their detail pages; `update_page_head` was missing and has been added)

---

## 2026-07-31 — First-Party Form Capture

**Breaking:** `EmailCapture`'s `endpoint` prop and `Footer`'s `newsletterEndpoint` prop are removed. Both islands (plus BuyBox's out-of-stock notify-me form) now post automatically to a first-party form-capture backend — no webhook URL to configure, and submissions are no longer silently dropped when a configured endpoint was wrong or unset.

### New Tools

- **list_form_schemas** — Discover a store's data-capture form definitions (read-only)
- **get_form_submissions** — Read visitor submissions for a form (read-only)

Read-only by design: there is no `create_form_schema` tool. Creating or editing a form is a merchant-only action via the new **Forms** dashboard page — an AI agent unilaterally defining data-capture forms with no human review is a different risk than it reading what's already set up.

### New Islands Behavior

- **EmailCapture** — `endpoint` prop removed. Always posts to the first-party capture backend under `form_key: "email_capture"`.
- **BuyBox** — out-of-stock "Notify Me" form no longer posts to the dead `/api/notify-me` endpoint. Now posts under `form_key: "notify_me"` and only shows a success state after a confirmed write (previously showed success unconditionally, even on failure).
- **Footer** — hydration-mode newsletter form's `newsletterEndpoint` prop removed. Always posts to the first-party capture backend under `form_key: "newsletter"`.

### Dashboard

- New **Forms** page (storefront dashboard) — create/edit/archive custom form schemas with a field builder, and view submissions for any form.

### Documentation

- Updated [EmailCapture](/islands/engagement/email-capture), [Footer](/islands/navigation/footer), [BuyBox](/islands/commerce/buy-box) — removed stale endpoint props, documented automatic capture
- New [Forms](/tools/forms) tool reference
- Updated [Tools Overview](/tools) — 51 active tools

---

## 2026-07-29 — Skills v4.1.0: Single Plugin, All Verticals Included

- **Vertical plugins merged into core** — `lexsis-beauty-skills`, `lexsis-fashion-skills`, etc. are no longer separate installs. All vertical expertise ships with `lexsis-storefront-skills`.
- **One install command** — no more add-on plugins to manage
- **Same content, less overhead** — verticals loaded on-demand via `vibe://skills/vertical-{name}`

---

## 2026-07-29 — Skills v4.0.1: Workflow Pipeline & External MCP Support

**Breaking:** Skills restructured into 5 distinct, non-overlapping workflows.

- **New 5-step pipeline:** `/plan-page` → `/asset-prep` → `/generate` → `/audit-cro` → `/optimize`
- **New `/asset-prep` command** — multi-source asset strategy with external MCP support (HiggsField for video, Exa for research, OpenArt for illustration)
- **10 commands** (was 9): added `/asset-prep`, removed `/extract-island` (moved to internal)
- **Skills consolidation:** 11,000+ lines of duplicated workflow content eliminated
- **`vibe://skills/{name}` resources** now serve from `reference/` (single source of truth)
- **External MCP integration documented:** video generation, image research, stock photography via optional MCPs
- **49 active tools** across 15 categories
- **47 islands** with full schema documentation

---

## 2026-07-10 — Multi-Store Support (v2.1.0)

### New Features

- **Multi-store targeting** — Accounts with multiple connected Shopify stores can now target a specific store across all MCP tools. Pass `store_id` (from `get_connected_stores`) to page management, publish, and cart tools.
- **`get_connected_stores` returns array** — Now returns all connected stores (previously returned only the first). Single-store accounts unaffected.

### Enhancements

- **`store_id` param** added to: `create_page_from_source`, `update_section_from_source`, `remove_page_section`, `move_page_section`, `update_page_head`, `list_pages`, `get_page_content`, `duplicate_page`, `publish_page`, `unpublish_page`
- **`X-Store-Id` header** — Advanced: pass store targeting at the HTTP level for custom integrations

### Documentation

- Updated [Workspace Setup](/tools/workspace-setup) — multi-store workflow
- Updated [Page Management](/tools/page-management) — `store_id` param on all tools
- Updated [Authentication](/getting-started/authentication) — multi-store guidance

---

## 2026-07-07 — Cart Profile Tools & Island Data-Fetching

> Historical release notes. The tools named below were replaced on
> 2026-08-08 by `get_cart_profile`, `set_cart_profile`, and `edit_cart`; do not
> use them in current workflows.

### New Tools

- **get_cart_config** — Read the current cart configuration (mode, rules, commerce settings, cart HTML)
- **update_cart_config** — Write cart configuration to store config (partial updates, validates rules)
- **validate_cart_rules** — Validate cart rules structure without persisting

### Breaking Changes

- **Cart-profile pages must NOT inline DrawerShell in sections** — use `update_cart_config` instead. Pages with `use_cart_v2: true` AND an inline DrawerShell will now fail validation with an error.
- **`get_storefront_skills`**, **`list_icons`**, **`list_skills`**, **`get_skill`** tools removed — replaced by MCP resources (`vibe://docs/generation-guide`, `vibe://catalog/icons`, `vibe://skills/{name}`)

### Enhancements

- **CartCrossSell island** — Config-driven product upsells inside the cart drawer. Reads from `commerce_config.upsells`, self-manages visibility based on cart contents. No rules needed.
- **Reactive island architecture** — CartProgressBar and CartCrossSell subscribe to store-level config and react to changes without HTML regeneration
- **`cart_sections` JSONB array** — replaces the old single `cart_section_html` string. Each section has `{id, html, css?, js?}`.
- **get_island_catalog** — no longer deprecated; description improved
- **Cart profile rendering fixed** — store config cart HTML now actually renders on live pages
- **Cart profile validation** — publish validator catches legacy-cart/profile conflicts, missing required islands, invalid rules
- **Island data-fetching architecture** — ProductCarousel, EditorialProductGrid, CompareTable resolve product data by ID at runtime from Shopify
- **ReviewCarousel** — supports fetch mode from our API with pagination via shared data store
- **SocialProofPopup** — supports fetch mode with background refresh + top-banner variant

### Documentation

- Added [Cart Customisation](/tools/cart) tool reference
- Updated [Tools Overview](/tools) — 49 active tools
- Updated [Cart Profile Guide](/guides/cart-v2) — store config flow, rules, page overrides
- Removed internal implementation details from public docs

---

## 2026-07-05 — Asset Import & Multi-MCP Interop

### New Tools

- **import_asset** — Import external images (from URL or base64) into the asset library. Enables multi-MCP workflows: generate with Higgs Field/DALL-E → import into Lexsis → use in pages. Full processing: responsive variants, pHash dedup, searchable via `search_design_library`.
- **inspect_page_sections** — Lightweight section list with index, type, and summary. Cheaper than `get_page` when you only need the section outline.
- **list_stale_drafts** — Find drafts not updated in N days for cleanup.
- **get_page_content** — Get page sections JSON without full metadata envelope.
- **get_credits_balance** — Check remaining AI generation credits for a workspace.
- **send_feedback** — Submit feedback about tool behavior or generation quality.

### Documentation

- Updated [Assets](/tools/assets) with `import_asset` tool reference and multi-MCP workflow
- Updated [Tools Overview](/tools) from 37 → 49 tools

---

## 2026-06-28 — Page Safety & QA Tools

### New Tools

- **find_page** — Search pages by handle, title, short_id, or UUID. More flexible than `get_page` (which requires exact UUID).
- **compile_page_source** — Dry-run section changes without saving. Validates and returns the hypothetical section order.
- **check_page_integrity** — Structural QA checks: archetype rules, forbidden patterns, island prop validation, head consistency.
- **diff_page_versions** — Compare two page versions. Shows sections added/removed/modified, reordering, and head/theme changes.
- **rollback_page_version** — Restore a previous version. Creates a new forward version (history preserved, async via Temporal).

### Enhancements

- **duplicate_page** — Added `idempotency_key` parameter. Replaying the same key returns the existing duplicate without creating another.

### Documentation

- New [Page Safety & QA](/tools/page-safety) tools reference
- Updated Edit Flow in workflow-orchestration skill with safety tool sequence

---

## 2026-06-22 — Initial Release

### Tools (37 active)

- **Workspace & Store Setup** — `list_workspaces`, `get_workspace_details`, `get_connected_stores`, `provision_store`
- **Brand & Design** — `get_brand_kit`, `list_themes`, `update_theme`, `get_theme_json`, `get_design_md`
- **Products** — `list_products`, `get_product`
- **Assets** — `search_design_library`, `generate_asset`, `view_asset`
- **Design Intelligence** — `get_design_principles`, `get_design_patterns`, `extract_brand_design`, `capture_design_source`, `list_design_sources`
- **Vision & Ads** — `analyze_ad_creative`, `extract_video_frames`, `get_ad_creatives`
- **Personas** — `list_personas`, `match_persona_to_ad`
- **Page Management** — `list_pages`, `get_page`, `create_page_from_source`, `compile_page_source`, `update_section_from_source`, `remove_page_section`, `move_page_section`, `duplicate_page`, `publish_page`, `unpublish_page`, `delete_pages`, `create_page_variation`, `get_navigation`
- **Experiments** — `create_ab_test`, `get_experiment_results`, `scale_winner`
- **Analytics** — `get_analytics_timeseries`, `get_page_analytics`
- **Docs** — `search_docs`

### Resources (4)

- `vibe://docs/generation-guide` — Complete generation context
- `vibe://catalog/islands` — Interactive component catalog
- `vibe://catalog/icons` — Icon registry (60+ icons)
- `vibe://schema/page` — Page JSON schema

### Skills (7)

- craft-guide, workflow-orchestration, animation-system, visual-craft, design-enrichment, premium-patterns, island-patterns

### Infrastructure

- OAuth 2.1 authentication (Authorization Code + PKCE)
- Streamable HTTP + STDIO transports
- Multi-session support with session persistence
