# Changelog All notable changes to this project will be documented in this file. ## [0.1.0] - 2026-02-28 ### Added - Docker development environment: multistage Dockerfile (WooCommerce download, wp-bootstrap npm build, Composer deps, WordPress runtime), Compose stack with MariaDB, auto-setup entrypoint - Private registry image name and restart policies for Docker stack - **My Account polish**: endpoint icon map, `offcanvas-lg` responsive navigation with sticky sidebar, card-based dashboard with avatar welcome greeting and quick-action grid, card-wrapped forms with icon headers, view-order summary card with status badge - **Product archive**: Bootstrap 5 card grid with responsive columns, sale badges, star ratings, offcanvas sidebar for mobile filters, shop-sidebar widget area - **Single product layout**: two-column responsive grid (image gallery + product summary), bridge for `wc_get_template_part()` interception, disabled WooCommerce block compatibility layer - Global `$product` injection into Twig context for loop sub-templates - CSS overrides: WooCommerce float/width layout reset, sale badge repositioning, shop_table border reset, gallery opacity fallback, My Account `max-width` reset ### Fixed - Rename `base.html.twig` → `wc-base.html.twig` to prevent shadowing the parent theme's page shell via Twig `FilesystemLoader` path priority - CSS dependency handle from unregistered `woocommerce` to `woocommerce-general` for `wc-bootstrap-overrides` stylesheet - WooCommerce float-based two-column layout (`width: 48%` + `float`) fighting Bootstrap grid on single product pages - Nested content wrapper doubling parent theme's `.container` - Sale badge escaping image column and blocking breadcrumb clicks - `|nl2br|esc_html` filter order in order details (was escaping `
` tags) - HTML entity double-encoding (`…`) in up-sells, cross-sells, and related product headings - Wrong `function() is defined` guards in cart totals, review order, checkout login, and terms templates - Duplicate deprecated hook fires in dashboard template - Missing `|raw` on brand description HTML filter chain - Missing `role="alert"` on variation add-to-cart for accessibility - Missing `|esc_attr` on notification type class attribute - Missing `is defined` guard on `hidden` variable in global form-login - Pagination URLs using `?page=` instead of `get_pagenum_link()` for archives - Double-escaped `–` in result count - Underscore.js triple-brace syntax conflict in variation template (wrapped in `{% verbatim %}`) ## [0.0.1] - 2026-02-28 ### Added - Initial theme scaffold (style.css, functions.php, Composer autoload) - Comprehensive template conversion plan (PLAN.md) - **Phase 1**: Global templates (wrapper, breadcrumb, sidebar, quantity-input, form-login) and notices (success, error, info) - **Phase 2**: Product archive and shop loop templates (archive-product, content-product, loop components, pagination, orderby, sale-flash) - **Phase 3**: Single product page templates (image gallery, title, price, meta, stock, tabs, add-to-cart forms for simple/variable/grouped/external) - **Phase 4**: Cart templates (cart table, empty cart, cart totals, shipping calculator, mini-cart, cross-sells) - **Phase 5**: Checkout templates (form-checkout, billing/shipping forms, coupon, order review, payment methods, terms, thank-you) - **Phase 6**: My Account templates (dashboard, navigation, orders, view-order, addresses, edit-address, edit-account, downloads, payment methods, login/register, password reset) - **Phase 7**: Order details templates (order-details, order-details-item, order-details-customer, form-tracking, order-again) - **Phase 9**: Supplementary templates (brands, OAuth auth, back-in-stock form) - Reusable Twig components (card, pagination, price, rating, address-card, status-badge, quantity-input, form-field) - WooCommerce-to-Twig rendering bridge (`TemplateOverride` + `WooCommerceExtension`) - ~50 WooCommerce/WordPress Twig functions and 7 Twig filters - Stack-based output buffering for nested template interception - Bootstrap 5 override stylesheet (`wc-bootstrap.css`) - Quantity +/- button JavaScript handler - Sticky header scroll shadow behavior - Parent theme rendering delegation via `woocommerce_render_page` filter - Theme wrapping signal via `woocommerce_is_theme_wrapped` filter - CI/CD release workflow (Gitea Actions) - Translation support (`.pot` template ready) - Docker development environment (multistage Dockerfile, Compose, auto-setup entrypoint) ### Fixed - Rename `base.html.twig` → `wc-base.html.twig` to prevent shadowing the parent theme's page shell via Twig `FilesystemLoader` path priority - Correct CSS dependency handle from `woocommerce` to `woocommerce-general` for `wc-bootstrap-overrides` stylesheet ### Skipped - **Phase 8** (Email templates): WooCommerce emails use `wc_get_template_html()` which bypasses the Twig rendering pipeline. Default email templates are sufficient; customization can be handled via dedicated email plugins.