# Changelog

All notable changes to AsukaDesigner are documented in this file.

## [Unreleased]

## [1.2.0] - 2026-08-03

### Added

- Platform-neutral `asuka-product` documents for reusable complete products.
- Checksummed `.asuka.zip` packages containing portable state, media, templates, and themes.
- Public JavaScript APIs for package creation, inspection, media publication, and restoration.
- Adapter callbacks that let any integrator resolve and publish package media without depending on WordPress or Shopify.

### Security

- Recursively removes commerce IDs, variants, SKUs, carts, orders, customers, billing data, licenses, credentials, and host runtime state.
- Validates archive paths, expanded sizes, file counts, dependency files, and SHA-256 checksums before restoration.

### Changed

- Uses `designer.state` as the canonical portable state field while accepting legacy `designer.initialState` packages.
- Uses a generic Asuka Designer manifest so the package has no platform ownership.

## [1.1.1] - 2026-08-03

### Changed

- Standardized text, number, select, textarea, checkbox, range and color controls across embedded administration surfaces.
- Replaced the overflowing uploaded-image Remove label with a compact accessible trash action.

### Fixed

- Scoped form styling now resists WordPress, WooCommerce and Shopify host CSS without affecting controls outside the designer.
- Mouse-wheel zoom over a Babylon canvas no longer scrolls either the document or a scrollable host container.

## [1.1.0] - 2026-08-03

### Added

- Canonical machine-readable translation catalog shipped with every verified browser release.
- AST-based catalog generation and CI drift detection for public JavaScript translation keys.
- Dedicated public JavaScript release history at `https://designer.asukadev.com/changelog/#javascript`.
- Separate normal-map upload support for Product 3D variation materials.
- Persistent vertical stack links for 3D components, with automatic centering, preserved spacing and multi-level propagation.

### Changed

- WordPress and Shopify can now consume the packaged catalog directly without scanning source files or minified bundles.
- Regional locale dictionaries can be supplied alongside their language fallback while English remains immutable.
- Long element variation trees now use compact accordions with clear group summaries.
- Product 3D variation details now group dynamic parameters, model assets, target colors, and material textures into nested compact accordions.
- Compact form density and horizontal upload controls reduce scrolling in dense administration editors without changing customer-facing forms.
- The wheel is captured while the pointer is over either renderer, so camera and canvas interactions no longer scroll the host page.
- Deleting an element now removes its catalog entry and persisted placements; the separate remove-from-view action has been retired.
- Upper 3D components can follow the width of their support while retaining their own maximum authored width.
- Remote uploads now preserve browser-generated multipart boundaries and include their source and media mode for host-side validation.

### Fixed

- Preserved authored GLB PBR materials, embedded color textures, and normal maps when no explicit material override is configured.
- Restored native materials correctly for multipart 3D products instead of replacing them with an empty gray material.
- Color-only 3D variations now patch cloned PBR materials instead of discarding the model's embedded color and normal textures.
- Upload failures now expose the host validation message instead of reducing every rejection to an opaque HTTP 415 status.

## [1.0.0] - 2026-07-18

### Added

- Complete built-in and Premium module layout for the mixed 2D/3D example.
- Extended Asuka icon font with missing module, editing and utility icons.
- Stable browser release artifact for WordPress and direct integrations.

### Changed

- Promoted the verified browser delivery from beta to the first stable V1 release.
- Kept Fabric, Babylon and Premium features behind their existing lazy chunks.
- Updated the example application to group creation tools in the left rail and global utilities in the top bar.
- Locked licensing, AI, and paid-export traffic to `https://api.asukadev.com`; customer initialization no longer accepts commercial endpoint overrides.

### Fixed

- Completed the icon coverage used by modules, contextual editors and Premium add-ons.
- Preserved engine-aware module visibility when switching between Fabric and Babylon views.

## [1.0.0-beta.1] - 2026-07-14

### Added

- Common renderer API for Fabric and Babylon workflows.
- Lazy Fabric, Babylon and licensed Premium add-on bundles.
- Signed Symfony license activation, refresh, domain, quota and Premium chunk integration.
- Responsive desktop, tablet and mobile shells.
- Physical measurements, pricing rules and production export helpers.
- Verified browser delivery artifact with a version manifest and SHA-256 checksums.
- Chromium, Firefox, WebKit and mobile-emulation release coverage.
- WCAG A/AA automated audits, keyboard-safe overlays and focus restoration.
- Host-controlled production observability callbacks with lifecycle cleanup.
- Proprietary license notice and generated third-party license inventory.

### Changed

- Upgraded Fabric to 7.4, jsPDF to 4.2 and Preact to 10.29.
- Production API clients use `https://api.asukadev.com`.
- Official direct-delivery version is `1.0.0-beta.1`; npm publication remains disabled.

### Security

- Removed implicit Premium demo unlocks and hard-coded local production endpoints.
- Added package-content, bundle-isolation and dependency audits to the release gate.

### Beta limitations

- Real-device iOS and Android certification is still manual.
- English is the built-in fallback language; customer translations remain integration-provided.
- One mounted designer is supported per browser context in v1.
- Production error collection requires configuring the host-provided `observability.onError` callback.
