# Changelog archive

> Storefront MCP releases from June to August 2026

Canonical URL: https://77865786950d:3005/changelog/archive

Releases before September 2026. Newer entries are in the [changelog](/changelog).

## 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 Profiles](/cart/profiles) tool reference
- Updated [Tools Overview](/tools) — 49 active tools
- Updated [Cart](/cart) — 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
